Hackat Pan och Tilt kamera montera (5 / 5 steg)
Steg 5: Den slutliga produkten
Nedan är sändaren koden.
#include < VirtualWire.h >
CONST int transmit_pin = 4;
char-id [4].
int jag = 0;
void setup()
{
Serial.BEGIN(9600);
pinMode (5, OUTPUT);
digitalWrite (5, 1);
pinMode (6, OUTPUT);
digitalWrite (6, 0);
vw_set_tx_pin(transmit_pin);
vw_setup(2000);
}
void loop()
{
IF(Serial.available()) {
char input = Serial.read();
om (input > = 48 & & input < = 57) {
ID [i] = ingång;
i ++;
} annat {
Jag = 0;
}
IF(i == 4) {
input = Serial.read();
om (ingång == 'U') {
char msg [5] = {id [0], id [1], id [2], id [3], "U"};
vw_send ((uint8_t *) msg, 5);
}
om (ingång == hade ") {
char msg [5] = {id [0], id [1], id [2], id [3], hade "};
vw_send ((uint8_t *) msg, 5);
}
om (ingång == "L") {
char msg [5] = {id [0], id [1], id [2], id [3], "L"};
vw_send ((uint8_t *) msg, 5);
}
om (ingång == "R") {
char msg [5] = {id [0], id [1], id [2], id [3], "R"};
vw_send ((uint8_t *) msg, 5);
}
om (ingång == s ') {
char msg [5] = {id [0], id [1], id [2], id [3], "};
vw_send ((uint8_t *) msg, 5);
}
vw_wait_tx();
Jag = 0;
}
}
}
nedan är mottagaren koden.
#include < VirtualWire.h >
CONST int receive_pin = 6;
int pan [] = {14, 15};
int luta [] = {16, 17};
void setup()
{
för (int jag = 0; jag < 2; i ++) {
pinMode (pan [i], utgång);
pinMode (luta [i], utgång);
}
digitalWrite (11, hög).
pinMode (7, OUTPUT);
digitalWrite (7, 0);
pinMode (4, OUTPUT);
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;
om (vw_get_message (buf, och buflen)) {
om (buf [0] == '1' & & buf [1] == '0' & & buf [2] == '2' & & buf [3] == '4') {
om (buf [4] == 'U') {
digitalWrite (tilt [0], låg), //up
digitalWrite (tilt [1], hög), //up
}
om (buf [4] == hade ") {
digitalWrite (tilt [0], hög), //down
digitalWrite (tilt [1], låg), //down
}
om (buf [4] == "L") {
digitalWrite (pan [0], hög), //left
digitalWrite (pan [1], låg), //left
}
om (buf [4] == "R") {
digitalWrite (pan [0], låg), //right
digitalWrite (pan [1], hög), //right
}
om (buf [4] == s ') {
digitalWrite (pan [0], låg), //stop
digitalWrite (pan [1], låg), //stop
digitalWrite (tilt [0], låg), //stop
digitalWrite (tilt [1], låg), //stop
}
}
}
}
Detta fungerar som en behandling och jag kommer att arbeta på att skapa ett gränssnitt för den som använder visual basic för att kommunicera och styra fästet.
Jag hoppas du gillade detta instructable, om du har några frågor är du välkommen att fråga