Go Down

Topic: Controle d'un servomoteur par telecommande ir (Read 1 time) previous topic - next topic

Coco62131

Bonjour a tous

Voilà pour vous poser mon problème c'est que je voudrai pouvoir dire à mon servomoteur d'aller en position 0 ou 180 ° via deux bouton d'une télécommande ir sauf que je suis un débutant dans ce monde de codage et donc j'aurais besoin d'aide pour faire ce (projet)

donc voici ce a quoi j'ai pu penser :
j'ai voulu essayer de combiner le code que j'ai pu trouver sur internet qui permet avec un bouton de la télécommande de allumer ou éteindre une simple led et de le combiner avec celui de contrôler une servomoteur via un potentiomètre que j'ai pu modifier grace à mes (connaissance) mais cela ne fonction pas du tout donc j'ai fait mes recherche mais je semble être la seul personne a vouloir faire cela

donc si quelqu'un pourrait m'aider je vous en remercie d'avance

PS: si vous voulez voir les code je pourrai vous les transmettre 

LDami

Salut !

Il existe une librairie toute bête pour réceptionner un signal IR :)
https://itechnofrance.wordpress.com/2013/04/19/librairie-irremote-pour-arduino/

Ensuite tu peux utiliser le signal reçu par la touche droite ou gauche de ta télécommande pour additionner ou soustraire une valeur à ton angle du servomoteur !

Bonne soirée.

Damien L.

fdufnews

Si tu mettais ton code dans un post et que tu décrivais clairement ce qui ne va pas on pourrait peut-être t'aider à résoudre ton problème.

Coco62131

bonsoir deja merci beaucoup pour vos reponses mais voila il faut savoir que je ne connais pas tres bien le language donc je vais vous montrer le code que j'ai essayer :

#include <IRremote.h>
#include <Servo.h>
Servo myServo;
int RECV_PIN = 12; //connecteur sortie signal du recepteurIR sur broche 12
IRrecv irrecv(RECV_PIN);
decode_results results;
int angle;

void setup(){
  irrecv.enableIRIn(); // start recepteur
  myServo.attach(9);
  Serial.begin(9600);
}

void loop() {
  if (irrecv.decode(&results)) {
   if (results.value==0x10EF40BF){ //Code telecommande<-
    myServo.write(0);
      delay(1000);
    }
    if (results.value==0x10EF7887){ //Code telecommande->
    myServo.write(180);
      delay(1000);
    }}
irrecv.resume();
}

Go Up