Sto avendo dei problemi con lo step motor ( 28BYJ-48 , collegato con quella piccola schedina verde che ha già integrate le sue resistenze però non so il suo nome).
- Non parte di conseguenza non so se sia un problema a livello hardware o software di programma.
- L'arduino è semplicemente collegato con il cavo usb al pc.
3)Sistema operativo : windows 7 - versione editor 1.6.3
- E' anche la prima volta che uso 2 schede nello stesso sketch perchè ho seguito un video su youtube che programmava questo famigerato motore
Nel caso possa essere utile metto la parte "software"
1 scheda dello sketch
MOTORE:
#define pin1 8
#define pin2 9
#define pin3 10
#define pin4 11
#define delaytime 8 //ci da il delay in millisecondi per controllare
//il delay del motore.
void setup() {
//Inizializzazione dei pin
pinMode(pin1 , OUTPUT);
pinMode(pin2 , OUTPUT);
pinMode(pin3 , OUTPUT);
pinMode(pin4 , OUTPUT);
}
void loop() {
int numberOfSteps = 48;
step_OFF(); //tutte le bobine vanno OFF
while (numberOfSteps > 0) {
forward();
numberOfSteps-- ; // contatore che va da 48 in giù
}
delay(2000);
step_OFF(); //fa andare tutte le bobine OFF
numberOfSteps = 40;
while (numberOfSteps > 0) {
backward();
numberOfSteps --; //contatore ceh va da 40 in giù
}
delay(2000);
}
FUNZIONI
void step_OFF() {
digitalWrite(pin1, LOW);
digitalWrite(pin2, LOW);
digitalWrite(pin3, LOW);
digitalWrite(pin4, LOW);
}
void Step_A() {
digitalWrite(pin1, HIGH); //Essendo lo stepper motor composto
digitalWrite(pin2, LOW); // da 4 magneti che tramite l'attivazione
digitalWrite(pin3, LOW); // uno dietro l'altro fanno muovere un rotore
digitalWrite(pin4, LOW); // con questa funzione si attiva il primo magnete
}
void Step_B() {
digitalWrite(pin1, LOW); //Attivazione del secondo magnete spegnendo il primo
digitalWrite(pin2, HIGH);
digitalWrite(pin3, LOW);
digitalWrite(pin4, LOW);
}
void Step_C() {
digitalWrite(pin1, LOW); //Attivaione del terzo magnete spegnendo gli altri
digitalWrite(pin2, LOW);
digitalWrite(pin3, HIGH);
digitalWrite(pin4, LOW);
}
void Step_D() {
digitalWrite(pin1, LOW); //Attivazione del quarto magnete spegnendo gli altri
digitalWrite(pin2, LOW);
digitalWrite(pin3, LOW);
digitalWrite(pin4, HIGH);
}
void forward() {
Step_A();
delay(delaytime);
Step_B();
delay(delaytime);
Step_C();
delay(delaytime);
Step_D();
delay(delaytime);
}
void backward() {
Step_D();
delay(delaytime);
Step_B();
delay(delaytime);
Step_C();
delay(delaytime);
Step_A();
delay(delaytime);
}