Utente:N.Bertucccioli/Motore
Far girare un motore
[modifica]Questo progetto permette a un motore DC di girare in 2 sensi grazie all'utilizzo di un ponte H.
Descrizione del progetto
[modifica]il sistema è così composto:
In uscita si hanno 3 pin il 7, 8, e il 9:
- I pin 7 e 8 servono per dare energia al motore e farlo girare nei 2 sensi, che dipende da che cavo viene messo come "HIGH" e come "LOW";
(immagine high low)
- Il pin 9 invece serve a comandare la velocità a cui gira il motore;
Questi pin sono collegati ad un ponte H alla quale poi collegherò il motore che (rispetto al codice fatto da me) girerà per 1,8 secondi in un senso, starà un secondo fermo e girerà nel senso opposto per altri 1.8 secondi per poi ripartire.
Schema elettrico
[modifica](non posso caricare lo schema elettrico del ponte ad H perchè sul sito che ho usato per disegnare il progetto non è presente)
Ponte a H
[modifica]Questo componente ci permette di controllare la velocità e i senso di rotazione del motore, a differenza di un semplice deviatore che ci fa cambiare la direzione in cui gira semplicemente alimentando uno o l'altro filo del motore.
Schema di montaggio
[modifica]Codice
[modifica]Modo di utilizzo dei pin, in questo caso, di uscita.
int A = 7;
int B = 8;
int vel = 9;
Specifica il modo di utilizzo dei vari pin e spegne il motore.
void setup() {
pinMode(A, OUTPUT);
pinMode(B, OUTPUT); //A e B in uscita
pinMode(vel, OUTPUT);
//A e B bassi per tenere il motore spento
digitalWrite(A, LOW);
digitalWrite(B, LOW);
}
Il processo prevede che il motore ruoti a destra, si fermi, ruoti a sinistra e si fermi per un secondo.
void loop() {
DX();
STOP();
SX();
delay(1000);
}
Funzione di arresto del motorre.
void STOP() { //creo la variabile per fermare il motore
digitalWrite(A, LOW);
digitalWrite(B, LOW);
delay(1000);
}
Funzioni per il movimento a sinistra e a destra del motore.
void SX() { //creo la variabile per girare il motore in un senso
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
analogWrite(vel, 255);
delay(1800);
}
void DX() { //creo la variabile per girare il motore nell'altro senso
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
analogWrite(vel, 255);
delay(1800);
}
Conclusioni
[modifica]- gestire la velocità del motore;
- modificare il processo (loop);
- calcolo di delay in funzione della velocità;
- Volendo il dispositivo può essere espanso, aggiungendogli delle parti meccaniche, facendo muovere un carrello avanti e indietro, collegando al motore un ingranaggio e sul carrello una sbarra dentata, il carrello farà avanti e indietro rispetto a da che parte starà girando il motore.