Partage
  • Partager sur Facebook
  • Partager sur Twitter

arduino

actionner un moteur en fonction de l'heure

    12 mai 2015 à 14:05:30

    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.
    • Partager sur Facebook
    • Partager sur Twitter
      12 mai 2015 à 14:36:24

      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

      -
      Edité par lorrio 12 mai 2015 à 14:39:31

      • Partager sur Facebook
      • Partager sur Twitter
        20 mars 2019 à 15:36:24

        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 ;))

        Désoler d'avance si il y a des fautes

        -
        Edité par TheoGodmuse 20 mars 2019 à 15:47:06

        • Partager sur Facebook
        • Partager sur Twitter
          31 décembre 2019 à 6:59:29

          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

          delay(1000);

          secondes++;

          }

          • Partager sur Facebook
          • Partager sur Twitter
            31 décembre 2019 à 19:09:32

            tu as mis une pile au moins?

            Ca sert à quoi d'utiliser une RTC si tu gères les heures toi-même dans ton code?

            • Partager sur Facebook
            • Partager sur Twitter

            arduino

            × 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.
            • Editeur
            • Markdown