Arduino for nybegynnere

Download Report

Transcript Arduino for nybegynnere

for nybegynnere
Innføring i grunnleggende elektronikk
Av Torgeir Bull
Introduksjon
Mikrokontroller
Dette heftet er ment som en
introduksjon til Arduino-plattformen og
som en innføring i grunnleggende
elektronikk.
Arduino er en mikrokontroller festet på
et kretskort som gjør det enkelt å motta
og sende ut signaler. En mikrokontroller
er en integrert datamaskin på en chip.
Arduino er med andre ord en enhet
man kan programmere til å lese og
kontrollere elektriske komponenter og
enheter som er koblet til. Mulighetene
er uendelige, og det er kun fantasien
som setter begrensninger for hva som
kan gjøres, sammen med komponentene man kobler til.
fig: mikrokontroller
Heftet vil ta for seg noen formler,
grunnleggnde prinsipper, komponenter,
hvordan disse fungerer og hvordan de
kan brukes.
Det finnes mange varianter av
Arduino, laget for forskjellige bruksområder. Noen kan fungere som et
tastatur, noen har flere pinner, andre
har færre pinner. Noen har utforming
som passer for spilling, andre er laVisste du at?
get av materialer som kan bøyes.
Det går an å ta av mikroVi skal fokusere på brettet som
kontrolleren på Arduino UNO R3.
startet det hele; Arduino Uno.
1
Dette kan være hendig om du
programmerer kontrolleren først, og
ønsker å lodde den fast til et prosjekt.
Ikke bare sparer du penger ved
å slippe å kjøpe en ny arduino hver
gang, men det tar også mindre
plass i produktet
du lager!
TING DU KAN BRUKE
ARDUINO TIL Å LAGE!
•
•
•
•
•
•
•
•
•
Ståhjuling
Speedometer
Temperaturmåler
Lysstyring
Tyverisikring
Låsesystemer
Quadcopter
Girkassekontroll til bil
3D-printere
Arduino Uno R3
Arduino Uno, er som navnet tilsier det
første Arduino-brettet som kom. Den er
nå i tredje versjon, og heter derfor R3,
kort for revision 3.
Brettet er sammensatt av flere
komponenter. Illustrasjonen på neste
side viser noen av hovedkomponentene du kommer til å bli kjent med.
Mer informasjon om
Arduino Uno kan finnes på:
http://arduino.cc/en/Main/arduinoBoardUno
USB type B
Ekstern strøm
5V, 3.3V og GND
Arduino UNO R3 kan kobles til datamaskinen via en USB-kabel. Type B er
navnet på porten som kobles inn i selve
Arduinoen. Det er den samme porten
som brukes til blant annet printere.
Kabelen tilfører Arduinoen strøm på
5 Volt, og overfører data både frem til
tilbake.
Om du har programmert Arduinoen ferdig, kan du bruke den uavhengig av en
datamaskin, forutsatt at Arduinoen får
rett mengde støm.
Arduino Uno R3 kan levere ut 5 volt og
3,3 volt, forutsatt at den får rett
mengde strøm. Dette er pluss-poler (+)
som kan kobles opp mot forskjellige
komponenter.
Manuell restart
En knapp for å restarte Arduinoen.
Enheten kjører da programmet fra
starten av.
GND er jord eller minuspoler. Dette er
hvor strømmen skal havne etter at den
har gått gjennom alle komponentene.
Se på det som sluken i vasken hvor
alt vannet må renne ned i for ikke å
oversvømme rommet.
LED indikatorer
Dette er LED-dioder som lyser for å
vise forskjellige ting. Den ene lyser om
Arduinoen får strøm, en annen lyser når
Arduinoen får lastet opp ny programvare.
ATmega328p
fig: Arduino med beskrivelser
Hjernen i Arduinoen. Mikrokontrolleren
som sitter med all informasjonen. En
ATmega328P-prosessor kan
inneholde 32 kilobytes med lese- og
skrivemuligheter. Dette høres
kanskje lite ut, men med ren tekst,
kan man skrive ganske mye før
den fylles opp.
2
Digitale pinner
Pulse with modulation (PWM)
Arduinoen kan kun sende ut og motta
to verdier; av og på, altså strøm eller
ikke strøm, 0 eller 1. Det er
mønsteret dette gjøres i som gjør at
Arduinoen både kan sende ut og motta data (både input og output). Mens
5V og 3.3V-pinnene sender konstant
strøm, kan de digitale pinnene sende
rekker med 0 og 1 med full
nøyaktig og kontroll. På denne måten
kan mikrokontrolleren kommunisere
med enhetene som er koblet til.
Noen av pinnene på arduinoen er
merket med ~, og er pinner som
støtter såkalt pulse with modulation
eller PWM. PWM er en fancy måte å
beskrive en måte å sende signaler på.
Teknikken brukes i en rekke programmer, inkludert i svært sofistikerte
styringssystemer. En måte å bruke
PWM på, er å fade en LED-diode, eller
å styre en servo motor.
Pinne 1-13 er altså pinnene man
ønsker å koble enheter til for å
kontrollere de. For eksempel kan det
være et blinkende lys eller en temperatursensor eller en rekke andre
komponenter!
Visste du at?
Det er viktig at enhver krets
som kobles opp mot Arduinoen
gå fra pluss (+) til minus
(- eller gnd).
Både digitale og analoge
pinner sender ut strøm.
3
75%, sender Arduinoen strøm ut 75%
av tiden. Dette kan justeres og endres
underveis, og åpner for en hel rekke
muligheter.
25% Driftssyklus
1
0
50% Driftssyklus
1
0
75% Driftssyklus
PWM gir oss muligheten til å variere
hvor mye tid signalet er på (high) på
samme måte som et analogt signal. Et
signal som blir sendt ut fra Arduinoen
kan kun være på (5V) eller av (gnd),
altså 1 eller 0. Men vi kan justere
lengden signalet er på til signalet er av
ved hjelp av et tidsintervall.
Vi sier at konstant strøm har en 100%
driftssyklus (eng: dyty cycle), og 0% er
ingen strøm. Om vi setter driftssyklusen
til 50%, er signalet like ofte av som på
(se figur). Om vi later som om det tar
ett sekund for en syklus, er strømmen
et halvt sekund av, og et halvt sekund
på. Dette skjer selvsagt langt raskere i
virkeligheten. Setter vi driftssyklusen til
1
0
fig: driftsyklus
Analoge pinner
Mens digitale pinner kan sende ut og
lese 0 eller 1, altså strøm eller ikke
strøm. En analog pinne kan kun lese av
verdier, den kan ikke skrive.
Fordelen med analoge pinner, er at de
kan lese av både 0 eller 1 og alt
mellom!
Mellom 0 og 1 er det 1023 nivåer. Til
sammen 1024 nivåer. 0 er det samme
som gnd eller ingen strøm, og 1 er det
samme som 5 volt.
Inputs & outputs
Datablader
En mikrokontroller som Arduino
forholder seg til inputs og outputs. Det
er en vesentlig forskjell mellom en input
og en output.
Det er et hav av forskjellige
sensorer, komponenter og
enheter der ute. Alt for mye til å
ha kontroll på. Derfor bruker alle
elektrikere, ingeniører og
elektronikkentusiaster noe som
kalles for datablader (eng: data
sheets).
En Input er en enhet/sensor eller en
komponent som sender signaler tilbake
til kontrolleren. Arduinoen sender strøm
til enheten, og den sender sender data
tilbake.
Eksempel på inputs kan være en
temperatursensor, bevegelsessensor, avstandsmåler, knapp
eller lignende.
En output er en enhet som ikke
sender signaler tilbake til kontrolleren,
men som mottar og slår noe på.
Eksempel på outputs kan være
et lys, en motor, en skjerm, en
piezobuzzer eller lignende.
Et datablad er et lite informasjonshefte eller ark som tar for
seg en enkelt komponent. Der er
pålagt å ha klart et datablad om
du skal selge elektriske deler, så
det er enkelt å finne. Hver
komponent har et navn eller
nummer, og ved å søke opp
dette navnet på internett, finner
du rett informasjon. For
eksempel har ultralydsensoren
som brukes i eksemplene navnet
HC-SR04. Navnet er som oftest
inngravert eller trykket på
komponenten.
bilde: datablad for HC-SR04
Ved siden av kan du se et eksempel på en side i databladet
for ultralydsensoren HC-SR04.
4
Motstand er Ohm
En resistor eller motstand er en måte å
bremse mengden strøm på. Du har
sikkert sett slike små komponenter festet i alt fra fjernsyn, dvd-spiller til
radiostyrte biler eller i en reiseradio.
Ikke alle komponenter tåler å motta like
mye strøm, så ved hjelp av en eller flere
resistorer, kan man justere dette, slik at
komponentene ikke går i stykker.
Mengden Ohm skrives på flere måter.
For eksempel kan man komme borti at
det står 220R, 220K eller 220M.
• R står for “resistance” og betyr at det
er tallet bak som er mengden Ohm.
220R er altså 220 Ohm!
• K er et tegn man bruker for å beskrive
tusen (kilo). 220K er med andre ord
220 000 Ohm (220 tusen Ohm).
• M brukes for å beskrive millioner, så
220M tilsier 220 000 000 Ohm (220
millioner Ohm).
• Man kan også møte på at det står
2K4R eller 1M4R. Står det 2K4R
betyr dette at motstanden er 2004
Ohm (to tusen pluss 4). 1M4R er altså
1 000 004 Ohm (en million og fire).
Ohms lov
Motstand måles i Ohm (Ω). Ohm er
oppkalt etter fysikeren Georg Simon
Ohm. Han fant ut at man kan måle
forskjellige elektriske verdier ved hjelp
av relativt enkle matematiske former.
For eksempel kan man finne
motstanden man trenger ved å bruke
formelen:
motstand = spenning / strøm
eller
Ohm = Volt / Ampere
eller
Ω= V/A.
De forskjellige verdiene til de
forskjellige komponentene kan man
finne ved å lese de tilhørende
databladene.
TIPS!
FORMELEN KAN OGSÅ SNUS
FOR Å FINNE UT ANDRE VERDIER:
Spenning = strøm*motstand (V = A * Ω)
5
bilde: resistorer
Strøm = spenning/motstand (A = V / Ω)
Sammenkobling av
resistorer
Vi kan se på seriekopling som om man
kobler sammen hageslanger i
forskjellige tykkelser.
Det er ikke alltid at man har tilgjengelig
rett verdi når det kommer til motstand
man trenger i et prosjekt. Kanskje du
har en komponent som trenger en helt
spesiell verdi fungere korrekt. Da kan
det være greit å ty til noen kreative
løsninger med det man faktisk har!
La oss si at vi kobler tre slanger av
forskjellig tykkelse i pararell. Da vil
vannet fordele seg mellom slangene ut
fra hvor det er plass til det. På samme
måte fungerer strømmen. Det vil
komme mer “vann” igjennom en 220R
resistor i forhold til de på 10k og 3k,
som bremser mer.
Seriekopling
Ved en seriekopling, setter man
resistorene etter hverandre. Verdiene på
resistorene legges sammen for å finne
den endelige verdien på motstanden.
Formelen for seriekopling er:
Rtot = R1+R2+R3
Har man tilgjengelig tre resistorer med
verdi på 10k, 3k og 220R, legger man
disse verdiene sammen. Regnestykket
blir da:
10 000
+
3000
+
220
= 13220Ω
Den endelige verdien på motstanden
blir altså 13220Ω, eller 13k220R
R1
R2
R3
Altså, om alle resistorene har lik verdi,
kan vi ta verdien på resistorene (i dette
tilfallet 10kΩ) og dele på antall
resistorer vi bruker!
Bruker vi 4 stk 10kΩ
resistorer, og setter de i parallellkobling,
blir regnestykket 10k/4, altså
10 000 / 4 = 2500Ω
2500Ω er det samme som 2,5Ω.
R1
R2
R3
fig: seriekopling
Parallellkopling
fig: parallellkopling
La oss si at vi trenger 2,5kΩ motstand,
men alt vi har i skuffen er en haug med
10kΩ motstand.
Ved å kople motstanden
parallelt sammen, kan vi få noen helt
andre verdier.
Formelen for parallellkopling er:
Rtot = R(verdi) / A (Antall resistorer)
6
Ek
spe
rtn
Forskjellige verdier i
parallellkopling
ivå
Om man bruker forskjellige typer motstand i
en parallellkopling, blir regnestykket litt
annerledes.
Formelen for Ohm i parallellkoblinger er:
1/Rtotal = 1/r1+ 1/r2 + 1/r3 + ...
Si at vi har tilgjengelig en 10k, en 3k og en
220R resistor som vi skal parallellkople. Da blir regnestykket følgende:
1/Rtotal = 1/10k + 1/3k + 1/220
Formelen med resistorene vi bruker blir:
1/Rtotal = 1/10 000 + 1/3000 + 1/220
Om vi setter svarene på regnestykket opp,
blir det:
0,0001
+ 0,000333333
+ 0,004545455
= 0,004978788
Vi må til slutt dele 1 med svaret, for å
finne den endelige verdien:
1/0,004978788= 200,852094992752051
Den endelige totalen Ohm blir 201 Ohm.
7
!
TIPS!
“defekte” resistorer
Si at du trenger 3,2kΩ motstand, men du har
kun tre stykk 10kΩ resistorer som du setter etter
hverandre i parallell. Dette vil gi deg 3.3kΩ, som
er rundt 4% toleranse fra verdien du
egentlig trengte.
Om kretsen du bygger trenger å ha en mer
nærliggende motstand enn 4% toleranse, kan vi
måle motstanden i alle 10kΩ vi har, og finne de
med lavest motstand, for de har nemlig
toleranse de og! Om alle 10kΩ har rundt 1%
toleranse, kommer vi kun til 3.3kΩ, men flere av
produsentene av slike resistorer er kjent for å ha
små feil i produktene sine.
Du kan derfor være heldig å finne motstand som
har mer enn 1% toleranse, og dermed havne på
den verdien du trenger.
Finn frem eller skaff deg et enkelt multimeter og
mål deg frem til du finner noen “defekte”
resistorer!
Visste du at?
For å måle motstand bruker vi
noe som kalles et multimeter.
Dette er et måleinstrument du
kommer til å få bruk for mange
ganger! Du kan måle alt fra
Volt, Ampere, Ohm og mye
mer! Et svært hendig verktøy
med andre ord!
Resistorer og fargekoder
Om du ser på bildet på side 5, kan du
se at resistorene har fargede streker
på seg. Strekene kan se ganske tilfeldige og uoversiktlige ut, men det er et
logisk system bak det. De viser nemlig styrken på motstanden, altså hvor
mange Ohm de er.
Tenk deg at du har klart å blande
sammen flere resistorer med ulike
verdier. De er ikke merket, og du har
ikke tilgjeng noen nye resistorer som er
festet på en merkelapp. Hvordan skal
man finne ut verdien?
Det finnes
resistorer med
enten fire, fem eller
seks linjer. Ta en
titt på figuren på
neste side, så skal
vi ta for oss hva de
forskjellige
strekene betyr.
bilde: multimeter
4 linjers fargekode
25kΩ
5 linjers fargekode
Fire streker
+ 5%
Vi starter å lese av verdien fra siden
hvor strekene sitter tettest. De to første
linjene er tall. Det finnes 10 farger som
symboliserer 10 tall, fra 0 til 9 (se figur
s.8). Er streken svart, betyr dette
tallet 0, er streken rød, betyr dette tallet
2 osv. La oss si at det er først en rød
strek, deretter en grønn strek. Tallet blir
da 25.
460kΩ + 1%
6 linjers fargekode
276Ω
+ 5%
Om det kun er fire streker på resistoren,
er den tredje streken multiplikatoren.
Dette er verdien man skal gange det
første tallet med.
1.Nummer
2.Nummer
3.Nummer
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
Multiplikator
Toleranse
0,01 Sølv
0,1 Gull
1
10
100
1k
10k
100k
1M
10M
+ 10% Sølv
+ 5% Gull
+ 1%
+ 2%
+ 0,5%
+ 0,25%
+ 0,1%
Temperatureffektivitet
100ppm
50ppm
15ppm
25ppm
Om den første strekene hadde verdien
25, og den tredje streken er oransje,
skal mang gange 25 med tallet 1000,
siden oransje betyr 1000 (1k). Vi får da
25000, og vi vet at resistoren har 25k
Ohm.
Den fjerde streken er toleranseverien.
En motstand er ikke alltid helt presis,
og produsentene merker hvor
presis eller upresis resistoren er.
Er streken rød, betyr dette at
resistoren har en toleranse
fig: resistor fargekart på + - 2%, det vil si at
8
verdien kan variere med to prosent
oppover eller to prosent nedover.
Fem streker
En resistor med fem streker er veldig lik
en med fire, men inneholder et ekstra
tall før multiplikatoren. I illustrajonen
på forrige side ser du at resistoren har
en gul, en blå og en svart strek. Dette
danner tallet 460.
Så ser vi på multiplikator-streken hva
man skal gange med. I illustrasjonen er
oransje, som betyr at vi må gange med
1000. Svaret blir 460 000 eller 460kΩ.
Den neste streken, toleransen, viser at
resistoren har en toleranse på + - 1%.
Seks streker
Har resistoren seks streker, fungerer
den helt likt som den med fem streker.
Den eneste forskjellen er at den har en
ekstra strek helt til høyre. Denne
streken viser temperatureffektiviteten
(eng: temperature coefficient), altså
hvordan temperaturer kan være med
på å endre den endelige verdien
på resistoren.
9
Temperatureffektivitet
Verdien av en resistor avhenger av lenden,
tverrsnittareal og motstanden i materialet den er
laget av. Men den angitte verdien av en resostor
kan egentlig sies å være ”så mange ohm ved en
bestemt temperatur”. Dette er fordi temperaturen på resistoren også påvirker verdien.
En endringer i motstanden på grunn av
temperatur er relativt liten innenfor en bestemt
rekkevidde. Dette er fordi produsenten har valgt
et materiale som er laget for å ikke påvirkes av
temperaturer. Men det hender at små temperaturendringer skjer. Disse endringene er så små
at de måles i ”deler per million” (eng: Parts Per
Million) (PPM).
Man kan skrive at en resistor har 50ppm/oC.
Med dette menes det at endringen i resistorens
verdi på grunn av temperaturendring på 1oC
ikke vil bære mer enn 50Ω for hver 1MΩ (eller
0,05Ω for hver 1kΩ).
Materialet resistoren er laget av, er med på å
bestemme mende PPM. Karbonfilmresistorer har
for eksempel vanligvis en temperatureffektivitet
på rundt 200 til 500ppm/oC.