En nybörjares guide till Arduino (7 / 15 steg)

Steg 7: Driva mer lysdioder



Nåväl, låt oss bara inse det: blinkar en liten LED är inte så imponerande... Så i det här steget ska jag visa hur du kan köra mer lysdioder.

Beräknas utifrån de resistor för våra lysdioder

Innan du börjar har vi att beräkna motstånd i serie med våra LED. Formeln vi behöver, är Ohms lag: R = Vjag

Men problemet här är att vi inte vet spänningen och strömmen av motståndet ännu... Låt oss hitta det!

Vi ansluter motstånd i serie med våra LED, och vi vet att spänningen i Arduino produktion stift är 5v, så om vi lägger till spänningen av LED till spänningen i motståndet, detta bör lika 5v. Därför: VR + VL = 5v och VR = 5v - VL.
Eftersom de är i serien, innebär detta också att alla elektroner som passerar genom LED, kommer att gå igenom motståndet också. Eftersom nuvarande definieras som mängden elektroner per tidsenhet, vet vi att strömmen genom motståndet är lika med strömmen genom lysdioden. Därför: IR = jagL.

Nu kan vi använda Ohms lag för att hitta vårt motstånd motstånd: R = VR/IR = (5v - VL) / IL

(bild 1)

Om du använder en 3.3V Arduino, du kan bara ersätta 5v med 3.3V. Detta är bara matningsspänningen, det kan vara allt.

Värdena för VL och jagL kan hittas i din LED datablad, eller du kan använda tabellen nedan.
JagL ska vara mindre än 20mA, annars kan du döda din LED. Men de flesta av tss.
Observera att du måste dela upp detta värde (i milliampere) av 1000, att få ampere, SI-enheten för ström. Annars kommer du inte få ditt svar i ohm (men i kilo-ohm istället).
VL är lysdioder framspänningsfall. (Lysdioder som avger lägre energi ljus, med längre våglängder, som röd och IR har en mycket lägre spänningsfall än ljus med högre energi fotoner, som blått eller ultraviolett ljus.)

FärgFramåt spänning (VL)
Röd1.7V - 2.2v
Orange2.0V
Gul2.1V
Grön2.2V
Blå3.2V - 3.8v
Vit3.2V - 3.8v

Detta är bara en uppskattning, men kommer det inte hålla sann för varje LED.

Du förmodligen inte har ett motstånd av det exakta värdet du bara beräknat, så runda upp till nästa värde i serien E-12. Denna serie har endast värdena 1.0, 1.2, 1.5, 1.8, 2.2, 27, 3.3, 3,9, 4.7, 5.6, 6,8, 8.2 och dessa värden multipliceras med tio, som 10, 100, 1000, 10.000 etc.
Mitt resultat var till exempel 65Ω, så jag tog ett motstånd av 68Ω.
Det är bättre att ta en resistor med ett högre värde, så du inte dödar din LED.

Ansluta lysdioder till Arduino

Som jag förklarade tidigare, är en LED i grunden en diod, så låter den aktuella passet i endast en riktning. Om vi ansluter lysdioden tvärtom, kommer att ingenting hända.

En LED har en katod och en anod: i Schematisk representation, pilens riktning är konventionella nuvarande flödesriktningen, så den pekar på den negativa sidan: katoden.
När du tar en närmare titt på en LED, ser du att en sida är platt, och den andra är rund. Också, ena benet är kortare än den andra: den platta sidan med det kortare benet är katoden, och vi ansluter denna sida till de negativa, eller marken av Arduino.

Det spelar ingen roll var du lagt motståndet, så länge det är i serie med lampan, så du kan ansluta den till katoden eller till anoden.

Om vi vet att endast en LED kommer att vara på samma gång, kan vi använda en resistor för alla våra lysdioder.

Ta en titt på bilder 2-3-4, sedan ansluta motståndet till marken och en av de horisontella skenorna i din skärbräda och en LED med den korta ben i samma järnväg och den långa ben i stift 12 på Arduino.

Observera att du måste beräkna specifik motståndet för din LED. Du kan använda formeln ovan, eller använda en online-verktyg, eller en app (jag använder detta verktyg och denna app). Om du klickar på frågetecken bredvid fälten, verktyget kommer att ge dig lite extra information och appen har en nedrullningsbar meny för att välja färg.

Om du är osäker, eller - som jag - bara för lat för att leta upp det och hitta rätt motstånd, kan du bara använda någon motstånd mellan 220Ω och 330Ω. Detta endast gäller om du använder den med en 5v Arduino! 270Ω och 330Ω är lite högt att använda med en 3v3 Arduino, i så fall, använda något mellan 100Ω och 220Ω. Om du vill använda en LED med en högre spänning, måste du beräkna det.

När du har anslutit den LED och motstånd till Arduino, kan du ersätta stift 13 i exemplet Blink av 12. Du kan använda genvägen CTRL + F: Ange 13, i fältet "Sök" och i fältet "Ersätt med" Ange 12, sedan klicka på 'Ersätt alla'. Nu ladda upp skissen till din Arduino: LED du har bifogat ska nu blinka.

Fortfarande inte imponerad? Nej? Tja, du har rätt...
Men nu har du grunderna, kan vi göra något mer spektakulära...

Mer lysdioder

Anslut 5 extra lysdioder, till stift 2, 4, 6, 8 och 10 med deras längre ben, och Anslut deras kortare ben till samma järnväg på en skärbräda som LED på stift 12 och motståndet.

Nu hämta zip-filen med de andra exemplen, extraktet den och öppna Blink6-a i Arduino IDE.
Om du kommer ihåg exemplet Blink, borde inte det vara så svårt att förutsäga vad programmet gör. Ladda upp den till din Arduino, och kolla om din hypotes var korrekt!

Optimera koden

Om du tar en närmare titt, kommer du se att några bitar av koden är bara 6 gånger samma kommandon, med bara en annan pin-kod... Tja, det finns ett sätt att lösa detta: vi kallar det den för loop.

Öppna Blink6-b skissen från zip-filen. När du ladda upp den till Arduino, ser du att den gör exakt samma som Blink6-en, men den har mycket färre kodrader.

Detta är alla tack vare de två for-loopar som används.
Men innan jag kan förklara de for-loop, jag måste först förklara hur variabler fungerar:

På den första raden, det finns ett nytt uttryck "int fördröjningstid = 200." Detta är det så kallade uttalandet av variabeln "fördröjningstid". En variabel är bara en bit av minnet, där du kan lagra ganska mycket vad du vill. En variabel har en datatyp, ett namn och ett värde: i det här fallet datatypen är 'int': ett heltal, heltal och kan positivt eller negativt. Namnet är "fördröjningstid", detta är bara ett godtyckligt namn när du ge variabeln, det kan ha bokstäver och siffror i det och vissa symboler som ett understreck. Om namnet består av flera ord, används stora bokstäver för varje nytt ord, eftersom du inte kan använda utrymmen. Välja lämpligt namn för dina variabler kommer att göra en enorm skillnad i din kod läsbarhet. Med 'int fördröjningstid;', variabeln är korrekt förklarat, men ännu har inget värde. Tilldela ett värde till variabeln kallas initierar. I det här fallet initiera vi variabel fördröjningstid till 200. Nu varje gång vi använder "fördröjningstid" i vår kod, kommer det att ersättas av numret 200. Om du läser en variabel utan att första initiera det, det bara ger dig 0, i bästa fall, men antagligen bara ett slumpmässigt värde som råkade vara på denna plats av minnet, eventuellt orsakar fel i programmet.

Du måste också veta att en variabel har en så kallad tillämpningsområdet. I det här exemplet förklaras fördröjningstid på toppen, så det är en global variabel. Detta innebär att du kommer att kunna komma åt det inuti varje funktion, varje loop, i hela programmet. En variabel kan också vara lokala, vilket innebär att du kan bara använda den i den omfattning som det definierats. Till exempel, om vi skulle flytta den första raden till setup, skulle vi få misstag

"fördröjningstid" förklarades inte i detta scope

När vi skulle försöka komma åt den i det viktigaste kretsar (delay(delayTime);), eftersom detta är en annan omfattning än setup.
Men lokala variabler kan komma till hands, när du inte har mycket minne att avvara, exempelvis eftersom lokalen "raderas" när du lämnar räckvidd de deklareras i.
De flesta av tiden, är gränserna för ett scope krökt parenteser.

Men varför använda denna variabel? Tja, istället för att behöva ändra alla delay(200); funktion, vi kan bara förändra den första raden. I detta fall är det inte särskilt användbar, men om du har riktigt stora program, det verkligen gäller.

Arduino referens: variabler

Arduino referens: int

Arduino referens: variabel räckvidd

En annan bra sak om variabler är att du kan ändra dem, medan koden körs. Och detta är precis vad som händer i en för-loop. Den första delen mellan hakparenteserna är bara en försäkran om en viss variabel "i" vi initiera den till 2. Nästa del är "jag < = 12', detta innebär att de for-loop kommer att upprepa så länge jag är mindre än eller lika med 12. Den tredje och sista delen "jag = jag + 2' betyder att varje gång loopen upprepas, värde på i kommer att öka med 2.

Allt detta innebär att kommer den först att köra kod inuti hakparenteserna med värdet 2 för jag, uppsättningar stift 2 som en utgång. Nu den har nått slutet av koden, så 2 läggs till jag → jag är nu lika med 4, och den kod går igen med denna nya värde för i: stift 4 är inställd som en utgång. 2 läggs igen, jag är nu lika med 6, koden körs igen, 2 läggs... och så vidare. Tills jag är lika med 12. När slingan blir avrättad för i = 12, allt är normalt, men när den når slutet av koden nu och 2 läggs igen, jag inte uppfyller villkoret "jag ≤ 12' (jag är nu 14). Programmet avslutas de for-loop.
Varje stift med en LED fäst anges nu som en utgång, med endast två rader kod, i stället för sex.

Arduino referens: för-loop

Sammanfattning:

Att hitta rätt motståndet för din LED

  1. Slå upp framspänning i lysdioder datablad, eller i tabellen ovan. Detta är VL
  2. Slå upp framåt strömmen i lysdioder databladet, eller använda något mellan 2 och 20mA och konvertera detta nummer till ampere. Detta är jagL
  3. Hitta din leverans, 5v eller 3,3 v spänning för de flesta mikro-styrenheter som Arduino. Detta är Vs
  4. Nu använda denna formel för att hitta motstånd värdet: R = (Vs - VL) / jagL
  5. Runt detta värde upp till närmaste motståndet har du. Du kan alltid använda ett högre värde än det motstånd som du beräknade, men om du använder ett lägre motstånd, detta kommer att drastiskt förkorta livslängden på din LED. Om motståndet är för hög, kommer att LED vara mycket svagt.
  • Den runda sidan LED, med längre benet, är anoden, och är den positiva sidan.
  • Den släta sidan LED, med kortare benet, är katoden, och är den negativa sidan.
  • CTRL + F öppnas fönstret Sök/Sök/Ersätt i Arduino IDE
  • int fördröjningstid; Detta är förklaringen av en variabel av data typ int, kallas "fördröjningstid"
  • int fördröjningstid = 200. Detta är förklaringen av en variabel data typ int, kallas "fördröjningstid" och dess initiering till ett värde av 200.
  • Globala variabler kan nås överallt i programmet, lokala variabler endast i den omfattning där de deklarerades.
  • för (int jag = 0; jag < 10; i = i + 1) {} är en för-loop som initierar variabel i till ett värde av 0, lägger till 1 att jag varje gång det upprepas och upprepas så länge som jag < 10 (10 gånger).

Extra: Beräkning av effektförlusten i motståndet

Om du använder en 5v strömförsörjning, som den på Arduino, kommer en normal ¼ watt resistor räcka, men när du använder en högre Matningsspänning, eller en LED som drar mer ström, effektförlusten i motståndet blir för hög, och det kommer att brinna.

Därför måste vi beräkna vad effektförlusten i motståndet är.

(Bild 6)

Formeln för att beräkna effekten är P = V∙I. Så kan vi bara beräkna spänningen över resistorn: matningsspänningen minus spänningen över LED: VR = Vs - VL.
Och strömmen genom motståndet är samma som strömmen genom lysdioden: IR = jagL.

Därför: PR = (Vs - VL) ∙IL

I exemplet som visas i bild 6, effektförlusten i resistorn är mycket låg, så en ¼ watt resistor kommer att räcka, men om det beräknade värdet är högre, du behöver en mer kraftfull (= tjockare) motstånd.

Dessa värden är dock bara ett teoretiskt antagande.

Om du verkligen vilja till veta den verkliga effekt motståndet avleder, måste du mäta strömmen eller spänningen över det, eller i bästa fall båda.

I fallet kan du mäta både nuvarande och spänningen (fall A), kan du bara använda samma formel.

Om du kan, dock bara mäta en av dessa värden, kan du använda Ohms lag för att ersätta spänningen eller strömmen i formeln för effekt. (fall B & C)

Endast fallet A ger dig den riktiga effektförlusten, i mål B & C, behöver du värdet på motståndet. Värdet på motståndet har en viss tolerans, så att du har någon avvikelse i din wattal.

Se Steg
Relaterade Ämnen

Nybörjare guide till installera och konfigurera Octoprint på en Raspberry pi för 3D utskrift

Om du har läst någon av mina andra instructables, mest namnkunniga komplett nybörjare steg för steg, 3D-skrivare med alla delar listor, vet du att jag kommer ihåg min egen frustration på ofullständiga instruktioner och guider även efter jag äntligen...

En nybörjare Guide till 35mm Film fotografering

Hej alla! Jag har nyligen verkligen kommit in film fotografering efter min far gav mig sin gamla Pentax K1000. Jag är relativt ny på film fotografering köpa har lärt mig en hel del hittills.Målet med detta Instructable är att ge en detaljerad, lätt a...

Nybörjare Guide till fotografi

detta instructable är för nybörjare, och tar dig genom 1) lätt saker att fotografera2) utveckla bilder för att vara anständig (oroa dig inte det är mycket lätt jag lärde min stora mormor att göra det)Steg 1: utrustning Om du har en trevlig kamera med...

En nybörjares Guide till Photoshop

jag gjorde denna guide till Photoshop med hjälp av programmet sig på min hem laptop. Det har varit ett projekt som jag har velat ta itu med eftersom jag har hittat liknande guider inte har inkluderat några av viktig information.Jag har gjort digital...

En nybörjare guide till setup ESP8266 med Arduino Mega 2560 eller Uno

För produkter med öppen källkod för att lyckas eller anta en masse "skaparna" / "DIY-na" / "dev" / "etc"; en aktuell och korrekt dokumentation eller snabbstart-guide som skall krävas. Användarens inlägg i diskussion...

En nybörjare Guide till Raw-filer och Raw-bearbetning

En av de första sakerna jag lärt mig om i fotografi var om en filtyp som kallas en Raw-fil. Ofta när någon börjar i fotografi, inser han eller hon inte potentialen i Raw-filer. Först såg jag inte användning för raw-filer, de tycktes erbjuda något som...

En nybörjares Guide till XSplit programföretag och Streaming på Twitch.tv (Windows 10)

IntroduktionLive Streaming är en växande bransch där alla och envar kan dela deras spelupplevelse med världen. Om du bara titta på andra spela och prata med din favorit serpentiner i chatten, eller live streaming själv, Twitch.tv skapar en enorm, sam...

Nybörjare Guide till fiberoptik

Fiberoptik! Fiberoptik! Jag är visserligen lite besatt med fiberoptik, och av goda skäl. De är en slitstark, mångsidig och relativt enkelt sätt att lägga till vackra ljuseffekter till något du gör. Titta bara på några av de underbara projekt kan du s...

En nybörjares Guide till Stirlingmotorer

Förra året var jag en IB elev i MYP programmet. I slutet av året hade vi att göra ett forskningsprojekt om något som intresserar oss. Göra lite forskning på internet, kom jag över något som kallas en Stirlingmotor."Så, vad i helsike är en Stirlingmot...

En nybörjares Guide till papper skära

Här är en enkel guide för att komma igång att göra papper nedskärningar.Jag har gjort dem i flera år nu och har upptäckt att de är ett riktigt bra sätt att göra en vacker kort, särskilt när tiden är mot dig. Jag gör detta varje gång en födelsedag ell...

En nybörjares guide till Kolrosing, av en nybörjare.

* Detta är mitt inträde till tävlingen "Trä". Om du gillar vad jag har gjort här rösta! Tack! *Så du är nästan färdig med din woodworking projekt, har kanske du gjort några skedar, en trevlig låda, en vacker skärbräda eller några otherreally coo...

En komplett nybörjare guide till airsoft

denna guide är inte som andra instructables, denna guide innehåller allt du behöver veta för att gå ut och ha lite kul. Nu, tack vare några tips kommenterade denna sida, jag kommer att lägga till lite nya grejer... Kolla upp det!Steg 1: Komma igång A...

Nybörjare Guide till Airsoft

så du vill starta airsoft det är en rolig sport för att ta upp jag tycker det är ett steg från sittande runt att få fett spelar TV-spel. Men innan du går ut och köpa en hel kostym av redskap och toppmodellen airsoft vapen du behöver ställa dig själv...

Nybörjares Guide till att köpa Airsoft Field Gear

Så du har köpt din AEG, men din blå jeans har inte tillräckligt fickor för att hålla alla dessa extra tidningar. Det är dags att köpa några nya redskap.Problemet med att köpa nya redskap är att jag kan inte berätta exakt vad du ska köpa.Chanserna är...

Nybörjare guide till Morel svamp

Det är en helgdag som finns i såväl landsbygden söder som Mellanvästern som bara känns igen av lokalbefolkningen: svamp säsong. Det finns en uppsjö av svamp som växer under hela året, det finns bara en svamp som gör det en nödvändighet för hårt arbet...

En nybörjare Guide till spela gitarr Del1

Hej alla! Jag kommer idag att vad man ska packa i ditt gitarr fall.Steg 1: #1. Strängar En bra uppsättning strängar är lifesavers du behöver dem!Steg 2: #1. Tuner Det är uppenbart vad du gör med detta. : DSteg 3: #3. Plockar och Capo Dessa kommer i h...

Nybörjarens guide till ESP8266 och tweeting med ESP8266

Jag lärde mig om Arduino 2 år sedan. Så började jag spela runt med enkla saker som lysdioder, knappar, motorer etc. Då tänkte jag skulle inte det vara häftigt att ansluta för att göra saker som visar dagens väder, aktiekurser, träna timings på en LCD...

Arduino Anti Theft Alarm (med polis Siren): Komplett nybörjares Guide

Är du rädd för tjuvar som kan stjäla alla dina projekt??? :) :) Då detta den perfekta INSTRUCTABLE för dig. Detta är ett stöldskydd larm. När det finns ingen tjuv runt, sedan en blå LED kommer att blekna på och av; men om en tjuv försöker passera av...

Bygga en DIY Quadcopter: en nybörjare Guide

Detta är ett riktigt kort klipp på min quadcopter svävar upp och ner och rörelse i sidled. Jag försökte hålla höjden så minimal som möjligt eftersom jag är inne i mitt vardagsrum, men som ni kan se, även med som det flyger upp till huvudet (ca 6 fot)...