J'aurais besoin d'aide afin d'activer un servomoteur en fonction de l'heure grâce à un module RTC. En gros, je voudrais que mon servomoteur aille à une position et revienne à sa position initiale à l'heure choisie. Après quelques recherches j'ai obtenu ce code :
Juste une idée: ton test ligne 18 n'admet aucune tolérance: il faut vraiment qu'il soit 14:00:00 pile pour entrer dans le 'then'. Un test plus large sur les secondes serait peut-être le bienvenu. Maintenant, vu la vitesse des µcontrôleurs, je ne pense pas que ce soit le problème.
Autre idée: now.hour() renvoie uniquement une valeur entre 0 et 12 (am-pm).
Attention à l'écriture d'un nombre qui est précédé d'un zéro: c'est une valeur octale (012 est 10 décimal). Bon, dans le cas présent pas de souci: zéro reste zéro.
- Edité par edgarjacobs 31 mars 2024 à 1:20:58
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
- le code arduino s'exécute vite, il a le temps d'exécuter plusieurs centaines de fois ce test par seconde mais ça reste une bonne idée que d'ajouter de la marge si le code vient à être plus conséquent
- la fonction hour() renvoie bien une valeur entre 0 et 23 tandis que c'est la fonction twelveHour qui renvoie une valeur entre 0 et 11
- un 00 vaut quand même 0, mais oui, attention quand même
Du coup, voici d'autres pistes à explorer :
- tu n'as peut-être jamais mis à l'heure ton module RTC, donc celui-ci dispose d'une heure totalement aléatoire
- la pile de ton RTC est morte, donc celui-ci ne fonctionne pas correctement
- tu as mal câblé ton RTC, donc la communication se fait mal, ou bien il n'y a pas les résistances de pull-up sur le bus I2C
Pour tester tout cela, il pourrait être bien d'afficher quelques informations sur le Serial :
- afficher le résultat de la fonction begin qui renvoie un bool suivant le résultat : 0 (false) = echec // 1 (true) = OK
- afficher l'heure actuelle (hour, minute, second) pour voir si le RTC est bien à l'heure
Il y a aussi la méthode RTC.isrunning() qui pourrait être affichée pour voir si le RTC est bien en train de fonctionner
Merci pour vos réponses ! J'essaie tout ça dès que possible et je vous tiens au courant 🙏
Activer un servo en fonction de l'heure
× 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.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent