I min siste opplæring forklarte jeg hvorfor det er lett å jobbe med elektroniske prosjekter med Arduino. I denne opplæringen vil jeg bruke et Arduino-kort til å lage en enkel krets, en som kan slå på et LED-lys. Ved å bruke noe mer grunnleggende kode vil jeg få det samme LED-lampen å blinke. Til slutt vil jeg legge til en trykknapp og bruke den til å øke blinkingen.
Noen av diagrammene i denne artikkelen ble utviklet ved hjelp av Fritzing-programmet.
I denne opplæringen vil jeg bruke følgende komponenter:
Du kan kjøpe disse produktene enten via en lokal elektronikkbutikk, for eksempel Fry's (hvis du bor i USA), eller via Internett fra Arduino Nettsted, Amazon, Little Bird Electronics eller eBay.
Alternativt kan du velge noen av disse andre Arduino-kortene for å følge denne opplæringen:
Andre Arduino boards eller tredjeparts kompatible kort kan også fungere. De kan imidlertid kreve en annen USB-kontakt. Kontroller at Arduino-kortet ditt kan koble til datamaskinen din ved hjelp av en egnet USB-kabel.
Videre må du sørge for at du har lastet ned og installert den nyeste versjonen av Arduino IDE på datamaskinen. Installere Arduino IDE kan kreve noen få trinn på Windows-datamaskiner, fordi du må installere noen drivere. For ytterligere instruksjoner, følg installasjonsveiledningene på Arduino-nettsiden.
Du lurer kanskje på hvordan vi skal slå på når vi ikke har tatt med en i komponentlisten? Det er enkelt! Arduino boards er vanligvis utstyrt med en innebygd LED, som vi kan bruke i våre prosjekter. For å holde vår krets så enkelt som mulig, skal vi bruke denne LED-en.
Vår kode kommer til å fungere med lyset merket med bokstaven L ved siden av det.For å begynne, koble Arduino-kortet til datamaskinen din ved hjelp av riktig USB-kabel. Du vil legge merke til at ett eller flere lys kan være midlertidig eller permanent slått på. Arduino Uno har fire LED-lys på bordet. Hvis bordet ditt har mer enn én lysdiode, indikerer blinkende lys at den er koblet til en strømkilde og starter opp. Det tar omtrent fem sekunder for Arduino å bli klar for at du skal samhandle med den.
Start Arduino IDE på datamaskinen din. Du vil bli presentert med et tomt arbeidsrom der du vil skrive den nødvendige koden for å programmere din Arduino bord.
Deretter må du fortelle Arduino IDE hvilket styre du skal koble til. Fra menyen, velg Verktøy> Styret, og velg deretter ditt Arduino bord fra listen. Hvis du har valgt å bruke et offisielt Arduino bord, bør navnet være oppført for å velge. Tredjepartsposter er vanligvis tilsvarer et annet offisielt Arduino-styre. Hvis du vet hvilket brett det er, så fortsett og velg det fra listen. Ellers, se i håndboken for å finne ut hvilken modell fra listen som skal fungere med ditt eget kort.
Til slutt må du velge riktig port for kommunikasjon med din Arduino bord. Igjen fra menyen, gå til Verktøy> Seriell port, og velg riktig seriell port. På Mac-maskiner er den riktige serielle porten ofte oppført som /dev/tty.usbmodem1421
eller liknende. På Windows, bør forbindelsen bli oppført som en COM
havn.
Arduino er utstyrt med mange forskjellige inngangs- og utgangskontakter, som vi vil referere til som IO Pins. Akkurat nå vil vi bruke en digital IO-pin for å instruere LED-lyset å komme på. Fordi vi også bruker LED-lyset på bordet, har den riktige IO-pin allerede blitt bestemt for oss av Arduino-beslutningstakere. Det er pin 13, som ved design er festet til LED-lyset om bord.
Kopier følgende kode og lim den inn i din Arduino IDE:
int led_pin = 13; tomromoppsett () pinMode (led_pin, OUTPUT); tomromsløyfe () digitalWrite (led_pin, HIGH);
I koden har jeg brukt to Arduino funksjoner: pinMode (pin_number, modus)
og digitalRead (pin_number, verdi)
.
Jeg vil ringe pinMode ()
fungere inne setup ()
å instruere Arduino å behandle sin pin-13 som en utgang. Deretter ved å ringe digitalWrite ()
fungere inne løkke ()
Jeg kan aktivere HØY
signal på pin-13 som slår på LED-lampen.
Klikk på Laste opp knappen for å trykke på koden ovenfor i Arduino-kortet. Forutsatt at riktig Arduino bord og Seriell port er valgt, bør du se en fremdriftslinje etterfulgt av a Ferdig opplasting budskap.
Mens koden blir lastet opp, kan du se forskjellige lys som blinker, noe som indikerer vellykket kommunikasjon mellom PCen og Arduino-kortet. På dette tidspunktet bør lysdioden ombord være permanent slått på.
Du har fullført Arduino-ekvivalenten til "Hello World". Nå skal du få det til å blinke ved å introdusere utsette()
Fungerer i koden ovenfor. De utsette()
funksjonen aksepterer et heltall, lik en lengde i millisekunder. 1000 millisekunder er lik ett sekund.
int delay_value = 1000; int led_pin = 13; tomromoppsett () pinMode (led_pin, OUTPUT); tomromsløyfe () digitalWrite (led_pin, HIGH); forsinkelse (delay_value); digitalWrite (led_pin, LOW); forsinkelse (delay_value);
De utsette()
Funksjonen holder LED-lampen på og slår den av i et sekund under hver iterasjon av løkke ()
funksjon. Som løkke ()
funksjonen gjentas vedvarende, denne koden vil slå LED-lampen på og av flere ganger.
Ved hjelp av et digitalt bølgediagram kan jeg løst forklare hvordan den opprinnelige oppførselen har endret seg. Før jeg introduserte forsinkelsesfunksjonen i trinn tre, produserte jeg en digital bølge som så ut som diagrammet ovenfor. Hver syklus av hver loop () -funksjonen iterasjon ble brukt på å holde LED-lampen slått på.
Ved hjelp av forsinkelsen () -funksjonen deler vår kode hver syklus i to deler, noe som gjør hver iterasjon siste i to sekunder. I løpet av det første sekund lyser lysdioden, og i løpet av neste sekund er den slått av.
Denne figuren viser hvordan funksjonen forsinkelse () brukes til å opprettholde den aktuelle tilstanden.Opptil dette punktet har oppførselen til dette Arduino-prosjektet blitt drevet av koden vi har skrevet. Men når det er lastet opp og kjører, har vi ingen måte å samhandle med denne elektroniske kretsen. Dette er veldig statisk og jeg skal endre det ved å legge til en trykknapp som vil la meg endre blinkerhastigheten. I dette trinnet må jeg bruke en brødfjel. Dette er en god tid å ta en titt på hva et brødbrett er og hvordan det kan brukes.
Et brødbrett er et loddetallt prototypebrett som brukes til å lage midlertidige elektroniske kretser, hovedsakelig for å eksperimentere med forskjellige kretskortdesigner.
Moderne breadboards består av et solid stykke perforert plast, med mange kobberklips under overflaten for å lage elektriske tilkoblinger. De mange hullene på overflaten av disse brettene gjør det mulig å sette inn forskjellige elektroniske komponenter uten at det er behov for lodding på plass.
Vanlige brødbrett har to kolonner, hver med sine egne rader med fem hull. Et hvilket som helst hull er forbundet med alle andre hull i samme rad, men ikke til noen av hullene i den tilstøtende kolonnen. Med andre ord, hvis to ledninger ikke er plassert i samme rad i samme kolonne, er de to ikke forbundet med hverandre. Med dette oppsettet kan vi dele en enkelt tilkobling fra en komponent gjennom fire andre tilkoblingspunkter i samme rad.
Årsaken til at to eller flere kolonner på samme brødbrett er å tillate at flere integrerte kretser (ICs) tilkobles. IC-er er vanligvis koblet til begge kolonnene av et brødbrett fordi de har mer enn to pins på begge sider som illustrert i det følgende diagrammet.
40-pinners IC festet til et brødbrett.På begge sider av de fleste brett er det lange strimler som brukes til å dele strøm. Disse strimlene kalles ofte busstripene, eller strømskinner, ettersom de løper langs hele lengden av brettet. Strømsporene på noen brett lar deg koble både positive og jordede tilkoblinger. I motsetning til normale rader er alle hullene langs styrets lengde forbundet med hverandre.
Strømskinner er vanligvis merket med røde og blå linjer som går langs hele lengden av brettet.Når du kjøper et brødbrett, er det en god idé å velge typen med spor på begge sider av brettet. Disse sporene kan brukes til å feste flere brødbrett sammen for å gi et større arbeidsrom. Et godt kvalitetsbrett er merket med tall og bokstaver som gjør det enkelt å identifisere hver rad og kolonne.
Begynn med å plassere trykknappen og koble den med strømbryterne fra Arduino-brettet. Arduino Uno kan sende ut to nivåer av effekt, 3-volt og 5-volt. For denne kretsen må vi bruke 5V-skinnen. Grunnen til at du vil bruke den ene over den andre, avhenger av komponentene du skal koble til. Noen komponenter kan trenge lavere strømspenning for å betjene, dermed 3V-utgangen.
Kretskort med Arduino og brødbrettI diagrammet ovenfor har vi en komplett krets. Vi har koblet toppknappene til trykknappen til både 5V-pin, på Arduino og til 10K-motstanden. Dette kobler så til bakken (GND) på vår Arduino. Vår tredje ledning (i gul) kobles til digital pin-2 og vil bære ON-signalet til Arduino-kortet.
Formålet med en motstand er å senke den elektriske strømmen, når strøm går gjennom det, og dermed begrense mengden strøm som strømmer gjennom kretsen. Dette oppnås ved å lage motstander fra materialer med lav ledende egenskap. Motstand er målt i ohm og kan bestemmes ut fra følgende ligning:
motstand (i ohm) = strøm eller spenning (i volt) / strøm (i ampere)Anta at jeg vil koble et LED-lys til en 9V-strømkilde, men LED-lampen kan tolerere bare 30 millimeter strøm. Basert på ligningen ovenfor må vi bruke en 300 ohm motstand for å begrense strømmen som strømmer gjennom LED-lyset.
9 volt / 0,03 milli-ampere = 300 ohmDet er tre hovedkategorier av motstander:
Selv om motstandene tjener til å begrense strømmen, er det forskjellige typer motstander i hver av de tre kategoriene for forskjellige applikasjoner.
De fleste faste motstander er merket med fargede band for å hjelpe oss med å utdanne deres motstand. Fra venstre gir de to første båndene første og andre siffer av motstandsverdien. Det tredje bandet gir multiplikasjonsfaktoren. Til slutt gir det fjerde båndet toleransen til motstanden.
Motstand fargekoderFra fargene på motstanden ovenfor kan vi trene følgende:
Her er den komplette tabellen med farger. For mer informasjon, se Wikipedia på motstands fargekoder.
Farge | Digit | Multiplier | Toleranse |
Svart | 0 | x10 ^ 0 | ± 1% |
brun | 1 | x10 ^ 1 | ± 2% |
rød | 2 | x10 ^ 2 | - |
oransje | 3 | x10 ^ 3 | (± 5%) |
Gul | 4 | x10 ^ 4 | ± 5% |
Grønn | 5 | x10 ^ 5 | ± 0,25% |
Blå | 6 | x10 ^ 6 | ± 10% |
Violet | 7 | x10 ^ 7 | ± 1% |
Grå | 8 | x10 ^ 8 | ± 0,05% (± 10%) |
Hvit | 9 | x10 ^ 9 | - |
Gull | - | x10 ^ -1 | ± 5% |
Sølv | - | x10 ^ -2 | ± 10% |
Ingen | - | - | ± 20% |
Jeg koblet den gule signalledningen fra digital stift 2 til et ben på trykknappen. Det samme benet på knappen, på den andre siden, kobler seg gjennom 10K motstanden til bakken for å danne en komplett krets. Når knappen ikke trykkes, blir reisestrømmen lest av Arduino som en LOW.
Når knappen er trykket ned, vil en forbindelse mellom pin 2 og positiv 5V bli etablert gjennom trykknappens ben. Siden elektrisitet alltid vil gå gjennom den minste motstandsbanen, vil den unngå å gå gjennom motstanden og vil strømme gjennom til pin 2 som resulterer i en høy lesning av Arduino bordet.
Nå, la oss fullføre trinn 4 og få LED-lampen til å blinke raskere når vi trykker ned trykknappen.
int delay_value = 1000; int led_pin = 13; int button_pin = 2; tomromoppsett () pinMode (led_pin, OUTPUT); pinMode (button_pin, INPUT); tomromsløyfe () digitalWrite (led_pin, HIGH); forsinkelse (delay_value); digitalWrite (led_pin, LOW); forsinkelse (delay_value); int button_state = digitalRead (button_pin); hvis (button_state == HIGH) delay_value = 100; ellers delay_value = 1000;
Denne gangen instruerer koden Arduino å behandle pin-2 som en inngangskilde ved å ringe pinMode (button_pin, INPUT)
inne i setup ()
funksjon. Dette gjør at vi kan lese tilstanden til trykknappen senere inne i løkke ()
funksjon ved å ringe DigitalLes (button_pin)
. Når du trykker på knappen, kan du avgjøre om forsinkelsesfunksjonen skal kalles med en mindre verdi.
Gå nå og last opp koden ovenfor til Arduino, og trykk deretter på knappen for å se at LED-lampen blinker raskere.
Hvis du har fått dette langt, og koden ovenfor ikke virker for deg, kan det være noen grunner til dette:
I denne opplæringen lærte du noen grunnleggende teknikker ved bruk av et Arduino-bord, et brødbrett, motstander og trykknapper sammen med Arduino IDE. Du lærte også hvordan utsette()
funksjonen kan brukes til å opprettholde en tilstand i en gitt tidsperiode.
Hvis du har spørsmål om denne opplæringen, vennligst legg dem i kommentarfeltet nedenfor.