Arduino elektronik 101
Arduinos är fantastiska små enheter och människor (Instructablers) har gjort några fantastiska saker med dem.
Jag är nyfiken. Jag vilja veta hur saker fungerar. För de nyfikna, kommer att detta Instructable försöka förklara några av Arduino elektronik.
Jag misstänker att många människor har byggt Arduino projekt men kunde inte få dem att arbeta. Jag hoppas att ge vissa kunskaper och färdigheter för att åtgärda maskinvaruproblem som fel vid kabeldragningen och dåliga komponenter.
Efter några Internet söka, hittade jag en elektronik tutorial som jag gillar och förtroende:
http://www.Ladyada.net/Learn/Arduino/index.html
"Denna handledning är av Limor Fried"
I själva verket, rekommenderar jag det till alla Arduino läsare. Det är viss överlappning av information men massor av multimedia och mer om programmering.
Så vem är jag? Jag är en lat gamla nörd (S.T.O.C.K.:S). Jag är inte en degreed ingenjör men jag har varit runt fältet elektronik i över 40 år börjar som ett elektronik tech i USAF. Jag tillbringade många år testa elektroniska system.
Arduino grunderna:
Som de flesta av er vet, är Arduinos baserade på en liten svart chip kallas en mikrokontroller. Detta är hjärtat och hjärnan hos Arduino. Du behöver inte en Arduino utan en. Det finns många varianter av Arduino mikrokontroller men de har alla samma funktioner. För närvarande är den mest populära för DIYers ATmega328. Se bild.
Mikrokontroller: En mikrokontroller är en CPU (central processing unit) med minne och interface kretsar inbyggt chip. I grund och botten CPU tar alla kommandon i programmet (skiss) (. PDE) och gör vad de säger den att göra. Märke att jag sade vad kommandona säga det att göra. Jag sa inte vad programmeraren vill att göra. Skriva ett framgångsrikt program talar om den CPU exakt vet vad du vill göra det i språket det .
Vanliga: Ja, ATmega328 kan alltid användas istället för ATmega168 som maskinvaran är exakt samma. ATmega168 får inte ersätta ATmega328 som det har mindre minne så större program inte kanske fungerar.
Technobabble: Resten av detta avsnitt gäller endast för nördar.
Enhet | Blixt | EEPROM | RAM-MINNE |
ATmega168PA | 16K Bytes | 512 byte | 1K Bytes |
ATmega328P | 32K Bytes | 1 K Bytes | 2K Bytes |
Vad betyder det? K står för kilo, en multiplikator som i det här fallet betyder multiplicera numret med 1024. Byte är bara en plats att lagra information (data). Detta är i princip den enda skillnaden mellan de två mikrokontroller.
Flash: är en typ av minne att lastrummen programinformation, även efter Arduino kopplas bort från makten. Samma program kommer att köras när som helst makt är återanvändas till Arduino. Detta är på samma sätt som USB-minnen och digital kamera kort behålla sin information.
EEPROM: är ett minne som också behåller information efter makt är avstängning. Det är olika från Flash som kan skrivas i programmet istället för själva programmet. Arduino instruktionerna EEPROM minne är EEPROM.read() och EEPROM.write().
Tip: Vara säker på att ha:
#include //in din sketch(program).
Begränsningen är, även i ATmega328, det finns bara 1024 byte så bara så mycket data kan lagras.
Tip: Förresten, fick jag aldrig detta att fungera. RAM: är också minne men det är flyktiga menande det kommer att försvinna när du stänger av strömmen. Skisser
använda den för att lagra tillfällig information som variabler. Vad är en variabel? Tja, är det något
som kan förändras. Exempel är temperaturen och tiden på dagen. Här är del av en skiss
som omvandlar en temperatur sensor läsa till grader C (Celsius) och grader F (Farhenheit).
float Vt=(float) sensorValue3Avg*5.0/1023.0;
float R =(5.0-Vt) * 10,0 / Vt;
float TinC=281.583*pow(1.0230,(1.0/R)) * pow(R,-0.1227)-150.6614;
flyta TinF = TinC * (9,0/5.0) + 32;
Alla dessa float variabler lagras i RAM och kommer att skrivas över nästa gång en Mätningstidpunkten och går förlorade när makten är avstängd.
Variablerna finns i princip bara etiketter för platser i RAM. Float variabler är en viss typ av variabel. Med den här etiketten vet skissen var du kan lagra värdet det vill eller hämta värdet lagrat på den platsen. Den specifika typen avgör hur mycket utrymme som behövs och hur man ska tolka informationen.
Förutom CPU, flash och RAM, ATmegas har interface kretsar byggdes:
Seriellt gränssnitt: detta tillåter Processorn att tala till datorn via en seriell port eller USB- och jag tror det är för att kommunicera över I2C. Detta är också hur det talar till seriell LCD-skärmar.
Analog till digital omvandlare (ADC): Detta gör ATmega konvertera analoga spänningar till digitala data (kommer att diskuteras i en annan Instructable).
PWM (pulse bredd modulering): kretsar att mata "analog" spänningar
Timers: för timing händelser, oftast används för att ange fördröjningar mellan programstegen, t.ex., blinkande lysdioder.
Om du någonsin har tittat på datablad på dessa ATmegas och förstå dem, bör då kanske du skriva detta i stället för mig.
Prefix: Det finns många brev bifogas elektroniska terminologi som kan vara förvirrande. E.g. 16mV, 10Kohms, 20uF. Dessa brev kallas prefix (och suffix) som är bara opinionsbildare till värdet. T.ex. 10Kohms är (10 gånger 1000) ohm eller 10 000 ohm. Se tabellen nedan.
Icke-väsentliga information: Tyvärr, om du pratar dator minne 1Kbyte är 1024 byte. Detta beror på att datorn tycker om att göra allt komplicerat. Så till dem K är 210. Megabyte kan: 1 000 000, 1 048 576 eller 1,024,000. Inte fråga, kolla upp det på Wikipedia.