Motore in continua con comando di accelerazione




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

Nessun commento:

Posta un commento