Commander un servo moteur avec une télécommande IR arduino
Résolu/Fermé
Jojon2711
Messages postés
19
Date d'inscription
samedi 16 mai 2020
Statut
Membre
Dernière intervention
13 juin 2020
-
Modifié le 16 mai 2020 à 22:17
Jojon2711 Messages postés 19 Date d'inscription samedi 16 mai 2020 Statut Membre Dernière intervention 13 juin 2020 - 17 mai 2020 à 13:56
Jojon2711 Messages postés 19 Date d'inscription samedi 16 mai 2020 Statut Membre Dernière intervention 13 juin 2020 - 17 mai 2020 à 13:56
A voir également:
- Commander un servo moteur avec une télécommande IR arduino
- Comment faire ok sur une télé sans télécommande ✓ - Forum Téléviseurs
- Réglage tv grandin sans télécommande - Forum Téléviseurs
- Code telecommande free ✓ - Forum Téléviseurs
- Télécommande gps clio 3 ne fonctionne plus - Forum GPS
- Commander sur amazon allemagne ✓ - Forum Consommation & Internet
3 réponses
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
17 mai 2020 à 13:30
17 mai 2020 à 13:30
Bonjour,
Le
Le
delay()n'est pas effectué qu'après le
monServo.write(110);. Avec des accolades ça devrait correspondre à ce que tu veux faire.
void loop() { if ( monIr.decode( &message ) ) { if ( message.value == 0xFFA25D ) { //FFA25D est le code du bouton power monServo.write( 110 ); // déplace servo a 110 delay( 500 ); // pendant 1/2 seconde monServo.write( positionDuServo ); // Puis servo revient a 0 } } }
NHenry
Messages postés
15163
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 novembre 2024
345
16 mai 2020 à 12:47
16 mai 2020 à 12:47
IRrecv irrecv; // Nomme IRrecv comme irrecv ( ça ne marche pas ! ) int irrecv = 11; // déclare que le receiver est sur la broche 11
Il y a pas comme un conflit de nom là ?
Ensuite, où renseignes-tu la pin à surveiller, car c'est bien beau de déclarer une variable, mais l'utiliser serait mieux.
Jojon2711
Messages postés
19
Date d'inscription
samedi 16 mai 2020
Statut
Membre
Dernière intervention
13 juin 2020
3
Modifié le 16 mai 2020 à 13:26
Modifié le 16 mai 2020 à 13:26
Désolé, c'est bon j'ai trouvé le bon code qui se téléverse et qui marche mais il y a juste un problème :
Quand j'appuis sur power le servo moteur fait bien la rotation demandé sauf que dans mon code j'ai mis en dessous ( delay(500) et ensuite la commande pour qu'il retourne a zéro. mais il reste dans la même position au lieu de retourner après 1/2 seconde à zéro . Pouvez vous me dire ce qui cloche ?
Quand j'appuis sur power le servo moteur fait bien la rotation demandé sauf que dans mon code j'ai mis en dessous ( delay(500) et ensuite la commande pour qu'il retourne a zéro. mais il reste dans la même position au lieu de retourner après 1/2 seconde à zéro . Pouvez vous me dire ce qui cloche ?
#include <IRremote.h> // Bibliothèque IR #include <IRremoteInt.h> // Bibliothèque IR #include <Servo.h> // Bibliothèque Servo const char DIN_RECEPTEUR_INFRAROUGE = 11; // Déclare l'emplacement sur la broche decode_results message; // décode les résultats Servo monServo; // renomme Servo int positionDuServo = 0; // Initialise la postition de départ du servo IRrecv monIr(DIN_RECEPTEUR_INFRAROUGE); // renomme IRrecv void setup() { monServo.attach(9); // Déclare que le servo est sur la broche 9 monServo.write(positionDuServo); // Met le servo a 0 monIr.enableIRIn(); // Démarre le IRreceiver } void loop() { if(monIr.decode(&message)) { //FFA25D est le code du bouton power if (message.value == 0xFFA25D) //FFA25D est le code du bouton power monServo.write(110); // déplace servo a 110 delay(500); // pendant 1/2 seconde monServo.write(positionDuServo); // Puis servo revient a 0 } }
17 mai 2020 à 13:56
Merci j'ai copier le code que vous m'avez suggéré mais ça ne marche toujours pas.
Le servo moteur tourne à 110 mais reste a cette position.
Le " delay " ne sert a rien et le " monServo.write( positionDuServo ) " non plus.
Je ne sais pas pourquoi !
Vous n'auriez pas une autre solution ? Ou un allongement de code mais qui cette fois marcherai ?
Merci d'avance !