#define echoPin 8 // Pin che riceve la pulsazione echo#define trigPin 9const int ms = 6; //pin A motore SX ponteHconst int ms2= 7; //pin B motore SX ponteHconst int md = 4; //pin A motore DX ponteHconst int md2= 5; //pin B motore DX ponteHchar state;int distance;int vSpeed=200; void setup() { Serial.begin(38400); pinMode(ms, OUTPUT); pinMode(ms2, OUTPUT); pinMode(md, OUTPUT); pinMode(md2, OUTPUT); pinMode(echoPin, INPUT); pinMode(trigPin, OUTPUT);} void loop() { //prendo lo stato dal seriale if(Serial.available() > 0){ state = Serial.read(); Serial.write(state); } switch(state){ //avanti case 'B': distanza(distance); avanti(); break; //destra case 'C': distanza(distance); destra(); break; //sinistra case 'A': distanza(distance); sinistra(); break; //indietro case 'D': indietro(); break; //stop default: Stop(); } if((distance<=6)&&(distance!=0)){ Stop(); indietro(); delay(3000); }}void avanti (){ digitalWrite(ms,LOW); digitalWrite(ms2, vSpeed); digitalWrite(md,LOW); digitalWrite(md2, vSpeed); }void destra (){ digitalWrite (ms,vSpeed); digitalWrite (ms2,LOW); digitalWrite (md,LOW); digitalWrite (md2,vSpeed); }void sinistra(){ digitalWrite (ms,LOW); digitalWrite (ms2,vSpeed); digitalWrite (md,vSpeed); digitalWrite (md2,LOW); }void indietro (){ digitalWrite(ms,vSpeed); digitalWrite(ms2,LOW); digitalWrite(md,vSpeed); digitalWrite(md2,LOW); }void Stop() { digitalWrite (ms,LOW); digitalWrite (ms2,LOW); digitalWrite (md,LOW); digitalWrite (md2,LOW);}void distanza(int &distance){ digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); distance = pulseIn(echoPin, HIGH); distance= distance/58; }
#define echoPin 8 // Pin che riceve la pulsazione echo#define trigPin 9const int ms = 6; //pin A motore SX ponteHconst int ms2= 7; //pin B motore SX ponteHconst int md = 4; //pin A motore DX ponteHconst int md2= 5; //pin B motore DX ponteHchar state;int distance;int vSpeed=10; void setup() { Serial.begin(38400); pinMode(ms, OUTPUT); pinMode(ms2, OUTPUT); pinMode(md, OUTPUT); pinMode(md2, OUTPUT); pinMode(echoPin, INPUT); pinMode(trigPin, OUTPUT);} void loop() { //prendo lo stato dal seriale if(Serial.available() > 0){ state = Serial.read(); Serial.write(state); } switch(state){ //avanti case 'B': distanza(distance); avanti(); delay(100); break; //destra case 'C': distanza(distance); destra(); delay(100); break; //sinistra case 'A': distanza(distance); sinistra(); delay(100); break; //indietro case 'D': indietro(); delay(100); break; //stop default: Stop(); } state=0; if((distance<=6)&&(distance!=0)){ Stop(); indietro(); delay(3000); }}void avanti (){ digitalWrite(ms,LOW); digitalWrite(ms2, vSpeed); digitalWrite(md,LOW); digitalWrite(md2, vSpeed); }void destra (){ digitalWrite (ms,vSpeed); digitalWrite (ms2,LOW); digitalWrite (md,LOW); digitalWrite (md2,vSpeed); }void sinistra(){ digitalWrite (ms,LOW); digitalWrite (ms2,vSpeed); digitalWrite (md,vSpeed); digitalWrite (md2,LOW); }void indietro (){ digitalWrite(ms,vSpeed); digitalWrite(ms2,LOW); digitalWrite(md,vSpeed); digitalWrite(md2,LOW); }void Stop() { digitalWrite (ms,LOW); digitalWrite (ms2,LOW); digitalWrite (md,LOW); digitalWrite (md2,LOW);}void distanza(int &distance){ digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); distance = pulseIn(echoPin, HIGH); distance= distance/58; }