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
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent