Arduino-modellen «Uno»
**Arduino** er en plattform for prototyping av elektronikk basert på program- og maskinvare med åpen kildekode. Arduino er ment som et enkelt verktøy for kunstnere, designere og andre interesserte for å lage prototyper av mer fysisk karakter enn det man kan få til ved hjelp av en vanlig datamaskin. En Arduino kan for eksempel registrere og styre fysiske omgivelser og komponenter ved å brukes sammen med ulike sensorer og aktuatorer.

Historie
--------

Prosjektet begynte i Ivrea, Italia i 2005 med det mål å lage en anordning for å kontrollere prototypene til interaksjonsdesignstudenter på en billig måte. Prosjektet bygger på Wiring-plattformen, som igjen bygger på Processing og dets IDE-grensesnitt. Grunnleggerne Massimo Banzi og David Cuartielles oppkalte prosjektet etter Arduino d'Ivrea, byen Ivreas mest bedydningsfulle historiske figur. «Arduino» er et italiensk herrenavn med betydning «sterk venn». I mai 2011 er det beregnet å eksistere over 300 000 Arduinoenheter rundt om i verden.

Strid om merkevaren Ardunio har splittet det opprinnelige utviklermiljøet, med to ulike produkt/nettsider hhv arduino.cc og arduino.org og. Arduinos programvare vedlikeholdes av begge miljøer, men med forskjellige versjonsnummer. Begge har basis i samme åpen kildekode kretskort, ofte med mikrokontroller fra Atmel.

Maskinvare
----------

Et typisk Arduino-kretskort består av en 8-bits Atmel AVR mikrokontroller med tilhørende I/O-grensesnitt. Mer spesialiserte kort bruker også opp til 32-bits prosessorer som f.eks. Intel Curie eller Atheros AR9331 med Linux. Maskinvaren er tilpasset programmering og tilkobling til andre kretser. En vesentlig egenskap ved Arduino er det standardiserte oppsettet for tilkoblinger. Dette muliggjør en rekke uskiftbare tilleggsmoduler, kalt «shields». Dagens Arduino-kretskort programmeres for det meste via USB, men blåtann, USB-til-serieport og annet kan også benyttes. Kretskortet stiller mesteparten av I/O-pinnene til mikrokontrolleren til rådighet for eksterne kretser. Oppsettet varierer fra modell til modell. Eksempelvis har modellen «Uno» 14 digitale I/O-pinner og seks analoge input-koblinger. Disse pinnene er på toppen av kretskortet via 0,1 tommers hunnkoblinger. «Arduino Nano» har derimot hannpinner på undersiden av kretskortet for å kunne brukes med loddefrie koblingsbrett. Arduinoprosjekter kan både kjøres frittstående og kjøres fra datamaskin via f.eks. Flash, Processing eller MaxMSP. Designet av Arduino-kretskortene ligger fritt tilgjengelig under Creative Commons-lisens.

Programvare
-----------

Arduinos IDE er et multiplattformsprogram som er skrevet i Java, og bygger på utviklingsmiljøet til Processing og Wiring-plattformen. Utviklingsmiljøet er laget for å introdusere programmering for kunstnere, designere og andre som er uerfarne med programvareutvikling. Det inneholder et program for skriving og redigering av kildekode som har en rekke hjelpefunksjoner som skal gjøre det enklere å oppdage feil. Kompilering og opplasting til Arduino-kretskortet utføres fra samme program.

Et web-grensesnitt, en webside, er også tilgjengelig med oppdatert programvare og biblioteker. Det gjør det mulig å programmere uten å installere programvare på egen maskin.

Utviklingsmiljøet kommer med et C/C++-bibliotek kalt «Wiring» (etter prosjektet ved samme navn), som gjør mange vanlige input/output-operasjoner mye enklere. Arduinoprogrammer er skrevet i C/C++. GNU toolchain og AVR Libc brukes for å kompilere programmer og avrdude bukes for å laste opp programmene til Arduino-kretskortet.

Tillegg til programvaren, addon's, gjør det mulig også å programmere andre mikrokontrollere montert på andre kretskort enn Arduinos egne, f.eks. en wifi-kontroller som ESP8266 eller et Intel i686 kort som Edison. Om prosessorhastighet og minne er ønsket kan kort fra Teensy programmeres med en add-on til Arduinos IDE.

Et minimalt Arduino C/C++-program består av bare to funksjoner:

* *setup()* : Denne funksjonen kalles en gang når en skisse starter etter oppstart eller tilbakestilling. Det brukes til å initialisere variabler, inngangs- og utgangspinmodus og andre biblioteker som trengs i skissen.
* *loop()* : Etter at oppsettet *setup()* er blitt kalt, utføres funksjonsløyfen *loop()* gjentatte ganger i hovedprogrammet. Det styrer brettet til brettet er slått av eller tilbakestilt.

Et typisk nybegynnerprogram for en mikrokontroller er å styre en LED til å slå seg av og på. I utviklermiljøet til Arduino vil man da kunne skrive et program som dette:

```
#define LED\_PIN 13

void setup () {
 pinMode (LED\_PIN, OUTPUT); // enable pin 13 for digital output
}

void loop () {
 digitalWrite (LED\_PIN, HIGH); // turn on the LED
 delay (1000); // wait one second (1000 milliseconds)
 digitalWrite (LED\_PIN, LOW); // turn off the LED
 delay (1000); // wait one second
}

```

Kobler man nå en LED med den positive siden til en motstand på rundt 470 Ω mellom pinne 13 og den negative siden til «ground», vil den blinke i fase på ett sekund på og ett sekund av.

Dette programmet bruker funksjonene *pinMode()*, *digitalWrite()*, og *delay()*, som tilbys av de interne bibliotekene som er inkludert i IDE-miljøet. Programmet "blink" er vanligvis lastet inn i programvaren som et enkelt eksempel.

Se også
-------

* Micro Bit

Referanser
----------

1. ↑  «Prosjektets hjemmeside». arduino.cc.
2. ↑  Lahart, Justin (27. november 2009). «Taking an Open-Source Approach to Hardware». *The Wall Street Journal*. Besøkt 24. mars 2012.
3. ↑  Phillip Torrone (12. mai 2011). «Why Google Choosing Arduino Matters and Is This the End of "Made for iPod" (TM)?». makezine.com. Arkivert fra originalen Bruk av `|arkiv_url=` krever at `|arkivdato=` også er angitt (hjelp). Besøkt 24. mars 2012.  «Arkivert kopi». Arkivert fra originalen 10. desember 2011. Besøkt 24. mars 2012.
4. ↑  «Massimo Banzi tells us about a serious rift in the core Arduino team,» makezine.com
5. ↑   www.arduino.cc
6. ↑   Arkivert 27. juni 2017 hos Wayback Machine. www.arduino.org
7. ↑  «Today, both Atmel AVR 8-bit MCUs and Atmel 32-bit ARM®-based MCUs power a variety of Arduino’s easy-to-use boards» Arkivert 15. august 2015 hos Wayback Machine. www.atmel.com
8. ↑  Sammenligning av Ardiuno kretskort med tilhørende mikrokontroller www.arduino.cc
9. ↑  www.arduino.cc «Access the Online IDE ARDUINO WEB EDITOR Start coding online with the Arduino Web Editor, save your sketches in the cloud, and always have the most up-to-date version of the IDE,»
10. ↑  ESP8266 Thing Hookup Guide. Installing the ESP8266 Arduino Addon. learn.sparkfun.com
11. ↑  Teensy 4.0 Development Board www.prjc.com «Teensy 4.0 can be programmed using the Arduino IDE with Teensyduino add-on.»
12. ↑  Tutorial: Bare Minimum code needed (arduino.cc)
13. ↑  Documentation for function *setup* (arduino.cc)
14. ↑  Documentation for function *loop* (arduino.cc)
15. ↑  "Blink Tutorial". Arduino.cc.
16. ↑  Documentation for function *pinMode* (arduino.cc)
17. ↑  Documentation for function *digitalWrite* (arduino.cc)
18. ↑  «Documentation for function *delay* (arduino.cc)». Arkivert fra originalen 17. september 2017. Besøkt 18. desember 2017.

Eksterne lenker
---------------

* (en) Offisielt nettsted Rediger på Wikidata

* (en) Offisiell blogg Rediger på Wikidata

* (en) Mate-URL Rediger på Wikidata

* (en) Mate-URL Rediger på Wikidata

* (en) Arduino – kategori av bilder, video eller lyd på Commons Rediger på Wikidata
* Arduino på Twitter Rediger på Wikidata

* Arduino på Facebook Rediger på Wikidata

* Arduino på YouTube Rediger på Wikidata

* Arduino på GitHub Rediger på Wikidata

* Arduino på Flickr Rediger på Wikidata

|  |  |
| --- | --- |
| Oppslagsverk/autoritetsdata | GND **·** LCCN **·** BNF **·** BNF (data) **·** SUDOC **·** NKC **·** BNE
 |