Paso 1: Código para Robot - reciver o RX
//***********************
2 motores y Joystik
motores en motor sheld
//**********************
Libbrerie e costanti
#include < VirtualWire.h >
perno para led
#define LED_pin4 4 / / avanti GIALLO ir amarillo
#define LED_pin5 5 / / parte posterior indietro bo BLU BLU
#define LED_pin6 6 / destra VERDE verde de la derecha
#define LED_pin7 7 / sinistra ROSSO rojo a la izquierda
perno del ricevitore perno de RX
#define RX_pin 2
PIN direzione e velocità del motore sinistro, dir y potencia del motor izquierdo
int pinDirS = 13;
int pinVelS = 11;
PIN direzione e velocità del motore destro, dir y potencia del motor derecho
int pinDirD = 12;
int pinVelD = 3;
void setup()
{
Serial.Begin(38400);
PIN POR SEGNALARE QUELLO ARRIVA DAL JOYSTIK ACCENDENDO I LED
este pin es para ver la señal de joystik
pinMode (LED_pin4, salida);
pinMode (LED_pin5, salida);
pinMode (LED_pin6, salida);
pinMode (LED_pin7, salida);
spengo tutti llevado, todos los led apagado
digitalWrite (LED_pin4, bajo);
digitalWrite (LED_pin5, bajo);
digitalWrite (LED_pin6, bajo);
digitalWrite (LED_pin7, bajo);
vw_set_rx_pin(RX_pin);
No servirebbe: il predeterminado è 11
vw_setup(3000); Bits por segundo vw_rx_start();
Inicio il processo di ricezione
Serial.println ("Ricevitore attivo:");
imposto pin del motore sinistro, izquierdo motor
pinMode (pinDirS, salida);
pinMode (pinVelS, salida);
imposto pin del motore destro, motor derecho
pinMode (pinDirD, salida);
pinMode (pinVelD, salida);
}
void loop() {}
uint8_t buf [VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
Si (vw_get_message (buf & buflen)) / / sin bloqueo
{buf [buflen] = '\0'; / / Metto il terminatore di stringa
Si (strncmp ((char *) buf, buflen "Alto,") == 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();
}
else if (strncmp ((char *) buf, "Bottone", buflen) == 0) ferma();
Serial.Print ("Comando Ricevuto (" + String(buflen) + "car.):");
Serial.println ((char *) buf+String("//"));
}
}
función
{} void avanza()
Serial.println("avanzo");
digitalWrite (LED_pin4, alto); Accendo il LED 4 giallo
digitalWrite (LED_pin5, bajo); Spengo il LED 5
digitalWrite (LED_pin6, bajo); Spengo il LED 6
digitalWrite (LED_pin7, bajo); Spengo il LED 7
digitalWrite (pinDirS, HIGH);
digitalWrite (pinDirD, HIGH);
analogWrite (pinVelS, 255);
analogWrite (pinVelD, 255);
}
void indietro() {}
Serial.println("indietro");
digitalWrite (LED_pin4, bajo); Spengo il LED
digitalWrite (LED_pin5, alto); Accendo il LED blu 5
digitalWrite (LED_pin6, bajo); Spengo il LED 6
digitalWrite (LED_pin7, bajo); Spengo il LED 7
digitalWrite (pinDirS, bajo);
digitalWrite (pinDirD, bajo);
analogWrite (pinVelS, 255);
analogWrite (pinVelD, 255);
}
void giraDX() {}
Serial.println ("Giro un DX");
digitalWrite (LED_pin4, bajo); Spengo il LED 4
digitalWrite (LED_pin5, bajo); Spengo il LED 5
digitalWrite (LED_pin6, alto); Accendo il LED verde 6
digitalWrite (LED_pin7, bajo); Spengo il LED 7
digitalWrite (pinDirS, bajo);
digitalWrite (pinDirD, HIGH);
analogWrite (pinVelS, 255);
analogWrite (pinVelD, 255);
}
void giraSX() {}
Serial.println ("Giro un SX");
digitalWrite (LED_pin4, bajo); Spengo il LED 4
digitalWrite (LED_pin5, bajo); Spengo il LED 5
digitalWrite (LED_pin6, bajo); Spengo il LED 6
digitalWrite (LED_pin7, alto); Accendo il LED rosso 7
digitalWrite (pinDirS, HIGH);
digitalWrite (pinDirD, bajo);
analogWrite (pinVelS, 255);
analogWrite (pinVelD, 255);
}
void ferma() {}
Serial.println ("Mi fermo");
digitalWrite (LED_pin4, bajo); Spengo il LED 7
digitalWrite (LED_pin5, bajo); Spengo il LED 4
digitalWrite (LED_pin6, bajo); Spengo il LED 6
digitalWrite (LED_pin7, bajo); Spengo il LED 5
digitalWrite (pinDirS, HIGH);
digitalWrite (pinDirD, HIGH);
analogWrite(pinVelS,0);
analogWrite(pinVelD,0);
}