Je ne crois pas que ça soit nécessaire, et est-ce que c'est vraiment le fait que ça soit demandé deux fois qui le fait pas marcher ? Et en fait, je pense qu'il y a un problème avant ça car au début du void loop, je lui demande de m'afficher l'heure du RTC (en tout cas c'est ce que je voudrais qu'il fasse) mais ca ne m'affiche rien.
La fonction getKey retourne la dernière touche enfoncée depuis son dernier appel ou NO_KEY si aucune touche n'a été enfoncée entre temps.
Du coup, si tu fais 2 appels successif :
- Le premier appel contiendra éventuellement une touche (si tu as appuyé sur une touche)
- Le second appel contiendra toujours NO_KEY à moins que tu n'arrives à être ultra rapide et précis pour appuyer sur une touche pile poil entre les 2 appels sachant que l'arduino exécute 4 millions d'instructions par secondes.
Je t'ai d'ailleurs déjà fais ce genre de remarque dans les premières page de ce topic :
lorrio a écrit:
A un moment, tu vas appuyer sur une touche donc tu vas entré dans le if (toucheH != NO_KEY) { Juste après ce if, on a if (toucheH == '*') { donc pas de chance, si tu as appuyé sur autre chose qu'étoile, il ne se passera rien. Disons donc que tu as appuyé sur étoile histoire de continuer les explications. Là, tu fais un toucheM = clavier.getKey(); mais quelle est la probabilité que tu ai réussi à appuyé sur une touche de ton clavier à ce moment ? Rappelons que l'arduino tourne à 8MHz donc passer un if ne lui prend qu'une fraction de milli secondes. Bref, quelle est la probabilité que tu arrives à appuyer sur étoile puis sur une autre touche en si peu de temps ? Très certainement une chance sur un milliard donc toucheM = NO_KEY
Bonjour je suis sur le même projet que celui présenter dans ce forum (actionner un moteur en fonction d'une heure avec un écran LCD )
J'ai l'impression que cela fonctionne (le programme) mais je ne sais pas quelle montage faire
Le but de mon projet personnelle est d'actionner un moteur en fonction d'une heure programmer avec des touches et avec un écran LCD sur lequel on pourrai reprouver les informations
J'utilise personnellement un moteur pas à pas qui me semble le plus adapter
Merci de m'aider (je suis débutant merci d'avance ;))
Slt à vous, aidez moi svp, je fais mes premièrs pas avec Adruino. J'ai un sérieux problème avec le DS 1302, je sais pas comment faire que ça garde l'heure même lorsque la carte est éteinte. J'ai mit ce qui sert à mettre l'heure en commentaire après avoir fais un premier televersement mais le module n'a pas gardé l'heure, il a recommé ke compteur à zéro. Voici ce que j'ai pu trouver sur le net, et j'ai un peu modifié pour que ça s'affiche sur l'écran LCD :
#include <RTClib.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int heures,minutes,secondes;
char message[16] = "";
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
// heures =06;
//minutes =02;
//secondes =00;
}
void loop() {
if (secondes == 60) { // une minute est atteinte ?
secondes = 0; //on recommence à partir de 0
minutes++;
}
if (minutes == 60){ // une heure est atteinte ?
minutes = 0; //on recommence à partir de 0
heures++;
}
if (heures ==24){ //une journée est atteinte ?
heures =0;
}
sprintf(message,"%2d:%2d:%2d",heures,minutes,secondes); //met le message dans la chaine à transmettre
lcd.home(); //met le curseur en position (0,0) sur l'ecran
lcd.print(message); //envois le message sur l'ecran
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.