Styring af en ekstern LED ved hjælp af en Raspberry Pi og GPIO-ben

I dette indlæg udforsker vi Raspberry Pi GPIO-ben ved at oprette et "Hello World" GPIO-program, der resulterer i en blinkende rød LED. Vi bruger Python-programmeringssproget. Jeg bruger en hovedløs Raspberry Pi Zero WH (trådløs med lodde overskrifter) med Raspbian Stretch Lite (Raspberry Pi-operativsystem med et minimalt billede baseret på Debian Stretch).

Jeg vil tale med min hovedløse Pi ved hjælp af sshog overføre nødvendige filer fra min Mac til Pi ved hjælp af scpkommandoer. Jeg antager, at du har din Raspberry Pi kørt med Raspbian OS installeret. Hvis ikke, er der mange artikler på Internettet, der beskriver, hvordan du opsætter din Pi og installerer Raspbian, inklusive den officielle Raspberry Pi-dokumentation.

Ting, du har brug for:

  • 1 x Raspberry Pi (jeg bruger Pi Zero WH-modellen)
  • 1 x brødbræt
  • 1 x rødt LED-lys
  • 1 x 330 ohm modstand
  • 2 x hunkabel til han-jumperkabel

GPIO-benkonfiguration

GPIO står for General Purpose Input Output . Ved hjælp af GPIO-ben kan en Raspberry Pi oprette forbindelse og interagere med eksterne elektroniske komponenter. De seneste Raspberry Pi-modeller (Pi 3, Pi Zero, Pi W og Pi WH-modeller osv.) Indeholder 40 GPIO-ben. Hver pin kan tænde eller slukke eller gå HIGHeller LOWi elektroniske termer. Hvis stiften er HIGH, afgiver den 3,3 volt, hvis stiften er LOW, er den slukket.

I vores eksempel bruger vi pin 6(jord) og pin 25. Hvis du vil vide mere om GPIO-benene i Raspberry Pi, skal du tjekke pinout.xyz.

Opsætning af kredsløbet

Du skal slukke for Pi, mens du bygger kredsløbet. Vi opretter et kredsløb som vist i nedenstående diagram:

Bemærk : Modstanden i billedet er på 220 Ohm, men jeg har brugt 330 Ohm i mit kredsløb.

  1. Brug et jumperkabel til hun til at forbinde pin 6(jord) (sort kabel på billedet ovenfor) til negativ række på brødbrættet.
  2. Brug en anden kvindelig til mandlig jumper til at forbinde for at forbinde GPIO pin 25til punkt repræsenteret af række Aog kolonne 12på brødbrættet som vist ovenfor (blå kabel i billedet ovenfor).
  3. Tilslut den ene ende af en 330 ohm modstand til den negative række (rækken, der er fremhævet i grønt, hvor det sorte kabel ovenfor tidligere blev tilsluttet), og tilslut den anden ende til det punkt, der er repræsenteret af række Ckolonnen 11på brødbrættet som vist ovenfor.
  4. Den kortere ende af LED er den negative ende, og jo længere er den positive ende. Den længere ende skal altid forbindes til det punkt i kredsløbet med højere spænding (dvs. højere potentiale). Den kortere ende af LED'en er forbundet til en GPIO pin 25(som kan output 3,3 V) via det blå kabel, og den længere ende er forbundet til jorden pin 6(som er 0 V og fungerer som den negative terminal på batteriet) via det sorte kabel med en modstand imellem dem.

Modstand

Med tanke på, at jeg havde taget introduktionskurser om elektro- og elektronikingeniør for ganske lang tid siden (4 til 5 år ca.), havde jeg to spørgsmål, som jeg havde brug for svar til. Vær venlig at bære mig for at være naiv i denne sammenhæng.

  1. Hvorfor har vi brug for en modstand i vores kredsløb?
  2. Hvordan bestemmer vi, hvor mange ohm (målingen af ​​elektrisk modstand) modstanden skal være?

En modstand kræves for at sprede den ekstra elektriske energi (spænding) fra Raspberry Pi. Raspberry Pi er klassificeret til at levere 50mA ved 3,3V. Lad os sige, at vores røde LED kan have en fremadspænding (fremadspænding er den "negative spænding", der bruges af LED'en, når den er tændt) på omkring 2V og bruger 4mA strøm. Så den resterende 1.3V skal spredes af modstanden.

Ved hjælp af Ohms lov, V = IR, R= (3.3V - 2V) / (4/1000)der kommer til omkring 325 ohms- så jeg anbefaler at bruge en 330 ohm modstand .

Jeg opdagede dette fra en diskussion om Raspberry Pi-forum.

Få LED til at blinke ved hjælp af Python

Nu hvor vi har et komplet kredsløb, er den næste del at programmere GPIO-porte for at få magien til at ske: at få LED til at blinke. Vi bruger output fra GPIO pin 25til at få LED til at blinke.

Start din Pi og opret forbindelse til den ved hjælp af ssh. I terminalen skal du bruge følgende kommando til at installere Python-biblioteket gpiozero. Den gpiozeroBiblioteket gør arbejdet med GPIO pins og tilsluttede eksterne komponenter meget enkel.

For at installere Python-biblioteket skal du skrive sudo apt-get install python3-gpiozero.

Nu kører vi noget Python-kode. Gem nedenstående kode på dit Pi-filsystem i en fil med navnet blink1.py. Scriptet tænder dybest set den LED, der er tilsluttet pin 25, sover i 1 sekund, slukker derefter LED'en og sover igen i 1 sekund. Og dette gøres kontinuerligt i en sløjfe, indtil programmet afsluttes (tryk på ctrl+ c).

Nu fra terminalen, gå den mappe, hvor scriptet gemmes og køre det ved hjælp af kommandoen: python3 blink1.py.

Du vil se den røde LED blinke sådan:

Vi kan bygge masser af sjove ting ved gpiozerohjælp af en lignende opsætning. Tjek dokumentationen, gpiozerosom viser nogle interessante eksempler. Prøv at opbygge et trafiklyssystem.

Oprindeligt offentliggjort på shahbaz.co den 7. april 2018.