/* ---------------------- Inizio programma -------------------------------------
Pilotaggio motore in DC con ponte H
Subroutine per motore avanti ed indietro.
*/
#define switchPin 2 // switch input
#define motor1Pin 3 // H-bridge leg 1 (pin 2, 1A)
#define motor2Pin 4 // H-bridge leg 2 (pin 7, 2A)
#define enablePin 9 // H-bridge enable pin
#define ledPin 13 // LED
void setup()
{
pinMode(switchPin, INPUT); // set the switch as an input:
// set all the other pins you're using as outputs:
pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);
pinMode(enablePin, OUTPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(enablePin, HIGH); // set enablePin high so that motor can turn on:
}
void MOTORE(int M1, int M2) // predispone il motore generico
{
digitalWrite(M1, LOW); // set leg 1 of the H-bridge low
digitalWrite(M2, HIGH); // set leg 2 of the H-bridge high
}
void avanti() { MOTORE(motor1pin, motor2pin); } // fa girare il motore in avanti
void indietro() { MOTORE(motor2pin, motor1pin); } // fa girare il motore all'indietro
void loop()
{
if (digitalRead(switchPin) == HIGH) // se lo switch è "alto" il motore girerà in una direzione
{ avanti(); }
else // se lo switch è "basso" il motore girerà nell'altra direzione
{ indietro(); }
}
// ----------------------- Fine programma ---------------------------------------------------------------------
Con lo stesso principio informatore è possibile inserire il comando di "fermo" motore.
Lascio al lettore l'onore e l'onere di sviluppare la piccola routine.
Argomenti correlati:
Pilotaggio motoriduttore con accelerazione
Lascio al lettore l'onore e l'onere di sviluppare la piccola routine.
Argomenti correlati:
Pilotaggio motoriduttore con accelerazione
Nessun commento:
Posta un commento