Utilisation avec le starter kit PIC32 de l’ETML-ES

Utilisation des LEDS

Pour allumer la led 0, il suffit d’écrir:

led0.set_on();

De manière intuitive, pour l’éteindre:

led0.set_off();

Et pour inverser son état:

led0.toggle();

Utilisation du LCD

Remarque: Afin d’éviter le clignottement de l’écran, les caractères sont écrit à l’écran uniquement s’il n’y était pas déjà. Il est ainsi plus nécessaire de le faire manuellement.

Écriture

Pour écrire sur le première ligne du LCD, il faut d’abords position le curseur en position (1,1),

lcd.set_cursor(1,1);
lcd << "Hello";

Pour la position (1,1), le raccourcis suivant est disponible:

lcd.home();

Pour écrire à partir du cinquième caractère de la ligne deux, il faut écrire:

lcd.set_cursor(2,5);
lcd << "world";

Une syntaxe allégée est aussi disponible:

lcd << cursor(2,5) << "world";

Mot clef et conversion

Le retour à la ligne peut se faire automatique de deux manière:

lcd << endl;
lcd << '\n'; // Alernative

Pour afficher un nombre en héxadécimal, il faut entrer:

lcd << hex << 125;

On peut revenir au mode décimale avec:

lcd << dec;

Pour afficher les chiffres positifs avec un signe plus en mode décimale

lcd << with_sign_plus << 10; // Affiche +10
lcd << without_sign_plus; // Désactive l'affichage du signe

Pour fixer la longueur du prochain paramètre, on utilise setwritemode

lcd << setw(4) << "ABC"; // Avec setw(4), un espace est rajouté après le 'C'

Éffaçage de l’écran

La méthode clear permet d’effacer les caractères afficher.

lcd.clear()

Gestion du rétro-éclairage

Le rétro-éclairage peut être éteint puis rallumer avec le code suivant:

lcd.disable_backlight()
delay::ms(5000);
lcd.enable_backlight();

Désactivation de l’écran

La méthode disable_display permet de désactiver l’écran sans perdre les caractères qui y sont affiché. La méthode enable_display remet l’écran dans sont état normal.

lcd.disable_display();
delay::ms(5000);
lcd.enable_display();

Gestion du curseur

Le curseur peut être afficher de deux manière.

Comme un tirait en bas:

lcd.enable_underline_cursor();
delay::ms(5000);
lcd.disable_underline_cursor();

Avec un carré noir clignottant:

lcd.enable_blinking_cursor();
delay::ms(5000);
lcd.disable_blinking__cursor();

Utilisation des touches

Pour vérifier si une touche est appuyée:

if(menu1.is_pressed())
{
    lcd << "Touche appuyée";
}

Pour vérifier si une touche est relachée:

if(menu1.is_relached())
{
    lcd << "Touche relachée";
}

Pour vérifier si une touche a un nouvel état:

if(menu1.has_a_new_state())
{
    lcd << "L'état a changé";
}

Utilisation du PEC12

Pour obtenir la direction de la dernière rotation:

int8_t dir = pec12.get_state();

if(dir == +1)
{
     lcd << "Rotation de le sens horaire";
}
else if(dir == -1)
{
     lcd << "Rotation de le sens anti-horaire";
}
else
{
    lcd << "Personne a utilisé le PEC12";
}

Pour vérifier si le PEC a un nouvel état:

if(pec12.has_a_new_state())
{
    lcd << "Le PEC a bougé";
}

Utilisation du clavier matriciel