Bonjour,
Je travaille sur la conception d'un petit véhicule robot autonome avec 3 sonar , mais télécommandable par Capteur infra-rouge VS1838B (TSOP1838) et paramétrable par menu LCD (20x4) avec encodeur et son bouton.
C'est ces derniers points qu'il me reste à maîtriser, paramétrage par l'entremise d'un menu LCD avec encodeur et son bouton directement sur le véhicule robot.
Comme je souhaite quelque chose de très adaptatif dans le temps et malléable pour l'ajout ou le retrait de fonction ou de paramètre programmable par cette interface, et après avoir écumé le forum, je me tourne vers vous pour vos conseils pour la meilleure interface menue sur écran LCD 20x4 pour information à afficher et paramétrage du robot.
Vers quelle bibliothèque ou code d'exemple modèle devrais-je me tourner pour une carte Arduino Mega 2560 et une carte ESP-WROOM-32 à 38 broches ?
En mode véhicule robot autonome activation, l'écran LCD affichera en permanence les données internes de fonctionnement (po), quelque chose comme :
//*****************************************************************************
// FONCTION GererAfficherEcranLCD
//*****************************************************************************
void GererAfficherEcranLCD ()
{
// Écriture dans l'écran LCD des valeurs lues.
// NoColonne 00000000001111111111
// NoColonne 01234567890123456789
// Ligne 0 = 400 400 400 999
// Ligne 1 = 1023 1023 1023 1023
// Ligne 2 = 255 255 255 00
// Ligne 3 = 255 255 255 00 99999
LCD_1.clear ();
LCD_1.setCursor (0, 0);
LCD_1.print (int (Sonar_1_DistanceActuele));
LCD_1.setCursor (4, 0);
LCD_1.print (int (Sonar_2_DistanceActuele));
LCD_1.setCursor (8, 0);
LCD_1.print (int (Sonar_3_DistanceActuele));
LCD_1.setCursor (17, 0);
LCD_1.print (CodeSituation);
LCD_1.setCursor (0, 1);
LCD_1.print (PhotoResistance_1_Valeur);
LCD_1.setCursor (5, 1);
LCD_1.print (PhotoResistance_2_Valeur);
LCD_1.setCursor (10, 1);
LCD_1.print (PhotoResistance_3_Valeur);
LCD_1.setCursor (15, 1);
LCD_1.print (PhotoResistance_4_Valeur);
LCD_1.setCursor (0, 2);
LCD_1.print (Moteur_1_VitesseMinimum);
LCD_1.setCursor (4, 2);
LCD_1.print (Moteur_1_Vitesse);
LCD_1.setCursor (8, 2);
LCD_1.print (Moteur_1_VitesseMaximum);
LCD_1.setCursor (12, 2);
LCD_1.print (Encodeur_1_TourParMinute);
LCD_1.setCursor (0, 3);
LCD_1.print (Moteur_2_VitesseMinimum);
LCD_1.setCursor (4, 3);
LCD_1.print (Moteur_2_Vitesse);
LCD_1.setCursor (8, 3);
LCD_1.print (Moteur_2_VitesseMaximum);
LCD_1.setCursor (12, 3);
LCD_1.print (Encodeur_2_TourParMinute);
LCD_1.setCursor (15, 3);
LCD_1.print (MenuPosition);
}
//*****************************************************************************
Merci pour toute suggestion ou avis sur vos choix, expérience et préférence en la matière !
Cordialement,