- Modulacja szerokości impulsów:
- Wymagany materiał
- Schemat obwodu
- Kod i wyjaśnienie
- Kontrola prędkości silnika prądu stałego za pomocą Arduino
Silnik prądu stałego jest najczęściej używanym silnikiem w projektach robotyki i elektroniki. Do kontrolowania prędkości silnika prądu stałego mamy różne metody, np. Prędkość może być kontrolowana automatycznie na podstawie temperatury, ale w tym projekcie metoda PWM będzie używana do sterowania prędkością silnika prądu stałego. Tutaj, w tym projekcie Arduino Motor Speed Control, prędkość można kontrolować, obracając pokrętło potencjometru.
Modulacja szerokości impulsów:
Co to jest PWM? PWM to technika, za pomocą której możemy kontrolować napięcie lub moc. Aby to zrozumieć prościej, jeśli używasz 5 V do napędzania silnika, silnik będzie się poruszał z pewną prędkością, teraz, jeśli zmniejszymy przyłożone napięcie o 2, oznacza to, że przyłożymy 3 V do silnika, a prędkość silnika również spadnie. Koncepcja ta została wykorzystana w projekcie do sterowania napięciem za pomocą PWM. W tym artykule szczegółowo wyjaśniliśmy PWM. Sprawdź również ten obwód, w którym PWM jest używany do sterowania jasnością diody LED: 1-watowy ściemniacz LED.
% Cykl pracy = (TON / (TON + TOFF)) * 100 Gdzie, T ON = WYSOKI czas przebiegu prostokątnego T OFF = NISKI czas przebiegu prostokątnego
Teraz, jeśli przełącznik na rysunku jest stale zamknięty przez pewien czas, silnik będzie przez ten czas stale WŁĄCZONY. Jeśli przełącznik jest zamknięty na 8 ms i otwarty na 2 ms w cyklu 10 ms, wówczas silnik będzie WŁĄCZONY tylko przez 8 ms. Teraz średni terminal w okresie 10 ms = czas włączenia / (czas włączenia + czas wyłączenia), nazywa się to cyklem pracy i wynosi 80% (8 / (8 + 2)), więc średnia napięcie wyjściowe będzie wynosić 80% napięcia akumulatora. Teraz ludzkie oko nie widzi, że silnik jest włączony przez 8 ms i wyłączony przez 2 ms, więc będzie wyglądał, jakby silnik prądu stałego obracał się z prędkością 80%.
W drugim przypadku przełącznik jest zamknięty na 5 ms i otwarty na 5 ms przez okres 10 ms, więc średnie napięcie na zaciskach na wyjściu będzie wynosić 50% napięcia akumulatora. Powiedz, czy napięcie akumulatora wynosi 5 V, a cykl pracy wynosi 50%, a więc średnie napięcie na zaciskach wyniesie 2,5 V.
W trzecim przypadku cykl pracy wynosi 20%, a średnie napięcie na zaciskach wynosi 20% napięcia akumulatora.
Użyliśmy PWM z Arduino w wielu naszych projektach:
- Ściemniacz LED oparty na Arduino wykorzystujący PWM
- Wentylator z regulacją temperatury za pomocą Arduino
- Sterowanie silnikiem DC za pomocą Arduino
- Sterowanie prędkością wentylatora AC za pomocą Arduino i TRIAC
Możesz dowiedzieć się więcej o PWM, przechodząc przez różne projekty oparte na PWM.
Wymagany materiał
- Arduino UNO
- Silnik prądu stałego
- Tranzystor 2N2222
- Potencjometr 100 k omów
- Kondensator 0,1 uF
- Płytka prototypowa
- Skaczące przewody
Schemat obwodu
Schemat obwodu sterowania prędkością silnika prądu stałego Arduino za pomocą PWM jest przedstawiony poniżej:
Kod i wyjaśnienie
Pełny kod sterowania silnikiem prądu stałego Arduino za pomocą potencjometru jest podany na końcu.
W poniższym kodzie zainicjowaliśmy zmienne c1 i c2 i przypisaliśmy analogowy pin A0 dla wyjścia potencjometru i 12- ty pin dla „pwm”.
int pwmPin = 12; int pot = A0; int c1 = 0; int c2 = 0;
Teraz, w poniższym kodzie, ustawiając pin A0 jako wejście i 12 (który jest pinem PWM) jako wyjście.
void setup () { pinMode (pwmPin, OUTPUT); // deklaruje pin 12 jako wyjście pinMode (pot, INPUT); // deklaruje pin A0 jako wejście }
Teraz w void loop () odczytujemy wartość analogową (z A0) za pomocą analogRead (pot) i zapisujemy ją do zmiennej c2. Następnie odejmij wartość c2 od 1024 i zapisz wynik w c1. Następnie ustaw 12- ty pin PWM Arduino na WYSOKI, a następnie po opóźnieniu o wartości c1 ustaw ten pin na LOW. Ponownie, po opóźnieniu o wartości c2 pętla jest kontynuowana.
Powodem odejmowania wartości analogowej od 1024 jest to, że przetwornik Arduino Uno ADC ma 10-bitową rozdzielczość (czyli wartości całkowite od 0 do 2 ^ 10 = 1024 wartości). Oznacza to, że odwzoruje napięcia wejściowe od 0 do 5 woltów na wartości całkowite z przedziału od 0 do 1024. Zatem jeśli pomnożymy wartość wejściową anlogValue do (5/1024), otrzymamy cyfrową wartość napięcia wejściowego. Dowiedz się, jak korzystać z wejścia ADC w Arduino.
void loop () { c2 = analogRead (pot); c1 = 1024-c2; digitalWrite (pwmPin, HIGH); // ustawia pin 12 HIGH delayMicroseconds (c1); // czeka na c1 uS (wysoki czas) digitalWrite (pwmPin, LOW); // ustawia pin 12 LOW delayMicroseconds (c2); // czeka na c2 uS (niski czas) }
Kontrola prędkości silnika prądu stałego za pomocą Arduino
W tym obwodzie do sterowania prędkością silnika prądu stałego używamy potencjometru 100 kiloomów do zmiany cyklu pracy sygnału PWM. Potencjometr 100 kΩ jest podłączony do analogowego pinu A0 Arduino UNO, a silnik prądu stałego jest podłączony do 12- tego pinu Arduino (który jest pinem PWM). Działanie programu Arduino jest bardzo proste, gdyż odczytuje napięcie z pinu analogowego A0. Napięcie na pinie analogowym zmienia się za pomocą potencjometru. Po wykonaniu pewnych niezbędnych obliczeń cykl pracy jest dostosowywany zgodnie z nim.
Np. Jeśli podamy 256 wartości na wejście analogowe, to czas WYSOKI będzie wynosił 768ms (1024-256) a czas NISKI będzie wynosił 256ms. Oznacza to po prostu, że cykl pracy wynosi 75%. Nasze oczy nie widzą tak wysokiej częstotliwości oscylacji i wygląda na to, że silnik jest stale włączony z 75% prędkością. W ten sposób możemy wykonać kontrolę prędkości silnika za pomocą Arduino.