Arduinos zijn verbazingwekkend weinig apparaten en mensen (Instructablers) enkele verbazingwekkende dingen mee hebben gedaan.
Ik ben benieuwd. Ik graag willen weten hoe dingen werken. Voor de nieuwsgierigen, zal dit Instructable proberen uit te leggen van enkele van de elektronica van de Arduino.
Ik vermoed dat veel mensen Arduino projecten hebben gebouwd, maar kon niet hen aan het werk. Ik hoop te bieden bepaalde kennis en vaardigheden om het oplossen van hardwareproblemen zoals bedrading fouten en slechte onderdelen.
Na enkele Internet zoeken, vond ik een elektronica-tutorial die ik graag en vertrouwen:
http://www.ladyada.net/Learn/Arduino/index.html
"Deze tutorial is door Limor Fried"
In feite, adviseer ik het aan alle lezers van de Arduino. Er is enige overlapping van informatie maar veel multimedia en meer over de programmering.
Dus wie ben ik? Ik ben een luie oude Geek (L.O.G.). Ik ben niet een degreed ingenieur, maar ik heb al rond het gebied van elektronica voor meer dan 40 jaar starten als een tech elektronica in de USAF. Ik bracht vele jaren testen van elektronische systemen.
Arduino Basics:
Zoals de meesten van u weten, zijn Arduinos gebaseerd op een kleine zwarte chip genoemd een microcontroller. Dit is het hart en de hersenen van de Arduino. U hoeft niet een Arduino zonder een. Er zijn vele smaken van de Arduino microcontroller maar ze hebben allemaal dezelfde functies. Momenteel is het meest populair voor de DIYers de ATmega328. Zie foto.
Microcontroller: Een microcontroller is een CPU (centrale verwerkingseenheid) met een geheugen en interface circuit ingebouwd in de chip. Kortom, de CPU neemt alle opdrachten in het programma (schema bijvoegen) (. PDE) en doet wat ze vertellen om te doen. Merk op dat ik zei wat de opdrachten vertellen om te doen; Ik heb niet gezegd wat de programmeur wil doen. Het schrijven van dat een succesvol programma is de CPU precies vertellen weet wat u wilt doen het in de taal het .
Veelgestelde: Ja, de ATmega328 kan altijd worden gebruikt in plaats van de ATmega168 zoals de hardware precies hetzelfde is. De ATmega168 mag niet de ATmega328 vervangen aangezien er minder geheugen zodat grotere programma's niet werken mogelijk.
Technobabbel: De rest van deze sectie is alleen voor Geeks.
Apparaat | Flash | EEPROM | RAM |
ATmega168PA | 16K Bytes | 512 bytes | 1K Bytes |
ATmega328P | 32K Bytes | 1 K Bytes | 2K Bytes |
Wat betekent dit? De K staat voor kilo, een multiplier die in dit geval betekent het getal te vermenigvuldigen met 1024. Bytes zijn slechts een plek voor het opslaan van informatie (gegevens). Dit is eigenlijk het enige verschil tussen de twee microcontrollers.
Flash: is een type geheugen dat bezit program informatie, zelfs nadat de Arduino is losgekoppeld van de macht. Hetzelfde programma wordt uitgevoerd wanneer de macht wordt toegepast op de Arduino. Dit is dezelfde manier USB-flashstations en digitale camerakaarten behouden hun informatie.
EEPROM: is geheugen dat ook informatie houdt nadat macht uitschakeling is. Het is verschillend van Flash, aangezien het kan worden geschreven door het programma in de plaats van het programma zelf. De instructies van de Arduino EEPROM geheugen te gebruiken, zijn EEPROM.read() en EEPROM.write().
Tip: Be sure to have:
#include //in your sketch(program).
The limitation is, even in the ATmega328, there is only 1024 bytes so only so much data can be stored. Tip: By the way, I never got this to work.RAM: is also memory but it is volatile meaning it will go away when you turn off power. Sketches use it to store temporary information such as variables. What is a variable? Well, it is something that can change. Examples are the temperature or the time of day. Here is part of a sketch that converts a temperature sensor reading to degrees C (Centigrade) and degrees F (Farhenheit). float Vt=(float) sensorValue3Avg*5.0/1023.0;
float R =(5.0-Vt) * 10.0 / Vt;
zweven TinC=281.583*pow(1.0230,(1.0/R)) * pow(R,-0.1227)-150.6614;
zweven TinF = TinC * (9.0/5.0) + 32;
Alle deze float variabelen worden opgeslagen in het RAM worden overschreven wanneer de volgende keer die een meting is genomen en gaan verloren wanneer de stroom is uitgeschakeld.
Variabelen zijn in principe alleen labels voor locaties in RAM. Float variabelen zijn een bepaald type variabele. Met dit label weet de schets waar te gaan voor het opslaan van de waarde die het wil of ophalen van de waarde die op die locatie zijn opgeslagen. Het specifieke type bepaalt hoeveel ruimte nodig is en hoe om de informatie te interpreteren.
Naast de CPU, flash en RAM, de ATmegas hebben interface circuit gebouwd in:
Seriële interface: hierdoor wordt de CPU om te praten met de PC via een seriële poort of USB- en ik denk dat het wordt gebruikt om te communiceren via I2C. Dit is ook hoe het communiceert met seriële LCDs.
Analoog naar digitaal converter (ADC): Hierdoor is de ATmega analoge spanningen omzetten in digitale gegevens (zal worden besproken in een ander Instructable).
PWM (puls breedte modulatie): circuits voor de uitvoer van de 'analoge' spanningen
Timers: voor timing van gebeurtenissen, meestal gebruikt om in te stellen van vertragingen tussen programmastappen, bijvoorbeeld knipperende LEDs.
Als u de gegevensbladen ooit op deze ATmegas gekeken heb en ze begrijpt, moet dan misschien je schrijven dit in plaats van mij.
Worden als voorvoegsel toegevoegd: Er zijn een heleboel brieven die zijn gekoppeld aan de elektronische terminologie die verwarrend kan zijn. Bijvoorbeeld 16mV, 10Kohms, 20uF. Deze brieven worden genoemd-(voorvoegsels en achtervoegsels) die zijn gewoon multiplicatoren op de waarde. 10Kohms is bijvoorbeeld (10 keer 1.000) ohm of 10.000 ohm. Zie de tabel hieronder.
Niet-essentiële Info: Helaas, als je praat computer geheugen 1Kbyte is 1024 bytes. Dit komt doordat de computer mensen willen alles ingewikkeld maken. Dus aan hen K is 210. Megabyte kan betekenen 1.000.000, 1.048.576 of 1,024,000. Niet vragen, check it out op Wikipedia.