Salve, volevo realizzare una macchina telecomandata via bluetooth senza usare alcun genere di ponte H, ma bensi' il ponte H interno insieme al chip RX2. Solo che ho dei problemi a fondere i codici.
Questo codice ci permette di far muovere in loop le ruote posteriori in avanti:
PS: preso da una topic sempre su questo forum Control cheap RC toy car RX2 chip with Arduino using only one pin - [SOLVED] - Project Guidance - Arduino Forum
void setup()
{
pinMode(11, OUTPUT);
}
void loop()
{
for(int i=0; i<=3; i++) // This starts the communication 4 W2 pulses 1KHz 75% duty cycle
{
digitalWrite(11, HIGH);
delayMicroseconds(1500);
digitalWrite(11, LOW);
delayMicroseconds(500);
}
for(int i=0; i<=9; i++) // This makes the car go "forward" 10 W1 pulses 500Mhz 50% duty cycle
{
digitalWrite(11, HIGH);
delayMicroseconds(500);
digitalWrite(11, LOW);
delayMicroseconds(500);
}
}
Mente questo codice demo serve per far muovere le ruote con qualsiasi combinazione (avanti, indietro, avanti destra , indietro sinistra ecc..).
PS: Non riesco a trovare la fonte del codice
void setup(){
pinMode(11, OUTPUT);
}
void loop(){
unsigned long startms;
startms = millis();
while(millis() - startms < 2000) {
FWD();
}
delay(1000);
startms = millis();
while(millis() - startms < 2000) {
BAK();
}
delay(1000);
startms = millis();
while(millis() - startms < 2000) {
LEFTFWD();
}
delay(1000);
startms = millis();
while(millis() - startms < 2000) {
RIGHTFWD();
}
delay(1000);
startms = millis();
while(millis() - startms < 2000) {
LEFTBAK();
}
delay(1000);
startms = millis();
while(millis() - startms < 2000) {
RIGHTBAK();
}
delay(1000);
startms = millis();
while(millis() - startms < 2000) {
LEFTSPIN();
}
delay(1000);
startms = millis();
while(millis() - startms < 2000) {
RIGHTSPIN();
}
delay(1000);
}
void command(int mode) {
for(int i=0; i<=3; i++)
{
digitalWrite(11, HIGH);
delayMicroseconds(1500);
digitalWrite(11, LOW);
delayMicroseconds(500);
}
for(int i=0; i<mode; i++)
{
digitalWrite(11, HIGH);
delayMicroseconds(500);
digitalWrite(11, LOW);
delayMicroseconds(500);
}
}
void FWD(){
command(28);
}
void BAK(){
command(46);
}
void LEFTFWD(){
command(58);
}
void RIGHTFWD(){
command(10);
}
void LEFTBAK(){
command(64);
}
void RIGHTBAK(){
command(40);
}
void LEFTSPIN(){
command(52);
}
void RIGHTSPIN(){
command(34);
}
Questo codice permette di accendere un led con un'app specifica sul cellulare:
char data = 0; //Variable for storing received data
void setup()
{
Serial.begin(9600); //Sets the data rate in bits per second (baud) for serial data transmission
pinMode(13, OUTPUT); //Sets digital pin 13 as output pin
}
void loop()
{
if(Serial.available() > 0) // Send data only when you receive data:
{
data = Serial.read(); //Read the incoming data and store it into variable data
Serial.print(data); //Print Value inside data in Serial monitor
Serial.print("\n"); //New line
if(data == '1') //Checks whether value of data is equal to 1
digitalWrite(13, HIGH); //If value is 1 then LED turns ON
else if(data == '0') //Checks whether value of data is equal to 0
digitalWrite(13, LOW); //If value is 0 then LED turns OFF
}
}
Potreste dirmi dove devo mettere le istruzioni condizionali nel secondo codice grazie :).
TX2RX2.doc (328 KB)