Stap 5: Het eindproduct
Hieronder is de code van de zender.
#include < VirtualWire.h >
Const int transmit_pin = 4;
char-id [4];
int i = 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();
Als (input > = 48 & & input < = 57) {}
id [i] = de input;
i ++;
} else {}
Ik = 0;
}
if(i == 4) {}
invoer = Serial.read();
Als (input == 'U') {}
char msg [5] = {id [0], id [1], id [2], id [3], 'U'};
vw_send ((uint8_t *) msg, 5);
}
Als (input == had') {}
char msg [5] = {id [0], id [1], id [2], id [3], had'};
vw_send ((uint8_t *) msg, 5);
}
Als (input == 'L') {}
char msg [5] = {id [0], id [1], id [2], id [3], 'L'};
vw_send ((uint8_t *) msg, 5);
}
Als (input == 'R') {}
char msg [5] = {id [0], id [1], id [2], id [3], 'R'};
vw_send ((uint8_t *) msg, 5);
}
Als (input == de ') {}
char msg [5] = {id [0], id [1], id [2], id [3],'S '};
vw_send ((uint8_t *) msg, 5);
}
vw_wait_tx();
Ik = 0;
}
}
}
Hieronder is de code van de ontvanger.
#include < VirtualWire.h >
Const int receive_pin = 6;
int pan [] = {14, 15};
int kantelen [] = {16, 17};
VOID Setup
{
for (int i = 0; ik < 2; i ++) {}
pinMode (pan [i], uitvoer);
pinMode (kantelen [i], uitvoer);
}
digitalWrite (11, hoge);
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;
Als (vw_get_message (buf, & buflen)) {}
Als (buf [0] == '1' & & buf [1] == "0" & & buf [2] == "2" & & buf [3] == '4') {}
Als (buf [4] == 'U') {}
digitalWrite (tilt [0], laag); //up
digitalWrite (tilt [1], hoge); //up
}
Als (buf [4] == had') {}
digitalWrite (tilt [0], hoge); //down
digitalWrite (tilt [1], laag); //down
}
Als (buf [4] == 'L') {}
digitalWrite (pan [0], hoge); //left
digitalWrite (pan [1], laag); //left
}
Als (buf [4] == 'R') {}
digitalWrite (pan [0], laag); //right
digitalWrite (pan [1], hoge); //right
}
Als (buf [4] == de ') {}
digitalWrite (pan [0], laag); //stop
digitalWrite (pan [1], laag); //stop
digitalWrite (tilt [0], laag); //stop
digitalWrite (tilt [1], laag); //stop
}
}
}
}
Dit werkt als een traktatie en ik ga te werken op het maken van een interface voor dat visual basic gebruikt om te communiceren en controle van de berg.
Ik hoop dat je genoten hebt van dit instructable, als u nog vragen aarzel dan niet om de vraag