Harjattoman DC-moottorin ohjaaminen Arduino mikrokontrollerin ja potentiometrin avulla.
Arduino mikrokontrolleria voi melko helposti käyttää apuna ohjattaessa harjatonta
Dc-moottoria (BLDC). Tässä yksinkertaisessa esimerkissä ohjauslaitteena on käytetty Arduino Megaa, joka
on ohjelmoitu lähettämään moottorin nopeudensäätimelle oikeanlaista jännitettä käyttäen apuna
pulssinleveysmodulaatiota (PWM).
Moottori ja nopudensäädin ovat Kyoshon pienoismallikäyttöön valmistamia Team Orion Vortex Experience 2
sarjan tuotteita (moottori: ORI28175 ja nopeudensäädin: ORI65011). Moottorin nopeuden ohjaamiseen
käytettiin 470R potentiometria, joka kiinnitettiin Arduinoon. Erillisenä virtalähteenä moottorille
käytettiin 7,2V akkua, joka kytkettiin nopeudensäätimeen.
Ohjelmassa käytetty koodi löytyy Arduinon omilta sivuilta ohjeena potentiometrin käytöstä
servomoottorin ohjaamisessa. Tässä esimerkissä servomoottori on korvattu edellä mainitulla moottorilla
sekä nopeudensäätimellä.
Käytetty koodi:
Code
// Controlling a servo position using a potentiometer (variable resistor)
// by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>
\#include <Servo.h>
Servo myservo; // create servo object to control a servo
int potpin = 0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop()
{
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 89); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
Kysenen koodi määrittää servomoottorin asennon potentiometrin asennon perusteella. Koska servomoottorin
sijaan käytettiin BLDC-moottoria, määrittää potentiometrin asento tässä tapauksessa moottorin
pyörimisnopeuden. Käynnistettäessä laiteistoa on potentiometrin oltava ääriasennossa, riippuen siitä miten päin
potenitiometrin \+ ja - navat on kytketty, jotta nopeudensäätimen esiasennettu ohjelmisto lähtisi käyntiin.
Nopeudensäädin ilmoittaa toiminnan käynnistymisestä äänimerkillä. Tämän jälkeen moottorin nopeutta
pystyy säätämään muuttamalla potentiometrin asentoa.
Suuntaa-antava kuva kytk
*Harjattoman DC-moottorin ohjaaminen Arduino mikrokontrollerin ja potentiometrin avulla.*
Arduino mikrokontrolleria voi melko helposti käyttää apuna ohjattaessa harjatonta Dc-moottoria (BLDC-motor). Tässä yksinkertaisessa esimerkissä ohjauslaitteena on käytetty Arduino Megaa, joka on ohjelmoitu lähettämään moottorin nopeudensäätimelle oikeanlaista jännitettä käyttäen apuna pulssinleveysmodulaatiota (PWM).
Moottori ja nopudensäädin ovat Kyoshon pienoismallikäyttöön valmistamia Team Orion Vortex Experience 2 sarjan tuotteita (moottori: ORI28175 ja nopeudensäädin: ORI65011). Moottorin nopeuden ohjaamiseen käytettiin 470R potentiometria, joka kiinnitettiin Arduinoon. Erillisenä virtalähteenä moottorillekäytettiin 7,2V akkua, joka kytkettiin nopeudensäätimeen.
Ohjelmassa käytetty koodi löytyy Arduinon omilta [sivuilta|http://www.arduino.cc/en/Tutorial/knob] ohjeena potentiometrin käytöstä servomoottorin ohjaamisessa. Tässä esimerkissä servomoottori on korvattu edellä mainitulla moottorilla sekä nopeudensäätimellä.
Käytetty koodi:
Code
// Controlling a servo position using a potentiometer (variable resistor)
// by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>
\#include <Servo.h>
Servo myservo; // create servo object to control a servo
int potpin = 0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop()
{
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 89); // scale it to use it with the servo (value between 0 and 18090)
myservo.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
Kysenen koodi määrittää servomoottorin asennon potentiometrin asennon perusteella. Koska servomoottorin sijaan käytettiin BLDC-moottoria, määrittää potentiometrin asento tässä tapauksessa moottorin pyörimisnopeuden. Käynnistettäessä laiteistoa on potentiometrin oltava ääriasennossa, riippuen siitä miten päin potenitiometrin \+ ja - navat on kytketty, jotta nopeudensäätimen esiasennettu ohjelmisto lähtisi käyntiin. Nopeudensäädin ilmoittaa toiminnan käynnistymisestä äänimerkillä. Tämän jälkeen moottorin nopeutta pystyy säätämään muuttamalla potentiometrin asentoa.
Suuntaa-antava kuva kytkennöistä:
!kytkennät1.JPG|border=1!
|