Étape 1: Code pour Robot - possibilité d’utiliser ou de RX
//***********************
2 moteurs et Joystik
moteurs moteur sheld
//**********************
Libbrerie e costanti
#include < VirtualWire.h >
broche pour led
#define LED_pin4 4 / / avanti GIALLO go jaune
#define LED_pin5 5 / / indietro dos de bo BLU BLU
#define LED_pin6 6 / / destra VERDE droite vert
#define LED_pin7 7 / / sinistra ROSSO gauche rouge
del ricevitore broche de RX
#define RX_pin 2
broche direzione e velocità del motore sinistro, dir et la puissance du moteur gauche
int pinDirS = 13 ;
int pinVelS = 11 ;
broche direzione e velocità del motore destro, dir et la puissance du moteur droit
int pinDirD = 12 ;
int pinVelD = 3 ;
void setup()
{
Serial.Begin(38400) ;
PIN PAR SEGNALARE QUELLO CHE ARRIVA JOYSTIK DAL ACCENDENDO I LED
Cette broche est de voir le signal de joystik
pinMode (LED_pin4, sortie) ;
pinMode (LED_pin5, sortie) ;
pinMode (LED_pin6, sortie) ;
pinMode (LED_pin7, sortie) ;
tutti spengo que j’ai dirigé, toutes les led éteinte
digitalWrite (LED_pin4, basse) ;
digitalWrite (LED_pin5, basse) ;
digitalWrite (LED_pin6, basse) ;
digitalWrite (LED_pin7, basse) ;
vw_set_rx_pin(RX_pin) ;
Servirebbe non: il défaut è 11
vw_setup(3000) ; Bits par vw_rx_start() s ;
Inizio il processo di ricezione
Serial.println ("attivo Ricevitore:") ;
imposto je broches del motore sinistro, gauche moteur
pinMode (pinDirS, sortie) ;
pinMode (pinVelS, sortie) ;
imposto je broches del motore destro, droite moteur
pinMode (pinDirD, sortie) ;
pinMode (pinVelD, sortie) ;
}
void loop() {}
uint8_t buf [VW_MAX_MESSAGE_LEN] ;
uint8_t buflen = VW_MAX_MESSAGE_LEN ;
Si (vw_get_message (buf, & buflen)) / / Non-bloquant
{buf [buflen] = « \0 »; / / Moussa il terminatore di stringa
Si (strncmp ((char *) buf, "Alto", buflen) == 0) {avanza() ;
}
Si (strncmp ((char *) buf, "Basso", buflen) == 0) {indietro() ;
}
Si (strncmp ((char *) buf, "Destra", buflen) == 0) {giraDX() ;
}
Si (strncmp ((char *) buf, "Sinistra", buflen) == 0) {giraSX() ;
}
ElseIf (strncmp ((char *) buf, "Bottone", buflen) == 0) ferma() ;
Serial.Print ("Comando Ricevuto (" + String(buflen) + "auto.):") ;
Serial.println ((char *) buf+String("//")) ;
}
}
fonction
void avanza() {}
Serial.println("Avanzo") ;
digitalWrite (LED_pin4, élevé) ; Accendo il conduit 4 giallo
digitalWrite (LED_pin5, basse) ; Il spengo LED 5
digitalWrite (LED_pin6, basse) ; Il spengo LED 6
digitalWrite (LED_pin7, basse) ; Il spengo LED 7
digitalWrite (pinDirS, HIGH) ;
digitalWrite (pinDirD, HIGH) ;
analogWrite (pinVelS, 255) ;
analogWrite (pinVelD, 255) ;
}
void indietro() {}
Serial.println("Indietro") ;
digitalWrite (LED_pin4, basse) ; Il spengo LED
digitalWrite (LED_pin5, élevé) ; Accendo il conduit 5 blu
digitalWrite (LED_pin6, basse) ; Il spengo LED 6
digitalWrite (LED_pin7, basse) ; Il spengo LED 7
digitalWrite (pinDirS, basse) ;
digitalWrite (pinDirD, basse) ;
analogWrite (pinVelS, 255) ;
analogWrite (pinVelD, 255) ;
}
void giraDX() {}
Serial.println ("Giro un DX") ;
digitalWrite (LED_pin4, basse) ; Il spengo del 4
digitalWrite (LED_pin5, basse) ; Il spengo LED 5
digitalWrite (LED_pin6, élevé) ; Accendo il conduit 6 verde
digitalWrite (LED_pin7, basse) ; Il spengo LED 7
digitalWrite (pinDirS, basse) ;
digitalWrite (pinDirD, HIGH) ;
analogWrite (pinVelS, 255) ;
analogWrite (pinVelD, 255) ;
}
void giraSX() {}
Serial.println ("Giro un SX") ;
digitalWrite (LED_pin4, basse) ; Il spengo del 4
digitalWrite (LED_pin5, basse) ; Il spengo LED 5
digitalWrite (LED_pin6, basse) ; Il spengo LED 6
digitalWrite (LED_pin7, élevé) ; Accendo il conduit 7 rosso
digitalWrite (pinDirS, HIGH) ;
digitalWrite (pinDirD, basse) ;
analogWrite (pinVelS, 255) ;
analogWrite (pinVelD, 255) ;
}
void ferma() {}
Serial.println ("Mi fermo") ;
digitalWrite (LED_pin4, basse) ; Il spengo LED 7
digitalWrite (LED_pin5, basse) ; Il spengo del 4
digitalWrite (LED_pin6, basse) ; Il spengo LED 6
digitalWrite (LED_pin7, basse) ; Il spengo LED 5
digitalWrite (pinDirS, HIGH) ;
digitalWrite (pinDirD, HIGH) ;
analogWrite(pinVelS,0) ;
analogWrite(pinVelD,0) ;
}