Now with wireless control using 433MHz frequency. Code uses RadioHead-library.
Transmitter Arduino code:
#include <RH_ASK.h>
#include <SPI.h> // Not actualy used but needed to compile
RH_ASK driver(2000, 2, A5, 4);
byte old_mot_1;
byte old_mot_2;
void setup() {
driver.init();
}
void loop() {
int pot_1 = analogRead(1); // potentiometers values
int pot_2 = analogRead(0);
byte mot_1 = map(pot_1, 0, 1023, 0, 255);
byte mot_2 = map(pot_2, 0, 1023, 0, 255);
byte msg[3];
msg[0] = mot_1;
msg[1] = mot_2;
driver.send(msg, 3);
driver.waitPacketSent();
delay(200);
}
Receiver Arduino code:
#include <RH_ASK.h>
#include <SPI.h> // Not actualy used but needed to compile
RH_ASK driver(2000, 13, 2, 4);
int pot_1 = 128;
int pot_2 = 128;
void setup() {
driver.init();
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}
void loop() {
byte buf[3];
if (driver.recv(buf, 3)) { // Non-blocking
pot_1 = buf[0]; // potentiometers values
pot_2 = buf[1];
}
// MOTOR ONE
// direction backward
if(pot_1 < 128-10) {
digitalWrite(7,0); // motor direction
int mot_1 = map(pot_1, 0, 128-10, 255, 0);
analogWrite(3,mot_1);
}
// stop motor in middle position
else if((pot_1 > 128-9) && (pot_1 < 128+9)) {
digitalWrite(7,0); // motor direction
analogWrite(3,0); // motor speed
}
// direction forward
else if(pot_1 > 128+10) {
digitalWrite(7,1); // motor direction
int mot_1 = map(pot_1, 128+10, 255, 255, 0);
analogWrite(3,mot_1);
}
// MOTOR TWO
// direction backward
if(pot_2 < 128-10) {
digitalWrite(8,0); // motor direction
int mot_2 = map(pot_2, 0, 128-10, 255, 0);
analogWrite(11,mot_2);
}
// stop motor in middle position
else if((pot_2 > 128-9) && (pot_2 < 128+9)) {
digitalWrite(8,0); // motor direction
analogWrite(11,0); // motor speed
}
// direction forward
else if(pot_2 > 128+10) {
digitalWrite(8,1); // motor direction
int mot_2 = map(pot_2, 128+10, 255, 255, 0);
analogWrite(11,mot_2);
}
}