Genom att koppla in en lysdiod och ett motstånd kan vi styra lysdioden via en GPIO port. För detta experiment behöver man

  • 1 st LED 
  • 1 st motstånd 220Ω ( upp till 330 Ω går bra)
  • Breakout Kit
  • kopplingsbord
  • 2 st kopplingskablar

I detta exempel använder vi GPIO 18 (pinne 12) och GND (pinne 14) för att styra lysdioden

OnLED

På kopplingsbordet ser det ut så här

koppling_enLED

 

För att koppla in lysdioden måste man veta vilken pinne som är vad. På alla lysdioder finns en sida som är platt, den är katod (kopplas mot -) eller så kan man se på längden på benen, det längsta benet är anod (+)

LED

 

Kortaste benet i bilden är katod och det nedra (längsta) är anod, så på kopplingsbordet skall det längsta benet vara kopplad mot motståndet.

I kommande artiklar kommer vi att använda Python som primärt programmeringsspråk (se första artikeln ang. programmering) men i detta artikel ska jag visa hur man kan styra dessa via systemvariabler.

Linux har variabler i fingerade kataloger som egentligen skickar information in i kärnan (se kommande artikel om Linux), tyvärr kräver dessa att man är administratör för att de ska fungera vilket är orsaken an man inte använder sig av dessa i vanliga program. Men det kan vara bra att veta hur det fungerar “under huven”.

GPIO_cmd1

Jag ska gå igenom kommandoraderna i ovanstående kommandfönster.

sudo -s  gör att alla kommandon sker som administratör (root). När Raspberry PI startas “ägs” alla GPIO portar av kärnan, för att komma åt dem och manipulera dem måste de “exporteras”. Detta görs genom att man skriver in portnumret i variabeln /sys/class/gpio/export. Med kommandot echo 18 > /sys/class/gpio/export kommer vi åt GPIO port 18.

Om när man  skriver ls /sys/class/gpio så ser man att man nu kan komma åt katalogen gpio18 som innehåller variabler för att styra GPIO 18. Genom att sedan skicka echo out > /sys/class/gpio/gpio18/direction så ställer man om porten att vara utgående (signal skickas från Raspberry PI). Nu är vi klara för att styra lysdioden.

echo 1 > /sys/class/gpio/gpio18/value tänder lysdioden och
echo 0 > /sys/class/gpio/gpio18/value släcker lysdioden

Pröva att skriva kommandona för att tända och släcka lysdioden.

Så genom att skriva 0 eller 1 till /sys/gpio/gpio18/value så kan vi styra om lysdioden lyser eller ej. Genom att skriva följande loop

while [ true ] ; do  echo 1 > /sys/class/gpio/gpio18/value ; sleep 0.5; echo 0 > /sys/class/gpio/gpio18/value; sleep 0.5; done

så kan vi få lysdioden blinka 1 gång i sekunden ( 0.5 sekunder på och 0.5 sekunder av).

Du kan avbryta programmet med CTRL+C.

För att sluta exportera en port skriver man vilken port till som det gäller till /sys/class/unexport. För att sluta exportera GPIO 18 skriver man echo 18 > /sys/class/gpio/unexport

För att sluta köra som administratör skriv exit för att komma tillbaka från sudo -s kommandot.

I nästa artikel ska jag visa hur man kan använda ett programbibliotek för att styra portar som vanlig användare.