Programové řízení serva 2 Vypracoval: Ing. Jaroslav Chlubný Kód prezentace: OPVK-TBdV-AUTOROB-ME-3-JCP-JCH-006 Technologie budoucnosti do výuky CZ.1.07/1.1.38/02.0032
Arduino – knihovna Servo Attach – připojení proměnné servo k pinu servo.attach(pin) servo.attach(pin, min, max) nepovinné min a max jsou šířky pulzů v mikrosekundách – min odpovídá minimálnímu úhlu (0°) serva (standardně 544); max největšímu úhlu (180°) serva (standardně 2400) write() – přímé zadání úhlu pro natočení hřídele myservo.write(90) writeMicroseconds() – zadání šířky pulzu myservo.writeMicroseconds(1500) read() – vrací hodnotu úhlu serva ve stupních
Otáčení rotoru mezi krajními polohami Arduino UNO R3
Otáčení rotoru mezi krajními polohami #include <Servo.h> //načtení knihovny servo Servo myservo; // vytvoření objektu pro řízení serva int pos = 0; // proměnná pro uložení polohy serva void setup() { myservo.attach(9); } // připojení serva na pin 9 void loop() { for(pos = 0; pos < 180; pos += 1)//cyklus od 0°do 180°s přírůstkem 1 { myservo.write(pos);// otočení serva do polohy uložené v proměnné pos delay(15); // čekání 15 ms na dosažení polohy serva } for(pos = 180; pos>=1; pos-=1) // cyklus od 180°do 0° { myservo.write(pos);// otočení serva do polohy uložené v proměnné pos delay(15); // čekání 15 ms na dosažení polohy serva
Otáčení rotoru mezi krajními polohami Arduino UNO R3
Řízení otáček serva potenciometrem Servo - +5 V zem řídící vstup na D9 Potenciometr - +5 V jezdec na analog. vst. Analogová hodnota z jezdce potenciometru převedena na digitální, která pomocí PWM řídí natáčení serva
Řízení otáček serva potenciometrem
Řízení otáček serva potenciometrem AnalogRead – přečtení analogové hodnoty ze vstupu Arduino obsahuje 10ti bitový A/D převodník vstupní napětí v rozsahu 0–5 V převede na celá čísla v rozsahu 0–1023 (na jednotku tedy připadá 4.9 mV). Čtení analogového vstupu trvá asi 100 mikrosekund – max frekvence čtení je asi 10 000 krát za sekundu. Př. val = analogRead(analogPin); načte hodnotu z analogPin a uloží do proměnné val map – namapuje jeden rozsah do druhého. Př. val = map(val, 0, 1023, 0, 179); změní rozsah 0–1023 na rozsah 0–179. Funguje i se zápornými čísly – např. y = map(x, 1, 50, 50, -100);
Program řízení serva potenciometrem
Řízení otáček serva potenciometrem Arduino UNO R3
Použité zdroje Sweep. In: Arduino [online]. [cit. 2014-05-23]. Dostupné z: http://arduino.cc/en/Tutorial/Sweep Knob. In: Arduino [online]. [cit. 2014-05-23]. Dostupné z: http://arduino.cc/en/Tutorial/Knob