Ndizni një LED me GPIO të Mjedisit Pi

Më parë këtë vit ju patët një vizitë në GPIO të Mjedisit Pi dhe gjithashtu rekomanduat disa borde me të vërtetë të dobishme për identifikimin e numrave pin. Sot vazhdojmë këtë temë dhe fillojmë të përdorim këto kunja të kombinuara me kodin dhe harduerin.

GPIO është mënyra se si Llambë Pi bisedon me botën e jashtme - "gjëra të vërteta" - duke përdorur kodin për të programuar sinjalet dhe tensionet drejt dhe nga header me 40-pin.

Kodimi me GPIO është mjaft i thjeshtë për të filluar, sidomos për projektet fillestare siç janë LEDs dhe buzzers. Me vetëm disa komponentë dhe disa rreshta të kodit ju mund të ndizni ose të blini një LED si pjesë e projektit tuaj.

Ky artikull do t'ju tregojë se çfarë keni nevojë për të ndezur një LED duke përdorur kodin Python në Raspberry Pi tuaj, duke përdorur metodën tradicionale 'RPi.GPIO'.

01 nga 04

Çfarë keni nevojë

Vetëm disa pjesë të thjeshta dhe të lira janë të nevojshme për këtë projekt. Richard Saville

Këtu është një listë e gjithçkaje që ju nevojitet për këtë projekt të vogël fillestar. Ju duhet të jeni në gjendje të gjeni këto objekte në dyqanin tuaj të preferuar të krijuesit ose në faqet e ankandeve online.

02 nga 04

Krijo Qarkun - Hapi 1

Lidhni secilën nyjë me pllakën me kabllo çelësash. Richard Saville

Ne do të përdorim 2 këmbë GPIO për këtë projekt, një kunj tokësor (pin fizik 39) për këmbën e terrenit të LED-it dhe një GPIO GPIO (GPIO 21, nyja fizike 40) për të fuqizuar LED-in - por vetëm kur ne vendosim të - cili është vendi ku futet kodi.

Së pari, fikni Pi tuaj të mjedrës. Tani, duke përdorur telat e lidhësit, lidhni pinin e terrenit në një korsi në boshllëkun tuaj. Tjetra bëj të njëjtën gjë për pinin GPIO, që lidhet me një korsi të ndryshme.

03 nga 04

Krijo Qarkun - Hapi 2

LED dhe rezistenca kompletojnë qarkun. Richard Saville

Tjetra ne shtoni LED dhe rezistencë në qark.

LED-et kanë polaritet - që do të thotë se ato duhet të lidhen në një mënyrë të caktuar. Ata zakonisht kanë një këmbë më të gjatë, e cila është këmbë anode (pozitive), dhe zakonisht një avantazh i sheshtë në kokën plastike LED, e cila tregon këmbën katodike (negative).

Një rezistencë përdoret për të mbrojtur të dy LED-et nga marrja e shumë e tanishme dhe pin GPIO nga 'dhënia' e tepërt - gjë që mund të dëmtojë të dyja.

Ekziston një grimë e një vlerësimi gjenerik të rezistencës për LEDs standarde - 330ohm. Ka disa matematika prapa kësaj, por për momentin le të përqendrohemi në projektin - gjithmonë mund të shikoni në ohms ligjin dhe tema të lidhura më pas.

Lidhni një këmbë të rezistencës në korsinë e GND në bllokun tuaj, dhe këmbën tjetër të rezistencës në korsi të lidhur me pjesën më të shkurtër të ZHEL-it tuaj.

Pika më e gjatë e ZHEL tani duhet të bashkohet me korsi të lidhur me GPIO pin.

04 nga 04

Python GPIO Kodi (RPi.GPIO)

RPi.GPIO është një bibliotekë e shkëlqyer për përdorimin e këmbëve GPIO. Richard Saville

Për momentin kemi një qark të lidhur dhe të gatshëm për të shkuar, por ne nuk kemi thënë pin tonë GPIO për të dërguar ende ndonjë fuqi, kështu që LED juaj nuk duhet të ndizet.

Le të bëjmë një skedar Python për të treguar pin tonë GPIO për të dërguar disa energji për 5 sekonda dhe pastaj të ndalemi. Versioni i fundit i Raspbian do të ketë tashmë të instaluar bibliotekat e nevojshme GPIO.

Hapni një dritare terminali dhe krijoni një script të ri Python duke hyrë në komandën e mëposhtme:

sudo nano led1.py

Kjo do të hapë një skedar bosh për ne për të futur kodin tonë. Shkruani vijat e mëposhtme:

#! / usr / bin / python # Importo bibliotekat që duhen importuar RPi.GPIO si kohë importimi GPIO # Vendos GPIO mode GPIO.setmode (GPIO.BCM) # Vendosni numrin LED GPIO LED = 21 # Vendosni pinin GPIO LED si një GPIO.setup (LED, GPIO.OUT) # Kthejeni GPIO pin në GPIO.output (LED, True) # Prit 5 sekonda time.sleep (5) # Fillo GPIO pin off GPIO.output (LED, False)

Shtypni Ctrl + X për të ruajtur skedarin. Për të drejtuar skedarin, futni komandën e mëposhtme në terminal dhe shtypni enter:

sudo python led1.py

LED duhet të ndizet për 5 sekonda, pastaj të fiket, duke i dhënë fund programit.

Pse të mos përpiqeni të ndryshoni numrin 'time.sleep' për të ndezur LED për kohë të ndryshme, ose të provoni të ndryshoni 'GPIO.output (LED, True)' në 'GPIO.output (LED, False)' dhe shihni se çfarë ndodh?