Bene, allora lezione numero 2
byte pwm ;
byte IN1 = 6;
byte IN2 = 7;
byte IN3 = 8;
byte IN4 = 9;
byte ENA = 5 ; // ENA Motore di Sinistra
byte ENB = 10 ; // ENB Motore di Destra
int dir ;
void setup() {
Serial.begin(9600); // Abilita seriale
pinMode(IN1, OUTPUT); // Imposta i pin come uscite
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
ferma();
}
void motore1_avanti(byte pwm) { // Motore di SInistra
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite (ENA, pwm );
}
void motore2_avanti(byte pwm) { // Motore di Destra
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite (ENB, pwm);
}
void motore1_indietro(byte pwm) {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite (ENA, pwm );
}
void motore2_indietro(byte pwm) {
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite (ENB, pwm);
}
void ferma () {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
analogWrite (ENA, 0);
analogWrite (ENB, 0);
}
void loop() {
while ( Serial.available() >0 )
{
dir = Serial.read();
if(dir == 'a'){
motore1_avanti(255);
motore2_avanti(255);
Serial.println("avanti");
}
if(dir == 'i'){
motore1_indietro(255);
motore2_indietro(255);
Serial.println("indietro");
}
if(dir == 'f'){
ferma();
Serial.println("ferma");
}
if(dir == 'd'){ // sterza a Destra
motore1_avanti(255); // Motore di sinistra Veloce
motore2_avanti(50); // Motore di destra piano
Serial.println("Sterza a destra");
}
if(dir == 's'){ // sterza a Sinistra
motore1_avanti(50); // Motore di Sinistra piano
motore2_avanti(255); // Motore di destra veloce
Serial.println("sterza a sinistra");
}
}
}
