Indice
Descrizione
In questo episodio del tutorial di Arduino, impareremo a pilotare un motore DC collegato alla scheda di Arduino attraverso un transistor. Costruiremo il circuito che oltre il motore a corrente continua e un transistor NPN, comprende anche un pulsante di accensione/spegnimento e un potenziometro per regolare la velocità. Vedremo inoltre come proteggere il transistor e altri componenti dalle controtensioni che vengono generate dal motore DC.
Infine impareremo a scrivere lo sketch per gestire il motore.
#define MOTOR_PIN 3
#define BUTTON_PIN 4
#define POTENTIOMETER_PIN A0
#define BOOT_TIME 400
bool enabled = false;
int lastEnableValue = LOW;
unsigned long startTime = 0;
void setup(){
pinMode(MOTOR_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT);
}
void loop(){
int enableValue = digitalRead(BUTTON_PIN);
if(enableValue != lastEnableValue && enableValue == HIGH){
if(!enabled){
startTime = millis();
}
enabled = !enabled;
}
lastEnableValue = enableValue;
if(enabled){
if((millis()-startTime) > BOOT_TIME){
int motorSpeed = map(analogRead(POTENTIOMETER_PIN), 0, 1023, 70, 255);
analogWrite(MOTOR_PIN, motorSpeed);
}else{
analogWrite(MOTOR_PIN, 255);
}
}else{
analogWrite(MOTOR_PIN, 0);
}
delay(50);
}