3.6. Elektronikgrunder

För att driva något externt från ett GPIO-stift krävs en krets på andra sidan stiftet. Tre begrepp från grundläggande elektronik – spänning, ström och sambandet mellan dem via ett motstånd – dyker upp i varje sådan krets.

3.6.1. Spänning, ström, resistans

  • Spänning (volt, V) är potentialskillnaden mellan två punkter i en krets. Chippets matningsskena kan ligga på 3,3 V i förhållande till jord; ett GPIO-stift som drivs högt ligger på samma 3,3 V.

  • Ström (ampere, A, eller milliampere, mA) är flödet av laddning genom en ledare. Ström återvänder alltid dit den kom ifrån, så för att någon ström ska flyta måste kretsen bilda en sluten slinga från matning tillbaka till jord.

  • Resistans (ohm, Ω) är hur mycket banan motstår det flödet. Ett motstånds syfte är att ställa in strömmen till ett känt värde vid en känd spänning.

Ohms lag binder samman dem:

En triangel uppdelad i tre områden märkta V upptill, I och R nedtill; de omarrangerade formerna V = IR, I = V/R, R = V/I visas runt den.

Ohms lag i sina tre former.

Med ord: spänningen över ett motstånd är lika med strömmen genom det multiplicerad med resistansen. Om man känner till två av de tre ger algebra den tredje.

3.6.2. Dioder

En diod är en komponent med två anslutningar som leder ström i en riktning (från anod till katod) och blockerar den i den andra.

En diods schematiska symbol -- en triangel som pekar åt höger mot ett lodrätt streck -- med anoden markerad till vänster och katoden till höger. En LED-variant lägger till två utåtriktade pilar bredvid symbolen som indikerar utsänt ljus.

En diod leder endast från anod till katod. En LED är en diod som avger ljus medan den leder.

En diod har även en framspänning (Vf) – spänningsfallet över den när ström flyter i ledningsriktningen. När den pålagda spänningen når Vf beter sig dioden ungefär som en ledare; under den flyter nästan ingen ström.

3.6.3. LED-dioder

En lysdiod (LED) är en diod som omvandlar sin ledningsström till synligt eller infrarött ljus. Ljusstyrkan skalas med strömmen; färgen bestäms av LED:ns kemi, inte av drivningen.

Typiska framspänningar för LED:

  • Röd: 1,8 – 2,2 V

  • Grön eller gul: 2,0 – 2,4 V

  • Blå eller vit: 2,8 – 3,4 V

En användbar driftström för en indikator-LED är 5 – 20 mA. Högre strömmar är ljusare men förkortar LED:ns livslängd och kan överskrida GPIO-stiftets drivgräns.

3.6.4. Det strömbegränsande motståndet

Att ansluta en LED direkt mellan ett GPIO-stift och jord skulle låta nästan obegränsad ström flyta: när framspänningen har nåtts ser LED:n ut som en nästan kortsluten krets. Ett seriemotstånd mellan stiftet och LED:n ställer in strömmen till ett säkert värde.

En krets: GPIO-stiftet ansluts via ett motstånd R till anoden på en LED; LED:ns katod går till jord. Etiketter markerar Vsupply vid stiftet, V_R över motståndet, Vf över LED:n och strömmen If som flyter runt slingan.

Ett seriemotstånd ställer in LED-strömmen.

Matningsspänningen fördelas mellan motståndet och LED:n: LED:n släpper sin framspänning och motståndet släpper resten. Enligt Ohms lag:

R = (Vsupply - Vf) / If

För en röd LED (Vf 2.0 V) som drivs från ett 3,3 V GPIO-stift vid 10 mA:

R = (3.3 - 2.0) / 0.010 = 130 Ω

I praktiken väljer man närmaste större standardvärde (150 Ω eller 220 Ω). Resultatet är en något svagare LED med en sundare säkerhetsmarginal. Ta till 200 – 470 Ω som ett vettigt standardval när exakt ljusstyrka inte spelar någon roll.

3.6.5. Varför varje del spelar roll

Formen på varje GPIO-utgångskrets följer av de fyra idéerna ovan:

  • Spänning anger den energi som finns tillgänglig vid stiftet. En 3,3 V GPIO har 3,3 V att fördela över vad som än är kopplat mellan den och jord.

  • En diod (en LED, i det här fallet) förbrukar en del av den spänningen som sitt framspänningsfall och vägrar leda i fel riktning – den bestämmer vilken riktning och den fasta andelen.

  • Ett strömbegränsande motstånd förbrukar den återstående spänningen och omvandlar den överblivna budgeten till en kontrollerad ström. Utan det skulle LED:n dra den ström stiftet kan leverera – vanligtvis tillräckligt för att förstöra den ena eller båda.

  • Ohms lag är det som gör motståndets värde beräkningsbart: givet den överblivna spänningen och den önskade strömmen faller R ut genom algebra.

Spänning, ström, resistans, dioder och en omarrangerad ekvation räcker för att konstruera varje grundläggande GPIO-utgångssteg.

Samma delar har hela tiden gömt sig bakom den inbyggda LED:n. machine.LED("LED_RED").on() tänder LED:n eftersom kamerans kretskort redan tillhandahåller allt runt omkring – det strömbegränsande motståndet, ledningen till jord, själva LED:n – och klassen växlar bara kislets GPIO bakom dem. Synen att ”en rad tänder en LED” stämmer; det är bara ett kort sätt att säga ”driv den kretsen”. Skala bort abstraktionen så är det precis kretsen ovan som återstår.

machine.Pin är samma kisel exponerat utan de omgivande delarna. Skriptet styr stiftets spänning direkt; du tillhandahåller motståndet (dimensionerat med Ohms lag), LED:n och returvägen till jord. Samma fyra idéer återkommer, i något olika kombinationer, bakom kontaktstuds-eliminering, PWM-filtrering och motordrivning.