ABCelectronique : portail d'information dans le domaine de l'électronique

Merci de ne pas poster des messages en relation avec le piratage.


    Forums de Abcelectronique > Software / Péri-informatique
  » arduino virtualwire
Identifiant Se souvenir de moi ?
Mot de passe
Répondre     Nouvelle discussion
arduino virtualwire

 

arduinopicaxe
arduinopicaxe ★★☆☆☆☆☆ 04/08/2015, 17h53 #1  
bonjour j'ai un probleme avec mon code:


telecomande:

Code:
#include <VirtualWire.h> byte buf[0]; int pin4 = 4; int etat1; int etat2; char val; void setup() { // put your setup code here, to run once: pinMode(pin4,INPUT); pinMode(2,INPUT); vw_set_tx_pin(3); vw_setup(2000); } void loop() { etat1 = digitalRead(pin4); etat2 = digitalRead(2); if(etat1 == HIGH) { val = '1'; buf[0]= byte(val); vw_send(buf, 1); vw_wait_tx(); delay(200); } if(etat2 == HIGH) { val = '2'; buf[0]= byte(val); vw_send(buf, 1); vw_wait_tx(); delay(200); } if(etat1 == LOW && etat2 == LOW) { val = '3'; buf[0]= byte(val); vw_send(buf, 1); vw_wait_tx(); delay(200); } // put your main code here, to run repeatedly: }


robot:

Code:
#include <VirtualWire.h> char val; int motor1_enablePin = 9; int motor1_in1Pin = 13; int motor1_in2Pin = 12; int motor2_enablePin = 6; int motor2_in1Pin = 8; int motor2_in2Pin = 7; void setup() { vw_set_rx_pin(A0); vw_setup(2000); vw_rx_start(); } void loop() { byte buf[VW_MAX_MESSAGE_LEN]; byte buflen = VW_MAX_MESSAGE_LEN; if (vw_get_message(buf, &buflen)) { val = buf[0]; switch(val) { case '1': moteur1(HIGH); break; case '2': moteur2(HIGH); break; case '3': stopMoteur(); break; } } } void moteur1(int etat1) { digitalWrite(motor1_enablePin, etat1); digitalWrite(motor1_in1Pin, etat1); digitalWrite(motor1_in2Pin, !etat1); } void moteur2(int etat2) { digitalWrite(motor2_enablePin, etat2); digitalWrite(motor2_in1Pin, etat2); digitalWrite(motor2_in2Pin, !etat2); } void stopMoteur() { digitalWrite(motor1_enablePin,LOW); digitalWrite(motor1_in1Pin, LOW); digitalWrite(motor1_in2Pin, LOW); digitalWrite(motor2_enablePin, LOW); digitalWrite(motor2_in1Pin, LOW); digitalWrite(motor2_in2Pin, LOW); }

quand j appuit sur le bp1 le m1 fonctionne et quand j appuit sur le bp2 m2 fonctionne pas meme chose l'inverse.SVP aider moi

Dernière modification par Webmaster 04/08/2015 à 19h57.
Thyratron
Thyratron ★★★★★☆☆ 04/08/2015, 19h06 #2  
Bonsoir,
Vous faites des commentaires en english pour le fun ou bien est-ce la langue du source?
Beaucoup de programme disponibles ici et là ne fonctionnent pas pour plein de raisons, à commencer par, l'auteur a oublié de joindre une bibliothèque.

->Faire un zip, pdf mis en pièce jointe est plus pratique à lire chez soi et encombre moins le serveur.

Pour dépanner procéder par étape, votre bouton est-il détecté?, la fonction souhaitée est-elle bien appelée etc.
A chaque étape il suffit d'inclure un indicateur ex led, mieux encore un affichage lcd ou message envoyé sur la ligne série vers le développeur.
Vous progresser jusqu'à cerner le fautif.
Le programme qui tombe en marche du premier coup est suspect.
Bon courage.
Répondre