Ciao, ho un problema con un codice che pilota dei motori. Vi posto un esempio per spiegarvi dov'è il problema:
#include <AFMotor.h>
AF_DCMotor motor1(1); // create motor #1
AF_DCMotor motor2(2); // create motor #2
int finecorsa = 8;
int var = 0;
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Motor test!");
pinMode(finecorsa, INPUT);
motor1.setSpeed(200); // set the speed to 200/255
motor2.setSpeed(200); // set the speed to 200/255
}
void loop() {
var = digitalRead(finecorsa);
Serial.println(var);
Serial.print("tick");
motor1.run(FORWARD); // turn it on going forward
motor2.run(FORWARD); // turn it on going forward
delay(1000);
Serial.print("tock");
motor1.run(BACKWARD); // the other way
motor2.run(BACKWARD); // the other way
delay(1000);
Serial.print("tack");
motor1.run(RELEASE); // stopped
motor2.run(RELEASE); // stopped
delay(1000);
Dunque, come si vede dal codice, ho incluso la libreria per lo shield che sto utilizzando. Se io carico il programma su arduino senza ciò che riguarda "finecorsa", il mio robot funziona. Nel momento in cui inserisco nel setup il pinMode(finecorsa, INPUT); il programma viene compilato e caricato, ma tutte le funzioni che riguardano la shield non funzionano. Le stampe me le esegue, ma i motori stanno fermi. Ho provato a togliere il pinMode e tutto torna a funzionare. Come può un pinMode compromettermi tutto ciò?