- Modulace šířky pulzu:
- Potřebný materiál
- Kruhový diagram
- Kód a vysvětlení
- Řízení otáček stejnosměrného motoru pomocí Arduina
Stejnosměrný motor je nejpoužívanější motor v projektech robotiky a elektroniky. Pro řízení otáček stejnosměrného motoru máme různé metody, jako jsou otáčky, které lze automaticky ovládat na základě teploty, ale v tomto projektu bude pro řízení otáček stejnosměrného motoru použita metoda PWM. Zde v tomto projektu řízení otáček motoru Arduino lze otáčky regulovat otáčením knoflíku potenciometru.
Modulace šířky pulzu:
Co je PWM? PWM je technika, při které můžeme ovládat napětí nebo výkon. Abychom to lépe pochopili, pokud používáte 5 voltů pro pohon motoru, pak se motor bude pohybovat určitou rychlostí, nyní, když snížíme aplikované napětí o 2, použijeme 3 volty na motor, pak se také sníží rychlost motoru. Tento koncept se v projektu používá k řízení napětí pomocí PWM. V tomto článku jsme podrobně vysvětlili PWM. Zkontrolujte také tento obvod, kde se PWM používá k řízení jasu LED: 1 W LED stmívač.
% Pracovní cyklus = (TON / (TON + TOFF)) * 100 Kde, T ON = VYSOKÁ doba obdélníkové vlny T OFF = NÍZKÁ doba obdélníkové vlny
Pokud je nyní spínač na obrázku trvale sepnut po určitou dobu, motor se během této doby nepřetržitě zapne. Pokud je spínač sepnut na 8ms a rozepnut na 2ms po dobu 10ms, pak bude motor ZAPNUT pouze po dobu 8ms. Nyní je průměrná svorka po dobu 10 ms = doba zapnutí / doba zapnutí + doba vypnutí, toto se nazývá pracovní cyklus a je 80% (8 / (8 + 2)), takže průměr výstupní napětí bude 80% napětí baterie. Lidské oko nyní nevidí, že motor je zapnutý po dobu 8 ms a vypnutý po dobu 2 ms, takže bude vypadat, že stejnosměrný motor se otáčí s 80% rychlostí.
V druhém případě je spínač sepnut na 5ms a rozepnut na 5ms po dobu 10ms, takže průměrné svorkové napětí na výstupu bude 50% napětí baterie. Řekněme, že pokud je napětí baterie 5 V a pracovní cyklus 50%, takže průměrné napětí na svorce bude 2,5 V.
Ve třetím případě je pracovní cyklus 20% a průměrné svorkové napětí je 20% napětí baterie.
Použili jsme PWM s Arduino v mnoha našich projektech:
- Arduino LED stmívač pomocí PWM
- Teplotně řízený ventilátor pomocí Arduina
- Řízení stejnosměrného motoru pomocí Arduina
- AC Speed Fan Control pomocí Arduino a TRIAC
Můžete se dozvědět více o PWM procházením různých projektů založených na PWM.
Potřebný materiál
- Arduino UNO
- Stejnosměrný motor
- Tranzistor 2N2222
- Potenciometr 100k ohm
- Kondenzátor 0,1 uF
- Nepájivá deska
- Skákací dráty
Kruhový diagram
Schéma zapojení pro řízení otáček stejnosměrného motoru Arduino pomocí PWM je správné níže:
Kód a vysvětlení
Celý kód pro řízení stejnosměrného motoru Arduino pomocí potenciometru je uveden na konci.
V níže kódu jsme inicializaci proměnné C1 a C2 a přiřazený analogový pin A0 pro výstup potenciometru a 12 th Pin pro ‚PWM‘.
int pwmPin = 12; int pot = A0; int cl = 0; int c2 = 0;
Nyní v níže uvedeném kódu nastavíme pin A0 jako vstup a 12 (což je PWM pin) jako výstup.
void setup () { pinMode (pwmPin, OUTPUT); // deklaruje pin 12 jako výstupní pinMode (pot, INPUT); // deklaruje pin A0 jako vstup }
Nyní ve void loop () čteme analogovou hodnotu (z A0) pomocí analogRead (pot) a ukládáme ji do proměnné c2. Poté odečtěte hodnotu c2 od 1024 a výsledek uložte do c1. Pak si PWM pin 12 th z Arduino vysoko a pak se zpožděním hodnoty c1 aby to pin nízká. Opět po zpoždění hodnoty c2 smyčka pokračuje.
Důvodem pro odečtení analogové hodnoty od 1024 je, že Arduino Uno ADC má 10bitové rozlišení (tedy celočíselné hodnoty od 0 - 2 ^ 10 = 1024 hodnot). To znamená, že bude mapovat vstupní napětí mezi 0 a 5 volty na celočíselné hodnoty mezi 0 a 1024. Pokud tedy vynásobíme vstupní anlogValue na (5/1024), získáme digitální hodnotu vstupního napětí. Naučte se zde, jak používat vstup ADC v Arduinu.
void loop () { c2 = analogRead (pot); cl = 1024-c2; digitalWrite (pwmPin, HIGH); // nastaví pin 12 HIGH delayMicroseconds (c1); // čeká na c1 uS (nejvyšší čas) digitalWrite (pwmPin, LOW); // nastaví pin 12 LOW delayMicroseconds (c2); // čeká na c2 uS (nízká doba) }
Řízení otáček stejnosměrného motoru pomocí Arduina
V tomto obvodu pro ovládání rychlosti stejnosměrného motoru používáme potenciometr 100 K ohmů ke změně pracovního cyklu signálu PWM. Potenciometr 100K ohm je spojen s analogovým vstupem pin A0 Arduino UNO a stejnosměrného motoru je připojen k 12 th kolík Arduino (což je PWM pin). Práce s programem Arduino je velmi jednoduchá, protože čte napětí z analogového pinu A0. Napětí na analogovém kolíku se mění pomocí potenciometru. Po provedení nezbytného výpočtu se podle toho upraví pracovní cyklus.
Například pokud na analogový vstup přivedeme 256 hodnot, pak VYSOKÝ čas bude 768 ms (1024-256) a NÍZKÝ čas bude 256 ms. Proto to jednoduše znamená, že pracovní cyklus je 75%. Naše oči nevidí takovou vysokofrekvenční oscilaci a vypadá to, že motor je trvale ZAPNUTÝ se 75% rychlostí. Takto můžeme pomocí Arduina provádět řízení otáček motoru.