Ok sono riuscito a risolvere il problema, adesso però ne devo affrontare un altro... Praticamente quando gli INPUT AR0 e TE1 sono allo stato logico alto, il motore gira infinite volte, ecco dovrei cercare un modo per dirgli "fai solo tot passi e poi fermati"
Qualche suggerimento? :~
il codice è il seguente
int MP1 = 50; // pin motore passo-passo
int MP2 = 51;
int MP3 = 52;
int MP4 = 53;
int val1 = 0;
int val2 = 0;
#define AR0 5
#define TE1 4
void setup() {
pinMode(MP1, OUTPUT);
pinMode(MP2, OUTPUT);
pinMode(MP3, OUTPUT);
pinMode(MP4, OUTPUT);
pinMode(AR0, INPUT);
pinMode(TE1, INPUT);
}
void loop() {
val1 = digitalRead(AR0);
val2 = digitalRead(TE1);
if ( val1 == HIGH && val2 == HIGH ) {
digitalWrite(MP1, HIGH);
digitalWrite(MP2, LOW);
digitalWrite(MP3, LOW);
digitalWrite(MP4, LOW);
delay(5);
digitalWrite(MP1, LOW);
digitalWrite(MP2, HIGH);
digitalWrite(MP3, LOW);
digitalWrite(MP4, LOW);
delay(5);
digitalWrite(MP1, LOW);
digitalWrite(MP2, LOW);
digitalWrite(MP3, HIGH);
digitalWrite(MP4, LOW);
delay(5);
digitalWrite(MP1, LOW);
digitalWrite(MP2, LOW);
digitalWrite(MP3, LOW);
digitalWrite(MP4, HIGH);
}
else {
digitalWrite(MP1, LOW);
digitalWrite(MP2, LOW);
digitalWrite(MP3, LOW);
digitalWrite(MP4, LOW);
delay(5);
digitalWrite(MP1, LOW);
digitalWrite(MP2, LOW);
digitalWrite(MP3, LOW);
digitalWrite(MP4, LOW);
delay(5);
digitalWrite(MP1, LOW);
digitalWrite(MP2, LOW);
digitalWrite(MP3, LOW);
digitalWrite(MP4, LOW);
delay(5);
digitalWrite(MP1, LOW);
digitalWrite(MP2, LOW);
digitalWrite(MP3, LOW);
digitalWrite(MP4, LOW);
}
}