Servo Motor a Arduino Nano

Servomotory sú špeciálne elektromotory, ktoré umožňujú ovládať uhlovú polohu hriadeľa motora, ako aj rýchlosť otáčania a zrýchlenie. Pozostávajú z elektromotora, ktorý je vybavený aj snímačom pre polohovanie. Rotačná poloha hriadeľa motora určená snímačom sa nepretržite prenáša do riadiacej elektroniky, zvyčajne umiestnenej mimo samotného motora, takzvaného servo regulátora. Servo obsahuje malý jednosmerný motor pripojený k výstupnému hriadeľu cez prevody. Je schopný otáčať svojim hriadeľom typicky o 0° – 180°

Servomotory majú tri Piny :
- VCC
zvyčajne červený musí byť pripojený k
- GND
zvyčajne čierny alebo hnedý pripojený k -5V (
)
- Signál
zvyčajne žltý alebo oranžový prijíma riadiaci signál
z kolíka Arduina

Niektoré z Arduino Nano kolíkov sú naprogramované tak, aby vedeli produkovať signál. Môžeme pripojiť servo kolíkom, ktorí označujeme ako signál k niektorému z týchto pinov Arduina Nano. D10, D9, D6, D5, alebo D3.
Tu pozrite rozloženie pinov pre Arduino Nano

Zapojenie ktoré vám bude fungovať len ak váš projekt vyžaduje zapojenie microserva. napríklad takéto niečo : micro servo GH-S37A

potom :
kolík v kontakte s D9
v kontakte
v kontakte
Ak, ale váš projekt vyžaduje ovládanie výkonejšieho serva potom je nutné servo motor napájať externé. To znamená na bezpečne ovládanie serva budeme potrebovať :
- Servo motor
- Arduino Nano
- Kondenzátor 100 µF / 25V
- Zdroj napätia pre servo motor
Kondenzátory sa odporúčajú pretože pomáhajú stabilizovať napájanie, minimalizujú poklesy napätia a znižujú elektrický šum. Pri použití menších Servo Motorov je odporúčané použiť 100 µF kondenzátor. (pozor na znamienka + a -) a dávajte pozor, aby ste neprekročili limity napätia kondenzátora.

Napájanie Arduina je možné zabezpečiť napríklad a cez USB, Powerbankov.

Teraz ako to naprogramovať :
#include <Servo.h>
#define SERVO_PIN 9 // Arduino Nano pin D9 pripojený k signálnemu kolíku servomotora
Servo servo; // vytvoriť servo objekt na ovládanie serva
int pos = 0; //toto je premenná na uloženie polohy serva
void setup() {
servo.attach(SERVO_PIN); // pripája servo na kolík 9 k objektu serva
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // otočiť od 0 stupňov do 180 stupňov
//v krokoch po 1 stupni
servo.write(pos); //povedať servu, aby prešlo na pozíciu v premennej 'pos'
delay(20); //čakáť 20 ms, kým servo dosiahne polohu
}
for (pos = 180; pos >= 0; pos -= 1) { // otočiť od 180 stupňov do 0 stupňov
servo.write(pos); // povedať servu, aby prešlo na pozíciu v premennej 'pos'
delay(20); // čakáť 20 ms, kým servo dosiahne polohu
}
}
Ďalej môžete skúsiť kódom experimentovať skúste napríklad meniť hodnotu (delay).
Ako funguje Servo motor

článok:
Pridaj komentár