Étape 9: Le « Code »:)) code à distance
Le code est assez grand et il sera assez difficile à expliquer et aucuns photos ne permet également: P
Les premières tentatives j’ai mémoire de microcontrôleur de 99 %, le flash et RAM, alors j’ai appris à utiliser « programem » pour écrire un int en EPROM, également pilote LCD ou bibliothèque... et bien plus encore.
OK nous allons démarrer avec l’écran Lcd.
Première fois, vous devez inclure la bibliothèque #include. Dans la bibliothèque, j’ai fait une classe donc « statiques PCF8814 lcd; » peut être utile si vous pouvez l’utiliser comme "lcd.print ("remote de voiture")". J’ai l’écran lcd haut côté déposé dans l’affaire donc, dans le programme d’installation est quelque chose comme ce » lcd.begin() ; « « « LCD.Rotate(1); ». La fonction begin démarre l’écran lcd et définir les broches qu’arduino utilisation Conect avec écran lcd, donc si vous avez besoin pour vous connecter aux autres broches, consulte le PCF8814.h pour vous assurer l’ordre des broches mais je pense qu’est comme ça, de lcd.begin(13,11,12,10) par défaut ; Rotate() avec 1 Mettez l’img sur écran lcd vers le haut de côté vers le bas et avec 0 est normal.
vous pouvez imprimer avec string lcd.print() ; régler le curseur avec lcd.setCursor(y,x), y étant la ligne (1 rang = 8 pixels) sur cet écran lcd, vous avez 8 rangs, première ligne est 0 et le dernier 7 et y étant le nombre de pixels de l’automne à droite ; et vous pouvez faire plus, mais vous le verrez plus tard.
Maintenant, comment lire les touches analogiques.
int analogValue = analogRead(analogKeyPin); / / / retourne une valeur, selon ce qui vous touche push (il suffit de regarder les schémas et essayer de penser là où abonde le curent, vous aurez rezistance diferit sur chaque bouton). vous pouvez utiliser le moniteur série lire eux ou la lcd.print(analogValue) de les imprimer sur écran lcd, puis certains if-s ou switch/case et vous avez terminé par exemple.
J’ai utilisé la chaîne pour stocker la clé, car il est plus facile au programme mais vous pouvez utiliser un int pour sauver plus de ram.
Le problème de bigest que j’ai eu était les chaînes pour menius alors j’ai utilisé le programem pour bloquer les cordes dans la mémoire flash. J’ai donc fait un tableau comme ceci :
De cette façon vous pouvez easyely générer le menius
7 est le nombre d’option que vous avez dans le menu, donc, faire le « pour » 7 fois, puis set curseur pour imprimer à partir des premières row(0) avec x comme ça ira au rang suivant quand le prog fait la deuxième fois la, je commence à imprimer les options de la 6e pixel parce que de 0 à 6, je tirerai curseur. Maintenant strcpy_P fonction copier la chaîne de programen dans un tampon que je déclare avec 50 chars est un peu trop, mais vous devez être sûr c’est suffisant, après que viens d’imprimer la mémoire tampon.
ce lit la valeur dans le menu programem array [0], si les pozMeniu et x est « 0 ». J’utilise pozMeniu, parce que quand je vais mettre le curseur et je veux naviguer de haut en bas et nous allons dire que j’ai 10 obtions un juste 7 rangs, quand je vais avec le curseur au choix 7 et j’ai envie d’aller downer je vais juste faire pozMeniu = 1 comme ça je vais imprimer à partir de la deuxième option et au 7ème rang, j’aurai l’option 8. Pour cela, j’ai fait une petite fonction qui nécessite un paramètre, le nombre d’obtions. Donc, pour le dernier exemple est « upDown_navigate(6); » (aussi commence à compter avec « 0 »). Si vous téléchargez le code j’ai la fonction a expliqué là.
Le upDown_navigate() ; retourne également un « pozCursor » qu’il changera quand vous allez en haut et en bas afin que vous pouvez imprimer un curseur comme ceci :
Le "/ 2" est le deuxième char que je définis il. C’est le curseur qui un disait. Oui, vous pouvez ajouter des caractères personnalisés, vous pourrez voir dans le lien avec l’ensemble du code.
Si vous voulez faire un sous-menu vous pouvez le faire comme ça (y a juste une idée, je l’ai fait comme ça) :
« level » - ce j’ai utiliser dans void loop() pour passer à un écran spécifique (j’ai la fonction pour chaque menu)
« countUpDown » - c’est généré par upDown_navigate(), enregistre la position sur le tableau (vous savez ce qu’obtion vous sélectionnez)