Se hai arduino mega 2560, devi provare a caricare questo scketch
#define pwm_1 3
#define pwm_2 2
#define dir_2 47
#define dir_1 46
#define ant1 23 //PORTA B sensore anteriore
#define post1 22 // PORTA B sensore posteriore
int val1 = 0; // legge lo stato del sensore anteriore
int val3 = 0; // legge lo stato del sensore posteriore
byte speed = 80;
int pwm_value=0;
void setup() {
Serial.begin(9600);
pinMode(ant1, INPUT);
pinMode(post1, INPUT);
pinMode(pwm_1,OUTPUT);
pinMode(dir_1,OUTPUT);
pinMode(pwm_2,OUTPUT);
pinMode(dir_2,OUTPUT);
}
/*
* COMMENTARE '#define debug' QUANDO SI PROVA IL ROBOT
*/
// #define debug
void loop()
{
val1 = digitalRead(ant1); // HIGH = sensore non attivo , LOW = sensore attivo ( switch premuto)
val3 = digitalRead (post1); // HIGH = sensore non attivo , LOW = sensore attivo ( switch premuto)
#ifdef debug
int v1 =LOW; // Simula lo switch anteriore premuto (attivo)
int v3 =HIGH; // Simula lo switch posteriore Non premuto ( Non attivo)
val1 = v1;
val3 = v3;
#endif
if (val1 ^ val3) // la condizione è vera solo se uno dei due sensori è attivo ( LOW = 0 volts = switch chiuso ). Se entrambi sono HIGH oppure entrambi sono LOW , la condizione è falsa.
// per cui se il robottino è chiuso davanti e dietro , rimmarà fermo e non eseguirà quindi il ciclo for.
{
delay(1000);
if (val1==LOW) // Se è stato il sensore val1 ad attivarsi allora configura la scheda motore per andare indietro ( verificare che non sia l'incontrario..)
{
digitalWrite(dir_1,HIGH);
digitalWrite(dir_2,LOW);
}
if (val3==LOW) // Se è stato il sensore val1 ad attivarsi allora configura la scheda motore per andare avanti ( verificare che non sia l'incontrario..)
{
digitalWrite(dir_1,LOW);
digitalWrite(dir_2,HIGH);
}
for (pwm_value=0; pwm_value<speed; pwm_value=pwm_value+5) // Esegue un ciclo di pwm come da codice originale
{
analogWrite(pwm_2,pwm_value);
analogWrite(pwm_1,pwm_value);
delay(100);
}
} // a questo punto il sensore attivo si sarà disattivato ( a meno che non sia rotto) rendendo la condizione di cui sopra , falsa impedendo il ripetersi del ciclo for.
}