Spisu treści:

Sterowanie wieloma diodami LED za pomocą Pythona i pinów GPIO Raspberry Pi: 4 kroki (ze zdjęciami)
Sterowanie wieloma diodami LED za pomocą Pythona i pinów GPIO Raspberry Pi: 4 kroki (ze zdjęciami)

Wideo: Sterowanie wieloma diodami LED za pomocą Pythona i pinów GPIO Raspberry Pi: 4 kroki (ze zdjęciami)

Wideo: Sterowanie wieloma diodami LED za pomocą Pythona i pinów GPIO Raspberry Pi: 4 kroki (ze zdjęciami)
Wideo: Start z Raspberry Pi Wiring Pi sterowanie pinami za pomocą polecenia gpio 2024, Listopad
Anonim
Sterowanie wieloma diodami LED za pomocą Pythona i pinów GPIO Raspberry Pi
Sterowanie wieloma diodami LED za pomocą Pythona i pinów GPIO Raspberry Pi

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ć

Czego będziesz potrzebować
Czego będziesz potrzebować
Czego będziesz potrzebować
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 swój obwód
Zbuduj swój obwód
Zbuduj swój obwód
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

Utwórz skrypt do kontroli i testowania diod LED
Utwórz skrypt do kontroli 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: