Controlarea unui motor DC folosind Arduino
Azi am meșterit un circuit de control al turației unui motor DC. Cred ca e cel mai simplu circuit bazat pe un tranzistor, o dioda și o rezistenta, toate conectate ca în schema de mai jos. In plus am mai folosit un buton pentru a incrementa viteza de rotație cu 10 unități. In momentul în care butonul nu este apăsat atunci viteza de rotație a motorului va scădea cu 5 unități.
Schema electronica de control:
Montajul folosind placa Arduino
Montajul folosind placa DIY bazata pe Arduino
Progrămelul de control :
/*
Adafruit Arduino - Lesson 13. DC Motor
*/
// Pin 8 has an LED connected on most Arduino boards.
// give it a name:
int led1 = 8;
const int buttonPin = 2; // the number of the pushbutton pin
int motorPin = 3;
int speed = 100;
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup()
{
pinMode(motorPin, OUTPUT);
// initialize the digital pin as an output.
pinMode(led1, OUTPUT);
//randomSeed(analogRead(0));
analogWrite(motorPin, speed);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
// initialize serial communications at 9600 bps:
Serial.begin(9600);
}
void loop()
{
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// increase DC motor speed:
speed += 10;
}
else {
// reduce DC motor speed:
speed -= 5;
}
// print the results to the serial monitor:
Serial.print("Speed = " );
Serial.println(speed);
if (speed >= 0 && speed <= 255)
{
analogWrite(motorPin, speed);
}
SetToHigh(led1); //turn the LED on (HIGH is the voltage level)
SetToLow(led1); //turn the LED off by making the voltage LOW
}
void SetToHigh(int led)
{
digitalWrite(led, HIGH); // turn the LED off by making the voltage LOW
delay(500); // wait for a second
}
void SetToLow(int led)
{
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(500); // wait for a second
}
Documentație
Tutorial inspirat de pe learn.adafruit.com/adafruit-arduino-lesson-13-dc-motors/.
Week-end plăcut tuturor!