Spisu treści:
- Krok 1: Czego będziesz potrzebować
- Krok 2: Zbuduj swój obwód
- Krok 3: Utwórz skrypt do sterowania i testowania diod LED
- Krok 4: Dodawanie elastyczności za pomocą parametrów i instrukcji warunkowych
Wideo: Sterowanie wieloma diodami LED za pomocą Pythona i pinów GPIO Raspberry Pi: 4 kroki (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Ta instrukcja pokazuje, jak kontrolować wiele pinów GPIO w RaspberryPi, aby zasilać 4 diody LED. Wprowadzi Cię również do parametrów i instrukcji warunkowych w Pythonie.
Nasza poprzednia instrukcja użycia pinów GPIO twojego Raspberry Pi do sterowania diodą LED pokazuje, jak włączać i wyłączać pojedynczą diodę LED za pomocą polecenia GPIO.output. Ten Instructable opiera się na tej wiedzy, aby nauczyć Cię, jak uzyskać większą kontrolę nad swoim obwodem.
Krok 1: Czego będziesz potrzebować
- RaspberryPi z zainstalowanym Raspbianem. Będziesz także musiał mieć dostęp do Pi za pomocą monitora, myszy i klawiatury lub za pomocą pulpitu zdalnego. Możesz użyć dowolnego modelu Raspberry Pi. Jeśli masz jeden z modeli Pi Zero, możesz przylutować kilka pinów nagłówka do portu GPIO.
-Czerwone, niebieskie, żółte i zielone diody LED
- Bezlutowa prototypowa płytka do krojenia chleba
- Rezystory 4 x 330 omów
-Niektóre przewody połączeniowe męskie do żeńskich
Krok 2: Zbuduj swój obwód
Zbuduj powyższy obwód na płytce stykowej, upewniając się, że żaden z wyprowadzeń komponentów nie styka się i że diody LED są podłączone we właściwy sposób.
Jak rozpoznać dodatnie i ujemne przewody (polaryzację) na swoich diodach LED? Jeśli przyjrzysz się uważnie LED, zobaczysz, że wewnątrz kolorowej obudowy znajdują się dwa małe kawałki metalu. Są to tak zwane anoda i katoda. Katoda jest największą z nich i jest również połączona z ujemnym przewodem diod LED.
Po sprawdzeniu obwodu podłącz kable połączeniowe pinów GPIO Raspberry Pi, postępując zgodnie z powyższym schematem.
Krok 3: Utwórz skrypt do sterowania i testowania diod LED
Na swoim Raspberry Pi otwórz IDLE (Menu> Programowanie> Python 2 (IDLE)).
Otwórz nowy projekt, przejdź do Plik > Nowy plik. Następnie wpisz (lub skopiuj i wklej) następujący kod:
importuj RPi. GPIO jako GPIO
czas importu GPIO.setmode(GPIO. BCM) GPIO.setup(17, GPIO. OUT) GPIO.setup(18, GPIO. OUT) GPIO.setup(22, GPIO. OUT) GPIO.setup(23, GPIO. OUT) GPIO.output(17, True) time.sleep(3) GPIO.output(17, False) time.sleep(1) GPIO.output(18, True) time.sleep(3) GPIO.output(18, False) time.sleep(1) GPIO.output(22, True) time.sleep(3) GPIO.output(22, False) time.sleep(1) GPIO.output(23, True) time.sleep(3) GPIO. wyjście (23, Fałsz)
Zapisz swój projekt jako multilights.py (Plik > Zapisz jako) w folderze Dokumenty Raspberry Pis.
Na swoim Raspberry Pi otwórz Terminal (Menu> Akcesoria> Terminal) i przejdź do folderu Dokumenty, wpisując:
cd /home/pi/Dokumenty
Możesz teraz uruchomić nowy skrypt, wpisując:
python multilights.py
Światła będą włączać się i wyłączać po kolei. Powyższy skrypt używa polecenia time.sleep do utworzenia pauzy między każdym krokiem, dzięki czemu każde światło pozostaje włączone przez 3 sekundy i czeka przez 1 sekundę przed włączeniem następnego światła.
Krok 4: Dodawanie elastyczności za pomocą parametrów i instrukcji warunkowych
Używając parametrów i instrukcji warunkowych możemy uczynić powyższy skrypt znacznie bardziej elastycznym.
Parametr umożliwia przechowywanie wartości, której można później użyć w skrypcie. Najpopularniejszymi typami wartości są ciągi (tekst), liczby całkowite (liczby całkowite) lub zmiennoprzecinkowe (liczby dziesiętne).
Instrukcja warunkowa określi, czy segment kodu powinien zostać wykonany, czy nie, sprawdzając, czy spełniony jest określony warunek. Warunek może również obejmować parametry.
Otwórz IDLE na swoim Raspberry Pi i otwórz nowy projekt (Plik > Nowy plik). Następnie wpisz następujące polecenie. Uważaj, aby upewnić się, że wszystkie wcięcia (tabulatory) są uwzględnione za pomocą klawisza tabulacji:
importuj RPi. GPIO jako GPIO
import czasu z sys import argv whichled=argv[1] ledaction = argv[2] LEDa=17 LEDb=18 LEDc=22 LEDd=23 GPIO.setmode(GPIO. BCM) GPIO.setup(LEDa, GPIO. OUT) GPIO. setmode(GPIO. BCM) GPIO.setup(LEDb, GPIO. OUT) GPIO.setmode(GPIO. BCM) GPIO.setup(LEDc, GPIO. OUT) GPIO.setmode(GPIO. BCM) GPIO.setup(LEDd, GPIO. OUT) if ledaction=="off": if whichled=="a": GPIO.output(LEDa, False) if whichled=="b": GPIO.output(LEDb, False) if whichled=="c": GPIO.output(LEDc, False) if wholed=="d": GPIO.output(LEDd, False) if whichled=="all": GPIO.output(LEDa, False) GPIO.output(LEDb, False) GPIO. output(LEDc, False) GPIO.output(LEDd, False) if ledaction=="on": if whichled=="a": GPIO.output(LEDa, True) if whichled=="b": GPIO.output(LEDb, True) if whichled=="c": GPIO.output(LEDc, True) if whichled=="d": GPIO.output(LEDd, True) if whichled=="all": GPIO.output(LEDa, True) GPIO.output(LEDb, True) GPIO.output(LEDc, True) GPIO.output(LEDd, True)
Zapisz projekt jako controllight.py (Plik > Zapisz jako) w folderze Dokumenty. Teraz otwórz Terminal (Menu > Akcesoria > Terminal) i wpisz następujące polecenie:
python controllight.py b on
Druga dioda LED powinna się zaświecić. Teraz wpisz:
python controllight.py b wyłączony
Druga dioda LED powinna zgasnąć.
W liniach 5, 6, 7 i 8 tworzymy parametry LEDa, LEDb, LEDc i LEDd do zapamiętania, który pin GPIO podłączyliśmy do której diody. Dzięki temu możemy używać alternatywnych pinów GPIO bez konieczności wprowadzania istotnych zmian w skrypcie.
Na przykład, gdybyśmy zamiast tego podłączyli pierwsze diody LED do Pin 3 (GPIO 2), musielibyśmy zmienić linię 5 na następującą:
LEDa=2
Linia 4 przechowuje wartości, które wpisałeś po controllight.py w parametrach wholed (c) i ledaction (on). Skrypt następnie używa tych parametrów, wraz z szeregiem instrukcji warunkowych, aby zdecydować, którą diodę LED kontrolować i czy ją włączyć lub wyłączyć.
Linia 16 (jeśli ledaction=="on":) jest instrukcją warunkową. Wcięte wiersze następujące po tej instrukcji będą uruchamiane tylko wtedy, gdy warunek instrukcji zostanie spełniony. W tym scenariuszu warunek jest taki, że ledaction zawiera tekst na.
Czy czytając inne instrukcje warunkowe skryptu, możesz przewidzieć, co się stanie, gdy wpiszesz następujące polecenie w Terminalu?
Python controllight.py wszystko włączone
Może spróbujesz i opublikujesz swoją odpowiedź w sekcji komentarzy poniżej.
Zalecana:
Sterowanie diodami LED w oparciu o Asystenta Google za pomocą Raspberry Pi: 3 kroki
Sterowanie diodami LED w oparciu o Google Assistant za pomocą Raspberry Pi: Hej! W tym projekcie zaimplementujemy sterowanie diodą LED w oparciu o Google Assistant za pomocą Raspberry Pi 4 za pomocą HTTP w Pythonie. Diodę możesz zastąpić żarówką (oczywiście nie dosłownie, będziesz potrzebować modułu przekaźnikowego pomiędzy) lub dowolnym innym domem
Miganie LED z Raspberry Pi - Jak korzystać z pinów GPIO na Raspberry Pi: 4 kroki
Miganie LED z Raspberry Pi | Jak korzystać z pinów GPIO na Raspberry Pi: Cześć, w tej instrukcji dowiemy się, jak korzystać z GPIO Raspberry pi. Jeśli kiedykolwiek używałeś Arduino, to prawdopodobnie wiesz, że możemy podłączyć przełącznik LED itp. do jego pinów i sprawić, by działał tak. spraw, aby dioda LED mrugała lub uzyskaj dane wejściowe z przełącznika, aby
Sterowanie jasnością Sterowanie diodami LED w oparciu o PWM za pomocą przycisków, Raspberry Pi i Scratch: 8 kroków (ze zdjęciami)
Kontrola jasności Sterowanie diodami LED w oparciu o PWM za pomocą przycisków, Raspberry Pi i Scratch: Próbowałem znaleźć sposób, aby wyjaśnić moim uczniom, jak działa PWM, więc wyznaczyłem sobie zadanie kontrolowania jasności diody LED za pomocą 2 przycisków - jeden przycisk zwiększający jasność diody LED a drugi ją przyciemniający. Aby zaprogramować
Jak sterować wieloma diodami LED z kilku pinów mikrokontrolera.: 6 kroków (ze zdjęciami)
Jak sterować wieloma diodami LED z kilku pinów mikrokontrolera.: Korzystając z faktu, że wiele pinów mikrokontrolera ma trzy stany (+V, GND lub „wysoka impedancja”, możesz sterować diodami N * (N-1) z N pinów Tak więc mały 8-pinowy mikrokontroler, taki jak PIC12Fxxx lub ATtiny11, może sterować 20 diodami LED na pięciu dostępnych
Gniazdo ISP od 6 pinów do 8 pinów: 4 kroki
Gniazdo ISP od 6 do 8 pinów: Głównym powodem, dla którego zbudowałem ten projekt, było zaprogramowanie ATTiny45, który ma 8-pinowe połączenie, podczas gdy mój USBtinyISP (od Ladyada) ma tylko 10-pinowe i 6-pinowe połączenie. Po szperaniu w Internecie przez około 3-4 tygodnie nie znalazłem nic, co