Paso 5: El producto final
Abajo está el código del transmisor.
#include < VirtualWire.h >
const int transmit_pin = 4;
id de Char [4];
int i = 0;
void setup()
{
Serial.Begin(9600);
pinMode (5, salida);
digitalWrite (5, 1);
pinMode (6, salida);
digitalWrite (6, 0);
vw_set_tx_pin(transmit_pin);
vw_setup(2000);
}
void loop()
{
{if(serial.Available())}
char entrada = Serial.read();
Si (entrada > = 48 & & entrada < = 57) {}
ID [i] = entrada;
i ++;
} else {}
i = 0;
}
if(i == 4) {}
entrada = Serial.read();
Si (entrada == 'U') {}
char mensaje [5] = {id [0] id [1], id [2], id [3], 'U'};
vw_send ((uint8_t *) msg, 5);
}
Si (entrada == había ') {}
char mensaje [5] = {id [0], id [1], id [2], id [3], había '};
vw_send ((uint8_t *) msg, 5);
}
Si (entrada == 'L') {}
char mensaje [5] = {id [0] id [1], id [2], id [3], 'L'};
vw_send ((uint8_t *) msg, 5);
}
Si (entrada == 'R') {}
char mensaje [5] = {id [0] id [1], id [2], id [3], 'R'};
vw_send ((uint8_t *) msg, 5);
}
Si (entrada == de ') {}
char mensaje [5] = {id [0], id [1], id [2], id [3],'};
vw_send ((uint8_t *) msg, 5);
}
vw_wait_tx();
i = 0;
}
}
}
abajo está el código del receptor.
#include < VirtualWire.h >
const int receive_pin = 6;
pan de int [] = {14, 15};
inclinación de int [] = {16, 17};
void setup()
{
para (int i = 0; i < 2; i ++) {}
pinMode ([i] pan, salida);
pinMode (inclinación [i], salida);
}
digitalWrite (11, alto);
pinMode (7, salida);
digitalWrite (7, 0);
pinMode (4, salida);
digitalWrite (4, 1);
vw_set_rx_pin(receive_pin);
vw_setup(2000);
vw_rx_start();
}
void loop()
{
uint8_t buf [VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
Si (vw_get_message (buf & buflen)) {}
Si (buf [0] == '1' & & buf [1] == '0' & & buf [2] == '2' & & buf [3] == '4') {}
Si (buf [4] == 'U') {}
digitalWrite (inclinación [0], LOW); //up
digitalWrite (inclinación [1], HIGH); //up
}
Si (buf [4] == había ') {}
digitalWrite (inclinación [0], HIGH); //down
digitalWrite (inclinación [1], LOW); //down
}
Si (buf [4] == 'L') {}
digitalWrite (pan [0], HIGH); //left
digitalWrite (pan [1], LOW); //left
}
Si (buf [4] == 'R') {}
digitalWrite (pan [0], LOW); //right
digitalWrite (pan [1], HIGH); //right
}
Si (buf [4] == de ') {}
digitalWrite (pan [0], LOW); //stop
digitalWrite (pan [1], LOW); //stop
digitalWrite (inclinación [0], LOW); //stop
digitalWrite (inclinación [1], LOW); //stop
}
}
}
}
Esto funciona como un regalo y voy a estar trabajando en la creación de una interfaz para que visual basic se utiliza para comunicar y controlar el montaje.
Espero que hayas disfrutado este instructable, si usted tiene alguna pregunta por favor no dude en preguntar