Raspberry Pi to płyta oparta na architekturze ARM przeznaczona dla elektroników i hobbystów. PI jest obecnie jedną z najbardziej zaufanych platform do tworzenia projektów. Dzięki większej szybkości procesora i 1 GB pamięci RAM PI może być używany w wielu ważnych projektach, takich jak przetwarzanie obrazu i Internet rzeczy.
Aby wykonać którykolwiek z ważnych projektów, należy zrozumieć podstawowe funkcje PI. W tych samouczkach omówimy wszystkie podstawowe funkcje Raspberry Pi. W każdym samouczku omówimy jedną z funkcji PI. Pod koniec serii samouczków będziesz mógł samodzielnie wykonywać prestiżowe projekty. Sprawdź je, aby zapoznać się z konfiguracją Raspberry Pi i Raspberry Pi.
Omówiliśmy migotanie diod LED, interfejs przycisków i generowanie PWM w poprzednich samouczkach. W tym samouczku będziemy kontrolować prędkość silnika prądu stałego przy użyciu techniki Raspberry Pi i PWM. PWM (modulacja szerokości impulsu) to metoda używana do uzyskiwania zmiennego napięcia ze stałego źródła zasilania. Omówiliśmy PWM w poprzednim samouczku.
W Raspberry Pi 2 jest 40 pinów wyjściowych GPIO. Ale z 40 można zaprogramować tylko 26 pinów GPIO (GPIO2 do GPIO27). Niektóre z tych pinów pełnią specjalne funkcje. Po odłożeniu specjalnego GPIO pozostało 17 GPIO. Aby dowiedzieć się więcej o pinach GPIO, przejdź przez: Miga dioda LED z Raspberry Pi
Każdy z tych 17 pinów GPIO może dostarczyć maksymalnie 15 mA. A suma prądów ze wszystkich Pinów GPIO nie może przekraczać 50mA. Możemy więc pobrać średnio maksymalnie 3 mA z każdego z tych pinów GPIO. Dlatego nie należy majstrować przy tych rzeczach, chyba że wiesz, co robisz.
Na płycie znajdują się piny wyjściowe zasilania + 5 V (styki 2 i 4) i + 3,3 V (styki 1 i 17) do podłączenia innych modułów i czujników. Ta szyna zasilająca jest podłączona równolegle do zasilania procesora. Więc pobieranie wysokiego prądu z tej szyny zasilającej wpływa na procesor. Na karcie PI znajduje się bezpiecznik, który zadziała po przyłożeniu dużego obciążenia. Możesz bezpiecznie pobierać 100 mA z szyny + 3,3 V. Mówimy o tym tutaj, ponieważ; podłączamy silnik prądu stałego do + 3,3V. Mając na uwadze ograniczenie mocy, możemy tutaj podłączyć tylko silnik małej mocy, jeśli chcesz napędzać silnik dużej mocy, rozważ zasilanie go z oddzielnego źródła zasilania.
Wymagane składniki:
Tutaj używamy Raspberry Pi 2 Model B z Raspbian Jessie OS. Wszystkie podstawowe wymagania sprzętowe i programowe zostały wcześniej omówione, możesz je sprawdzić we wprowadzeniu do Raspberry Pi, poza tym, czego potrzebujemy:
- Kołki łączące
- Rezystor 220Ω lub 1KΩ (3)
- Mały silnik prądu stałego
- Guziki (2)
- Tranzystor 2N2222
- Dioda 1N4007
- Kondensator - 1000uF
- Deska do chleba
Objaśnienie obwodu:
Jak wspomniano wcześniej, nie możemy pobierać więcej niż 15 mA z jakichkolwiek pinów GPIO, a silnik prądu stałego pobiera więcej niż 15 mA, więc PWM generowane przez Raspberry Pi nie może być podawane bezpośrednio do silnika prądu stałego. Jeśli więc podłączymy silnik bezpośrednio do PI w celu sterowania prędkością, płyta może zostać trwale uszkodzona.
Więc zamierzamy użyć tranzystora NPN (2N2222) jako urządzenia przełączającego. Ten tranzystor napędza silnik prądu stałego dużej mocy, pobierając sygnał PWM z PI. W tym miejscu należy zwrócić uwagę, że błędne podłączenie tranzystora może mocno obciążyć płytkę.
Silnik jest indukcyjny, więc podczas przełączania silnika doświadczamy impulsów indukcyjnych. To gwałtowne nagrzanie mocno rozgrzeje tranzystor, więc będziemy używać diody (1N4007), aby zapewnić ochronę tranzystora przed impulsami indukcyjnymi.
Aby zmniejszyć wahania napięcia, podłączymy kondensator 1000 uF do zasilacza, jak pokazano na schemacie obwodu.
Objaśnienie robocze:
Po podłączeniu wszystkiego zgodnie ze schematem obwodu, możemy włączyć PI, aby napisać program w PYHTON.
Porozmawiamy o kilku poleceniach, których będziemy używać w programie PYHTON.
Zamierzamy zaimportować plik GPIO z biblioteki, poniższa funkcja umożliwia zaprogramowanie pinów GPIO PI. Zmieniamy również nazwę „GPIO” na „IO”, więc w programie zawsze, gdy będziemy chcieli odwołać się do pinów GPIO, użyjemy słowa „IO”.
importuj RPi.GPIO jako IO
Czasami, gdy piny GPIO, których próbujemy użyć, mogą wykonywać inne funkcje. W takim przypadku podczas wykonywania programu będziemy otrzymywać ostrzeżenia. Poniższe polecenie mówi PI, aby zignorował ostrzeżenia i kontynuował program.
IO.setwarnings (fałszywe)
Możemy odnosić się do pinów GPIO PI, albo przez numer pinu na płycie, albo przez numer ich funkcji. Podobnie jak „PIN 35” na płycie to „GPIO19”. Więc tutaj mówimy, że albo będziemy reprezentować pinezkę jako „35” lub „19”.
IO.setmode (IO.BCM)
Ustawiamy GPIO19 (lub PIN35) jako pin wyjściowy. Otrzymamy wyjście PWM z tego pinu.
IO.setup (19, IO.IN)
Po ustawieniu pinu jako wyjścia musimy ustawić pin jako pin wyjściowy PWM, p = IO.PWM (kanał wyjściowy, częstotliwość sygnału PWM)
Powyższe polecenie służy do ustawiania kanału, a także ustawiania częstotliwości sygnału PWM. „p” jest tutaj zmienną, może to być wszystko. Używamy GPIO19 jako kanału wyjściowego PWM. „ częstotliwość sygnału PWM ” została wybrana jako 100, ponieważ nie chcemy, aby dioda LED migała.
Poniższe polecenie służy do rozpoczęcia generowania sygnału PWM, `` DUTYCYCLE '' służy do ustawienia współczynnika włączenia, 0 oznacza, że dioda LED będzie włączona przez 0% czasu, 30 oznacza, że dioda LED będzie włączona przez 30% czasu, a 100 oznacza całkowicie włączone.
p.start (DUTYCYCLE)
Jeśli warunek w nawiasach klamrowych jest prawdziwy, instrukcje wewnątrz pętli zostaną wykonane raz. Jeśli więc pin 26 GPIO spadnie w stan niski, instrukcje wewnątrz pętli IF zostaną wykonane raz. Jeśli pin 26 GPIO nie przejdzie w stan niski, instrukcje wewnątrz pętli IF nie zostaną wykonane.
if (IO.input (26) == False):
Podczas gdy 1: jest używany do pętli nieskończoności. Za pomocą tego polecenia instrukcje wewnątrz tej pętli będą wykonywane w sposób ciągły.
Mamy wszystkie polecenia potrzebne do uzyskania kontroli prędkości dzięki temu.
Po napisaniu programu i wykonaniu go pozostaje tylko obsługa sterowania. Mamy dwa przyciski podłączone do PI; jeden do zwiększania cyklu pracy sygnału PWM, a drugi do zmniejszania cyklu pracy sygnału PWM. Naciśnięcie jednego przycisku zwiększa prędkość silnika prądu stałego, a naciśnięcie drugiego przycisku zmniejsza prędkość silnika prądu stałego. Dzięki temu osiągnęliśmy kontrolę prędkości silnika prądu stałego przez Raspberry Pi.
Sprawdź również:
- Sterowanie prędkością silnika prądu stałego
- Sterowanie silnikiem DC za pomocą Arduino