ing. Achille De Santis
Pilotaggio di un motore in continua con comando di accelerazione UP/DOWN.
Aprendo il monitor seriale ed impartendo i comandi è possibile vedere l'effetto sulla tensione di uscita.
Per i meno esperti, lo sketch, caricato su una scheda Arduino, permette il pilotaggio di un motore ma, attenzione! L'uscita è da 5 volt/ 40 mA massimi!
Per pilotare motori non microscopici, e che funzionino a tensioni diverse, serve uno stadio amplificatore/separatore, a BJT, IGBT o MOSFET. L'uscita del controllore farà soltanto da stadio pilota per il finale di potenza.
/* -------------------- Inizio programma -----------------------------------------
Motore in continua con comando di accelerazione/decelerazione PWM
Achille De Santis V2.0 del 18-08-2019
*/
// --------- I/O -------------
#define motore 3
#define tastoUP 5
#define tastoDOWN 6
// ---------------------------
bool UP, DOWN;
short unsigned int duty_cycle=0; // motore inizialmente fermo
const int T=100; // ritardo di accelerazione
void setup()
{
pinMode (motore, OUTPUT);
pinMode (tastoUP, INPUT_PULLUP);
pinMode (tastoDOWN, INPUT_PULLUP);
Serial.begin(9600);
}
void loop()
{
UP=digitalRead(tastoUP); // variabile di stato
DOWN=digitalRead(tastoDOWN); // variabile di stato
if(UP==0 && duty_cycle<255) duty_cycle++; // aumenta DC
else if(DOWN==0 && duty_cycle>0) duty_cycle--; // diminuisce DC
analogWrite(motore, duty_cycle); // applica all'uscita motore
delay(T);
Serial.print(duty_cycle); Serial.println();
}
// -------------------- Fine programma -------------------------------------------
Argomenti correlati: Controllo motore in DC con PWM
Argomenti correlati: Controllo motore in DC con PWM
Nessun commento:
Posta un commento