Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
Arduino kehitysalustaa voi melko helposti käyttää apuna ohjattaessa harjatonta [DC-moottoria|https://wiki.metropolia.fi/display/koneautomaatio/Tasavirtamoottorit] (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|Pulssinleveysmodulaatio] (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|PotentiametriPotentiometri], 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|http://www.arduino.cc/en/Tutorial/knob] ohjeena potentiometrin käytöstä servomoottorin ohjaamisessa. Tässä esimerkissä [servomoottori|https://wiki.metropolia.fi/display/koneautomaatio/Servomoottori] on korvattu edellä mainitulla moottorilla sekä nopeudensäätimellä.

Käytetty koodi:

\#include <Servo.h>&nbsp;

Servo myservo; &nbsp;// create servo object to control a servo&nbsp;

int potpin = 0; &nbsp;// analog pin used to connect the potentiometer

int val; &nbsp; &nbsp;// variable to read the value from the analog pin&nbsp;

void setup()

{&nbsp;

myservo.attach(13)&nbsp;&nbsp;// attaches the servo on pin 13 to the servo object&nbsp;
}&nbsp;

void loop()&nbsp;

{&nbsp;

&nbsp;&nbsp;val = analogRead(potpin); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// reads the value of the potentiometer (value between 0 and 1023)&nbsp;

&nbsp;&nbsp;val = map(val, 0, 1023, 0, 89); &nbsp; &nbsp; // scale it to use it with the servo (value between 0 and 90)&nbsp;

&nbsp;&nbsp;myservo.write(val); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// sets the servo position according to the scaled value&nbsp;

&nbsp;&nbsp;delay(15); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // waits for the servo to get there&nbsp;

Kysenen koodi määrittää servomoottorin asennon potentiometrin asennon perusteella. Koska servomoottorin&nbsp;sijaan käytettiin BLDC-moottoria, määrittää potentiometrin asento tässä tapauksessa moottorin&nbsp;pyörimisnopeuden. Käynnistettäessä laiteistoa on potentiometrin oltava ääriasennossa, riippuen siitä miten päin&nbsp;potenitiometrin &nbsp;\+ ja - navat on kytketty, jotta nopeudensäätimen esiasennettu ohjelmisto lähtisi käyntiin.&nbsp;Nopeudensäädin ilmoittaa toiminnan käynnistymisestä äänimerkillä. Tämän jälkeen moottorin nopeutta&nbsp;pystyy säätämään muuttamalla potentiometrin asentoa.

Suuntaa-antava kuva kytkennöistä:

!kytkennät1.JPG|border=1!