Programmeren
De Arduino Uno kan geprogrammeerd worden met de (Arduino Software (IDE)). Selecteer “Arduino Uno uit het Tools > Board menu (volgens de microcontroller op uw board). Voor details, zie de referentie en tutorials.
De ATmega328 op de Arduino Uno is voorgeprogrammeerd met een bootloader waarmee u nieuwe code kunt uploaden zonder gebruik van een externe hardware programmeur. Het communiceert met behulp van de originele STK500 protocol (referentie, C header-bestanden).
U kunt ook omzeilen de bootloader en programmeer de microcontroller via de ICSP (In-Circuit Serial Programming) header met behulp van Arduino ISP of soortgelijke; zie deze instructies voor details.
De ATmega16U2 (of 8U2 in de rev1 en rev2 boards) firmware broncode is beschikbaar in de Arduino repository. De ATmega16U2/8U2 is geladen met een DFU bootloader, die kan worden geactiveerd door:
- Op Rev1-borden: het aansluiten van de soldeerjumper op de achterkant van het bord (in de buurt van de kaart van Italië) en vervolgens de 8U2 opnieuw in te schakelen.
- Op Rev2 of latere borden: er is een weerstand die de 8U2/16U2 HWB lijn naar massa trekt, waardoor het gemakkelijker wordt om hem in DFU mode te zetten.
U kunt dan Atmel’s FLIP software (Windows) of de DFU programmer (Mac OS X en Linux) gebruiken om een nieuwe firmware te laden. Of u kunt de ISP header gebruiken met een externe programmer (die de DFU bootloader overschrijft). Zie deze door gebruikers bijgedragen tutorial voor meer informatie.
Waarschuwingen
De Arduino Uno heeft een resettable polyfuse die de USB-poorten van uw computer beschermt tegen kortsluiting en overstroom. Hoewel de meeste computers hun eigen interne bescherming bieden, biedt de zekering een extra laag van bescherming. Als er meer dan 500 mA op de USB-poort wordt gezet, verbreekt de zekering automatisch de verbinding totdat de kortsluiting of overbelasting is opgeheven.
Verschillen met andere boards
De Uno verschilt van alle voorgaande boards doordat hij niet de FTDI USB-naar-serieel driver chip gebruikt. In plaats daarvan heeft het de Atmega16U2 (Atmega8U2 tot versie R2) geprogrammeerd als een USB-naar-serieel converter.
Voeding
Het Arduino Uno bord kan worden gevoed via de USB-aansluiting of met een externe voeding. De voedingsbron wordt automatisch geselecteerd.
Externe (niet-USB) voeding kan komen van een AC-naar-DC-adapter (wall-wart) of batterij. De adapter kan worden aangesloten door een 2,1 mm center-positieve stekker in de voedingsaansluiting van het bord te steken. Kabels van een batterij kunnen in de GND en Vin pin headers van de POWER connector worden gestoken.
Het bord kan werken op een externe voeding van 6 tot 20 volt. Bij een voeding van minder dan 7 V kan de pen 5V echter minder dan 5 volt leveren en kan de print instabiel worden. Bij gebruik van meer dan 12 V kan de spanningsregelaar oververhit raken en de printplaat beschadigen. Het aanbevolen bereik is 7 tot 12 volt.
De voedingspinnen zijn als volgt:
- Vin. De ingangsspanning voor het Arduino-bord wanneer het een externe voedingsbron gebruikt (in tegenstelling tot 5 volt van de USB-aansluiting of een andere gereguleerde voedingsbron). U kunt spanning leveren via deze pin, of, als het leveren van spanning via de power jack, toegang tot het via deze pin.
- 5V.This pin outputs een gereguleerde 5V van de regulator op het bord. Het bord kan van spanning worden voorzien via de DC power jack (7 – 12V), de USB connector (5V), of de VIN pin van het bord (7-12V). Spanning leveren via de 5V of 3.3V pinnen omzeilt de regulator, en kan uw bord beschadigen. We raden het af.
- 3V3. Een 3,3 volt voeding gegenereerd door de on-board regulator. De maximale stroomopname is 50 mA.
- GND. Ground pins.
- IOREF. Deze speld op de Arduino-raad verstrekt de voltagereferentie waarmee de microcontroller werkt. Een goed geconfigureerd schild kan de IOREF pin spanning lezen en de juiste stroombron selecteren of spanningsvertalers op de uitgangen inschakelen om te werken met de 5V of 3.3V.
Geheugen
De ATmega328 heeft 32 KB (met 0.5 KB bezet door de bootloader). Het heeft ook 2 KB SRAM en 1 KB EEPROM (dat kan worden gelezen en geschreven met de EEPROM bibliotheek).
Input en output
Zie de mapping tussen Arduino pinnen en ATmega328P poorten. De mapping voor de Atmega8, 168, en 328 is identiek.
PIN MAPPING ATmega328P
Elke van de 14 digitale pinnen op de Uno kan worden gebruikt als een in- of uitgang, met behulp van pinMode(), digitalWrite(), en digitalRead() functies. Ze werken op 5 volt. Elke pin kan 20 mA leveren of ontvangen als aanbevolen bedrijfstoestand en heeft een interne pull-up weerstand (standaard uitgeschakeld) van 20-50k ohm. Een maximum van 40 mA is de waarde die op geen enkele I/O pin mag worden overschreden om permanente schade aan de microcontroller te voorkomen.
Daarnaast hebben sommige pinnen gespecialiseerde functies:
De Uno heeft 6 analoge ingangen, gelabeld A0 t/m A5, die elk 10 bits resolutie bieden (d.w.z. 1024 verschillende waarden). Standaard meten ze van massa tot 5 volt, maar het is mogelijk om de bovenkant van hun bereik te veranderen met de AREF pin en de analogReference() functie. Er zijn nog een paar andere pinnen op het bord:
- AREF. Referentiespanning voor de analoge ingangen. Wordt gebruikt met analogReference().
- Reset. Breng deze lijn LAAG om de microcontroller te resetten. Typisch gebruikt om een het terugstellenknoop aan schilden toe te voegen die die op board.
Communication
The Arduino Uno heeft een aantal faciliteiten om met een computer, een ander Arduino-board, of andere microcontrollers te communiceren. De ATmega328 biedt UART TTL (5V) seriële communicatie, die beschikbaar is op de digitale pennen 0 (RX) en 1 (TX). Een ATmega16U2 op het bord kanaliseert deze seriële communicatie via USB en verschijnt als een virtuele com-poort voor software op de computer. De 16U2-firmware gebruikt de standaard USB COM-stuurprogramma’s, en er is geen extern stuurprogramma nodig. Nochtans, op Vensters, is een .inf dossier vereist. De Arduino-Software (IDE) omvat een periodieke monitor die eenvoudige tekstuele gegevens toestaat om naar en van de raad worden verzonden. De RX en TX LED’s op het bord zullen knipperen wanneer gegevens worden verzonden via de USB-naar-serieel chip en USB-verbinding met de computer (maar niet voor seriële communicatie op pinnen 0 en 1).
Een SoftwareSerial bibliotheek maakt seriële communicatie mogelijk op elk van de digitale pinnen van de Uno.
De ATmega328 ondersteunt ook I2C (TWI) en SPI communicatie. De Arduino Software (IDE) omvat een Wire-bibliotheek om het gebruik van de I2C-bus te vereenvoudigen; zie de documentatie voor details. Voor SPI-communicatie, gebruik de SPI library.
Automatic (Software) Reset
In plaats van het vereisen van een fysieke druk op de reset-knop vóór een upload, is de Arduino Uno board ontworpen op een manier die het mogelijk maakt om te worden gereset door software die draait op een aangesloten computer. Één van de hardware flow control lijnen (DTR) van de ATmega8U2/16U2 is verbonden met de het terugstellenlijn van ATmega328 via een 100 nanofarad condensator. Wanneer deze lijn wordt geassert (laag genomen), daalt de reset-lijn lang genoeg om de chip te resetten. De Arduino-Software (IDE) gebruikt dit vermogen om u toe te staan om code te uploaden door eenvoudig de uploadknoop in de interfacewerkbalk te drukken. Dit betekent dat de bootloader een kortere time-out kan hebben, omdat het zakken van DTR goed kan worden gecoördineerd met de start van de upload.
Deze opstelling heeft andere implicaties. Wanneer de Uno is aangesloten op een computer met Mac OS X of Linux, wordt hij gereset telkens als er een verbinding wordt gemaakt vanuit software (via USB). Gedurende de volgende halve seconde of zo, draait de bootloader op de Uno. Hoewel deze geprogrammeerd is om misvormde data te negeren (d.w.z. alles behalve een upload van nieuwe code), zal hij de eerste paar bytes data onderscheppen die naar het bord worden gestuurd nadat een verbinding is geopend. Als een sketch die op het bord draait eenmalig configuratie- of andere gegevens ontvangt bij de eerste start, zorg er dan voor dat de software waarmee het communiceert een seconde wacht na het openen van de verbinding en voordat deze gegevens worden verzonden.
Het Uno-bord bevat een trace die kan worden doorgeknipt om de auto-reset uit te schakelen. De pads aan weerszijden van het spoor kunnen aan elkaar worden gesoldeerd om het weer in te schakelen. Het is gelabeld “RESET-EN”. U kunt de auto-reset ook uitschakelen door een weerstand van 110 ohm van 5V aan te sluiten op de reset-lijn; zie deze forumdraad voor details.
Revisies
Revisie 3 van het bord heeft de volgende nieuwe mogelijkheden:
- 1.0 pinout: toegevoegd SDA en SCL pinnen die zich in de buurt van de AREF pin en twee andere nieuwe pinnen geplaatst in de buurt van de RESET pin, de IOREF die het mogelijk maken de schilden aan te passen aan de spanning die vanaf het bord. In de toekomst zullen de schilden compatibel zijn met zowel het bord dat gebruik maakt van de AVR, die werkt met 5V als met de Arduino Due die werkt met 3,3V. De tweede is een niet aangesloten pin, die is gereserveerd voor toekomstige doeleinden.
- Stronger RESET circuit.
- Atmega 16U2 vervangt de 8U2.