Taula de continguts:

Control de diversos LEDs amb els pins GPIO de Python i del vostre Raspberry Pi: 4 passos (amb imatges)
Control de diversos LEDs amb els pins GPIO de Python i del vostre Raspberry Pi: 4 passos (amb imatges)

Vídeo: Control de diversos LEDs amb els pins GPIO de Python i del vostre Raspberry Pi: 4 passos (amb imatges)

Vídeo: Control de diversos LEDs amb els pins GPIO de Python i del vostre Raspberry Pi: 4 passos (amb imatges)
Vídeo: TINETjornada 2013: "Raspberry Pi, un enginy personal?", amb Climent Aparicio i David Pàmies 2024, Desembre
Anonim
Control de diversos LEDs amb Python i els pins GPIO del vostre Raspberry Pi
Control de diversos LEDs amb Python i els pins GPIO del vostre Raspberry Pi

Aquest instructiu mostra com controlar diversos pins GPIO al vostre RaspberryPi per alimentar 4 LED. També us presentarà paràmetres i sentències condicionals a Python.

La nostra instrucció prèvia d’utilitzar els pins GPIO de Raspberry Pi per controlar un LED demostra com encendre i apagar un únic LED mitjançant l’ordre GPIO.output. Aquest instructable es basa en aquests coneixements per ensenyar-vos a obtenir més control sobre el vostre circuit.

Pas 1: què necessiteu

El que necessitareu
El que necessitareu
El que necessitareu
El que necessitareu

- Un RaspberryPi amb Raspbian ja instal·lat. També haureu de poder accedir al Pi mitjançant un monitor, un ratolí i un teclat o mitjançant un escriptori remot. Podeu utilitzar qualsevol model de Raspberry Pi. Si teniu algun dels models Pi Zero, és possible que vulgueu soldar alguns pins de capçalera al port GPIO.

- LEDs vermells, blaus, grocs i verds

- Un tauler de prototipat sense soldadura

- Resistències de 4 x 330 ohms

- Alguns cables de pont masculí a femení

Pas 2: creeu el vostre circuit

Construeix el teu circuit
Construeix el teu circuit
Construeix el teu circuit
Construeix el teu circuit

Construïu el circuit anterior a la vostra placa de verificació assegurant-vos que cap dels cables de components es toqui i que els LED estiguin connectats correctament.

Com identifiqueu els contactes positius i negatius (la polaritat) dels vostres LED? Si mireu de prop un LED, veureu que té dues petites peces de metall dins de la carcassa de colors. S’anomenen ànode i càtode. El càtode és el més gran dels dos i també està connectat al cable negatiu dels LED.

Un cop comprovat el circuit, connecteu els cables de pont dels pins GPIO de Raspberry Pi seguint el diagrama anterior.

Pas 3: creeu un script per controlar i provar els LED

Creeu un script per controlar i provar els LED
Creeu un script per controlar i provar els LED

Al vostre Raspberry Pi, obriu IDLE (Menú> Programació> Python 2 (IDLE)).

Obriu un projecte nou, aneu a Fitxer> Fitxer nou. A continuació, escriviu (o copieu i enganxeu) el codi següent:

importar RPi. GPIO com a GPIO

temps d'importació 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. sortida (23, fals)

Deseu el vostre projecte com a multilights.py (Fitxer> Desa com a) a la carpeta Documents Raspberry Pis.

Al vostre Raspberry Pi, obriu Terminal (Menú> Accessoris> Terminal) i aneu a la carpeta Documents escrivint el següent:

cd / home / pi / Documents

Ara podeu executar el vostre nou script escrivint el següent:

python multilights.py

Els llums es tornaran a encendre i apagar. L'escriptura anterior utilitza l'ordre time.sleep per crear una pausa entre cada pas, fent que cada llum romangui encès durant 3 segons i esperi 1 segon abans d'encendre el següent llum.

Pas 4: afegir flexibilitat mitjançant paràmetres i sentències condicionals

Mitjançant l’ús de paràmetres i declaracions condicionals, podem fer que l’escriptura anterior sigui molt més flexible.

Un paràmetre us permet emmagatzemar un valor que podeu utilitzar més endavant a l'script. Els tipus de valors més habituals són les cadenes (text), els enters (nombres enters) o els flotants (nombres decimals).

Una declaració condicional determinarà si s’ha d’executar o no un segment de codi comprovant si es compleix una determinada condició. La condició també pot implicar paràmetres.

Obriu IDLE al vostre Raspberry Pi i obriu un projecte nou (Fitxer> Fitxer nou). A continuació, escriviu el següent. Aneu amb compte de garantir que s’incloguin totes les sagnies (pestanyes) mitjançant la tecla de tabulació:

importar RPi. GPIO com a GPIO

temps d'importació de 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 whatled == "a": GPIO.output (LEDa, False) if whatled == "b": GPIO.output (LEDb, False) if whatled == "c": GPIO.output (LEDc, False) ifledled == "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 whatled == "a": GPIO.output (LEDa, True) if whatled == "b": GPIO.output (LEDb, True) ifledled == "c": GPIO.output (LEDc, True) if whatled == "d": GPIO.output (LEDd, True) if whatled == "all": GPIO.output (LEDa, True) GPIO.output (LEDb, True) GPIO.output (LEDc, True) GPIO.output (LEDd, True)

Deseu el projecte com a controlight.py (Fitxer> Desa com a) a la carpeta Documents. Ara obriu Terminal (Menú> Accessoris> Terminal) i escriviu l'ordre següent:

python controllight.py b on

El segon LED s’ha d’encendre. Ara escriviu el següent:

python controlight.py b desactivat

El segon LED s’ha d’apagar.

A les línies 5, 6, 7 i 8, creem els paràmetres LEDa, LEDb, LEDc i LEDd per emmagatzemar quin pin GPIO hem connectat a quin LED. Això ens permet utilitzar pins GPIO alternatius sense haver de fer canvis substancials al guió.

Per exemple, si haguéssim de connectar els primers cables LED al pin 3 (GPIO 2), només hauríem de canviar la línia 5 pel següent:

LEDa = 2

La línia 4 emmagatzema els valors que heu escrit després de controlight.py en els paràmetres que accedien (c) i ledaction (activat). A continuació, l’escriptura fa servir aquests paràmetres, juntament amb una sèrie d’instruccions condicionals per decidir quin LED voleu controlar i si cal activar-lo o apagar-lo.

La línia 16 (si ledaction == "on":) és una sentència condicional. Les línies de sagnat que segueixen aquesta afirmació només s’executaran si es compleix la condició de la declaració. En aquest escenari, la condició és que ledaction contingui el text activat.

En llegir les altres declaracions condicionals de l’escriptura, podeu predir què passarà quan escriviu l’ordre següent a Terminal?

python controllight.py tot activat

Per què no ho proveu i publiqueu la vostra resposta a la secció de comentaris següent.

Recomanat: