/*
* Geen gecombineerde opdrachten mogelijk, buffer wordt gewist aan einde loop
* cijfer eerst voor motor controle
* tweede karakter V=vooruit, A=vooruit, S=stop, cijfer=snelheid (0-9)
*/
bool SCHAKEL1;
bool SCHAKEL2;
int spd = 0;
char t;
char mc;
void setup() {
Serial.begin(9600);
pinMode(5, OUTPUT); // motorregelaar
pinMode(6, OUTPUT); // motorregelaar
pinMode(7, OUTPUT); // motorregelaar
pinMode(8, OUTPUT); // motorregelaar
pinMode(9, OUTPUT); // motorregelaar
pinMode(10, OUTPUT); // motorregelaar
pinMode(11, OUTPUT); // motorregelaar
pinMode(13, OUTPUT); // Onboard LED
pinMode(14, OUTPUT); // relais 1
pinMode(15, OUTPUT); // relais 2
digitalWrite(5, HIGH); // motorregelaar, inputs low & PWM high: motor stop, vrij draaiend.
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(13, HIGH); //LED uit
digitalWrite(14, HIGH); //relais uit
digitalWrite(15, HIGH); //relais uit
SCHAKEL1 = true;
SCHAKEL2 = true;
}
void loop() {
if (Serial.available()) {
t = Serial.read();
Serial.println(t);
}
if (t == '1') {
mc = Serial.read ();
if (mc == 'V') {
digitalWrite (7,HIGH);
digitalWrite (6,LOW);
}
if (mc == 'A') {
digitalWrite (7,LOW);
digitalWrite (6,HIGH);
}
if (mc == 'S') {
digitalWrite (7,LOW);
digitalWrite (6,LOW);
}
if (mc > 47 && mc < 58) { // cijfer karakters 0 t/m 9
// bereken speed output in stappen van 29, gebaseerd op cijfer-karakter 0 (=0) tot 9 (=261).
spd = (mc - 48)*29;
if (spd > 255) spd = 255;
analogWrite (5,spd);
}
}
if (t == '2') {
mc = Serial.read ();
if (mc == 'V') {
digitalWrite (9,HIGH);
digitalWrite (10,LOW);
}
if (mc == 'A') {
digitalWrite (9,LOW);
digitalWrite (10,HIGH);
}
if (mc == 'S') {
digitalWrite (9,LOW);
digitalWrite (10,LOW);
}
if (mc > 47 && mc < 58) { // cijfer karakters 0 t/m 9
// bereken speed output in stappen van 29, gebaseerd op cijfer-karakter 0 (=0) tot 9 (=261).
spd = (mc - 48)*29;
if (spd > 255) spd = 255;
analogWrite (11,spd);
}
}
if (t == 'a') {
SCHAKEL1 = !SCHAKEL1; // true wordt false of false wordt true
digitalWrite (14, SCHAKEL1);
}
if (t == 'b') {
SCHAKEL2 = !SCHAKEL2;
digitalWrite (15, SCHAKEL2);
}
if (t == 'c') PORTB = PORTB ^ B00100000; // inverteer pin 13
do { // maak buffer leeg met do..while loop
Serial.read();
} while (Serial.available()>0);
//Serial.print (SCHAKEL1); Serial.print (" "); Serial.println (SCHAKEL2);
t = 0;
mc = 0;
delay (200);
}