Arduino

**Arduino** kode irekiko plataforma elektroniko bat da, software eta hardware erabilerrazean oinarritua. Proiektu interaktiboak egiteko asmoa duen edonori zuzendua dago.

Arduino hardwarea aldez-aurretik muntatuta edo zuk-zeuk egin motako kitetan erosi daiteke. Era berean, diseinuari buruzko informazio asko eskuragarri dagoenez nahi duenak zerotik hasita Arduino bat -edo honen garapen bat- sortu dezake.

Proiektua mikrokontrolagailu plaken familia baten diseinuan oinarritzen da. Plaka hauek nagusiki SmartProjectsek mihiztatzen ditu Italian. Arduino plakek 8 biteko Atmel AVR mikrokontrolagailuak edo 32 biteko Atmel ARM mikroprozezadoreak erabiltzen dituzte.

Sistema hauek sarrera/irteera digital eta analogiko pin taldeak dituzte, eta beste hedapen plaka batzuetara edo zirkuitu elektronikoetara konektatu daitezke. Txartelak serie komunikaziorako interfazeak ditu, modelo batzuetan USB ataka barne, konputagailutik programatu ahal izateko. Mikrokontrolagailuak programatzeko, Arduinok Processing proiektuan oinarritutako programazio-ingurune (IDE) bat dauka, C eta C++ programazio lengoaiak erabili ditzakeelarik. Behin programatuta txartelak guztiz autonomoak izan daitezke.

Lehen Arduinoa 2005ean irten zen. Proiektuaren sortzaileek artista, hobbylari, ikasle, irakasle eta profesionalentzat sentsore eta eragingailuak erabiltzen dituen gailu interaktiboak sortzeko era erraz eta merke bat lortu nahi zuten. Hobbylari hasiberrien proiektuen adibide batzuk robot sinpleak, termostatoak eta mugimendu detektagailuak dira. Arduinoren malgutasun eta aukerak erakusten dituen beste proiektu garatuago adibide batzuk domotika proiektuak, 3D inprimagailuak, droneak, eta laborategietan sentsore datu bilketa eta tratamenduadira. 2014tik, Arduino New Yorkeko Arte Modernoaren Museoan dago gaur egungo diseinuan duen garrantziagatik.

Arduino aipatzerakoan askotan mikrokontrolagailuari buruz ibili arren, Arduino hitzak hardwarea, softwarea, garapen taldea, diseinu filosofia eta erabiltzaile komunitatearen talde espiritua besarkatzen ditu.
## Historia 
200px|thumb|Massimo Banzi, Arduinoren sortzaileetako bat
2002an Massimo Banzi, software arkitektoa eta interakzio diseinatzailea, Ivreako (Italia) *Interaction Design Institute Ivreara* (IDII) heldu zen, diseinu interaktiboa -batzuetan konputazio fisikoa bezala ezagutzen zen eremua- sustatzera. Baina aurrekontu murriztu eta klase ordu gutxirekin, aukera gutxi zituen. 

Banzik BASIC Stamp mikrokontrolagailua hartu zuen oinarri bezala, baina honek arazo bi zituen: ez zuen ikasle batzuek buruan zerabiltzaten proiektuetarako nahiko kalkulu potentzia, eta gainera modelo basikoak 100$ inguruko kostua zuen. Gainera Macintoshen exekutatu ahal zen zerbait nahi zuen, IDIIko diseinatzaileen artean sistema erabiliena baitzen. Gauzak honela, bere beharrizanak beteko zituen plaka beraiek egitea pentsatzen hasi zen.

Banzik MITean Processing garatu zuen lagun bat zeukan. Processingek programazio-ingurune IDE erabilerraz bat zeukan, eta esperientzia gutxiko erabiltzaileek ere bisualizazio konplexu eta ederrak egin zitzaketen. Banzik mikrokontrolagailuak kodifikatzeko antzerako zerbait egin ahal zen zerabilen buruan.

Hernando Barragan, IDII ikasle batek, norabide horretan lehen pausua eman zuen. Wiring deituriko plataforma bat sortu zuen, IDE erabilerraz eta zirkuitu plaka batez osatua. Baina Banzik oraindik sinpleago, errazago eta merkeagoa zen zerbait nahi zuen.

Banzi eta bere laguntzaileek kode irekiko softwarean sinesten zuten, eta nahiago zuten proiektua ahalik eta jende gehienari zabaltzea. Gainera IDII diruz eskas zebilen eta itxi egin behar zuten, eta taldekideek beraien proiektua galtzeko beldurra zeukaten.

Kode irekiko software modeloa hardwarearen nola aplikatu ahal zuten ikertuta, Creative Commons lizentzia erabiltzea erabaki zuten.

[300px|thumb|ezkerrera|Lehen prototipoa [2005ean egin zen. Oraindik ez zuen Arduino izena, izena urte horretan beranduago erabaki zuten]]
Plaka egiteko, 30$eko kostua jarri zuten kostu helburu bezala. Plaka berezia izatea ere nahi zuten, itxura erakargarria. Besteen plakak berdeak baziren, beraienak urdinak izango ziren; fabrikatzaile gehienek sarrera-irteeretan ekonomizatu nahi bazuten, hauek piloa edukiko zituzten. Azken ukitu bezala, plakaren atzealdean Italiako mapa txiki txiki bat gehitu zuten.

Taldeak pieza merke eta erraz bilatzekoetan oinarritutako produktua sortu zuen, erabiltzaileek, nahi izanez, euren kabuz plakak egin ahal zitzaten. ATmega328 mikrokontrolagailua erabili zuten. Arduinok gerora izan duen arrakasta lortzeko, erabaki klabe bat plaka *Plug and play* izan behar zela izan zen, erabiltzaileak plaka kaxatik atera, konputagailura konektatu eta berehala erabiltzeko modukoa.

Lehen 300 plakak IDIIko ikasleen artean banatu zituzten. Bakoitzak zerbait -nahi zuena- egiteko esan zitzaien, eta lehen proiektuak jaio ziren. Denbora gutxian beste batzuek ere plaka bat nahi zuten. Proiektua abian zen, baina oraindik izenik ez.

Arduino izena gau batean, herriko tabernan tragoxka bat hartzen zeudela erabaki zuten: tabernaren izenetik hartu zuten -*Bar di Re Arduino*-. Era berean tabernak izena Arduino Erregearengandik hartzen du, 1002tik 1014ra bitartean Italiako errege izan zena.

[400px|thumb|**Arduino** taldea 2008ko Arduino Summitean. Goian ezkerretik eskuinera: Dave Mellis ([1980,EEBB) eta Tom Igoe (1967,EEBB); Behean, ezkerretik eskuinera: Gianluca Martino (1973,Italia), David Cuartielles (1974,Espainia) eta Massimo Banzi (1968,Italia)]]
Laster zabaldu zen Arduino izena sarean, inongo marketin edo iragarkirik gabe. Tom Igoe, orduan New Yorkeko Unyvertsitateko irakasle eta gaur egun Arduinoren garapenaren taldekideetako bat, txundituta gelditu zen Arduinok elektronika ezagutzarik gabeko jendeari ematen zion erraztasunaz eta bere prezio merkeaz.

Arduinok Processing eta Wiringetik hartu zuen IDE erabilerrazari esker, aurretik ezagutza handirik ez zuen jendearentzat ere hardware mundua sartzen erraza egiten hasi zen.

Arduino zuk-zeuk egin mugimenduan indarra hartzen joan zen. 2011ko maiatzean Massimo Banzik 300.000 bat Arduino saldu direla kalkulatu zuen.

2013ko apirilean, David Cuartiellesen arabera, 700.000tik gora Arduino ofizial zeuden salduta, eta txartel ofizial bakoitzeko gutxienez klon edo deribatu bat zegoela estimatu zuen.

Momentu horretan, egunero 5.000 Arduino ofizial produzitzen ari ziren.

2015eko otsailean Arduino webgune ofizialean 19 plaka desberdin daude.

Arduino prototipoak sortzeko plataforma zabalduenetako bat bilakatu da munduan.

## Hardwarea 
Arduino hardware ofizialaren ezaugarriak Arduino webgune ofizialetik hartuak daude, 2015eko otsailean. 

Hauetaz aparte, Arduino Duek SAM3X8E mikrokontrolagailua dauka -32 biteko mikrokontrolagailua darabilen lehen Arduinoa da-, eta programazioa beste Arduinoekiko desberdina da.

Programa garatzeko prozesuan, konputagailuan programa idatzi, konpilatu eta mikrokontrolagailura igotzen da. Behin programaren garapena bukatuta, Arduinoa bere lana egiten hasten denean, komunikazioa ez da beharrezkoa. Mikrokontrolagailua itzali arren programak memorian jarraitzen du, eta berriro pizterakoan bere lana egingo du konputagailuarekin komunikatuta egon ala ez.

200px|thumb|ezkerrera|Hedapen konektoreek kableriaren konexioa errazten dute. Soldatzea ez da beharrezkoa.
Sarrera/irteerei dagokienez, gehienek pinak hedapen konektoreetan dituzte ezarrita. Irakaskuntzarako, prototipoak lantzeko edo proiektu desberdinetan berrerabiltzeko egokiak dira. Hedapen konektoreetan gainera, hedapen plakak ezarri daitezke. Beste batzuk -Arduino Pro eta Pro Mini tartean- pinen tokian zuloak dituzte, bertan aukeratutako pin mota ezarri daiteke edo soldatzea zuzenean plakan egin daiteke. Hauek prototipo bakarrean erabiltzeko edo erabilpen profesionalerako egokiak dira.

Arduino batzuk zeregin edo ezaugarri espezifikoekin diseinatu dira: Arduino Mega sarrera/irteera asko behar dituztenentzat; Arduino Micro, Mini eta Nano mikrokontrolagailu plaka prototipo-plakan (*breadboard*) jartzeko, edo espazioa murriztua dagoen tokietan ezartzeko; Arduino Ethernet sarean zerbitzari bezala edo beste sare eginkizun batzuk egiteko; Arduino BTk bluetootha dauka; Arduino Fio wireless bidez programatu daiteke; Arduino Yunek WiFi txipa dauka eta honetan Linux banaketa bat dauka txertatuta; Arduino Lilypadak jantzietan txertatzeko; eta Arduino Robot, gurpilak eta sentsoreak txertatuta dituelarik, robot proiektuetarako.

Barnealdean, Arduino mikrokontrolagailu guztiak RS-232 serie konexioarekin programatzen dira. Hau inplementatzeko era plaka modeloaren arabera egiten da. Arduino Serie txartelek RS-232 maila TTL mailara egokitzen duten zirkuitu bat daukate. Egungo Arduino plaka gehienak USB bidez programatzen dira, hauek FTDI FT232 bezalako USB-serie egokigailu bat daukate. Modelo batzuk, Arduino Miniak edo Boarduino ez ofizialak adibidez, USB-serie egokigailu edo kable desmuntagarria, Bluetooth-a edo beste metodoen bat erabiltzen dute.
#### Arduino Uno 
200px|thumb|eskuinera|Arduino Uno R3
Arduino Uno 2011ko irailak 25ean aurkeztu zen.
* Hardware ofiziala: Arduino wegune ofizialean aurkezten den harwarea da, Arduino logoa dauka, eta fabrikatzaileek diru kopuru txiki bat ematen dio Arduinori hauek fabrikatzearren, horrela proiektua bizirik mantentzen delarik. 2013ko otsailean hiru fabrikatzaile baimendu daude: *SmartProjects* Italian, *Sparkfun* Estatu Batuetan eta *DogHunter* Taiwanen/Txinan.
* Klonak: Arduino txartelen erreplika ia berdinak, ez dute Arduino logoa erabiltzen. Normalean *Ardu-zerbait* edo *Zerbait-duino* bezalako izenak hartzen dituzte. Legea errespetatzen dute. Txartel ofizialen aldean, hauen salmentak ez du Arduino proiektua ekonomikoki laguntzen.
* Deribatuak: Arduino hardwarearen diseinua oinarritzat harturik, ezaugarriren bat gehitzen die diseinuei, askotan merkatu zehatz batera zuzenduta. Hauek Arduino proiektuaren hazkundean laguntzen dute.
* Arduino-bateragarriak: Arduino-bateragarri bezala aurkezten dira, askotan Arduino proiektuaren bultzada aprobetxatzeko, baina ez dute bateragarritasun maila handirik.
* Faltsifikazioak: legea errespetatu gabe, txartela klonatu eta Arduino Logoa erabiltzen dutenak, erreplika (ia) berdinak eginez.
### Prototipo plakak (*Breadboards*) 
**Prototipo plakak** -ingelesez *breadboards* edo *solderless breadboards*-, **Arduino** proiektuan erabiltzen diren osagai elektroniko eta konexio kableak era errazean konektatzen laguntzen duten plaka batzuk dira.

Izena lehenagoko garaietatik datorkie, zuk-zeuk egin motako elektronika prototipoak egiteko askotan sukaldeko egurrezko xafla erabiltzen baitzen, bertan iltzeak josi eta hauetara osagai elektroniko eta kableak lotuz.

Osagai elektronikoak, hauen arteko kableak eta Arduinora joango diren kableak prototipo plakan ezartzen dira. Ez da beharrezkoa soldatzea. Erabilitako kable eta osagaiak, eta prototipo plaka bera proiektu berriak egiteko berrerabili daitezke.

Prototipo plakek proiektuen prototipoak garatzeko balio dute. Hasiberrientzat ere oso egokiak dira, proba desberdinak egin eta osagaien portaera ikasteko. Mundu profesionalean, testak egiteko balio dute, zirkuitu integratu berriak probatzeko edo arazoak ematen dituen osagaiak probatzeko, adibidez.

400px|thumb|ezkerrera|Prototipo plaka
Tamaina desberdinetako prototipo plakak badaude ere, orokorrean denek dituzte ezaugarri batzuk.
* Plakak zulo batzuk ditu. Bertan osagai elektronikoak, kableak edo zirkuitu integratuak txertatu daitezke.
* Plakaren azpian, begi-bistatik kanpo, zuloak taldeka elektrikoki konektatzen dituen metal xafla batzuk daude. Xafla hauek klip batzuk dituzte zulotxoetan, bertan zerbait konektatzerakoan eutsi egingo duena.
* Osagai baten terminala -edo kable bat- zulotxoan sartzen denean, bere taldeko zulotxoei elektrikoki konektatuta gelditzen da.
* Lerro bakoitzak zulo talde bi ditu - irudian (*abcde*) eta (*fghij*)-. Zulo bakoitza bere taldekoekin dago konektatuta -*a* zuloa *b*-rekin konektatuta dago, baina *f*-rekin ez-.
* Lerro desberdinetako zuloak ez daude elkar konektatuta -*18* lerroko *a* zuloa ez dago *19* lerroko *a* zuloarekin konektatuta.
* Prototipo plaka oso txikia ez denean, lerro horizontalen aldamen bakoitzean lerro bertikal pare bat egoten da, bata gorriz eta bestea urdinez -edo beltzez-markatua. Lerro bertikal bakoitzeko zuloak beraien artean konektatuta daude.
* Lerro hauek elikadura lerro bezala erabiltzen dira. Lerro gorrira (+ marka dauka) elikadura positiboa konektatzen da, eta urdinera (- markarekin) negatiboa. Honek elikadura duen zulo asko edukitzea ahalbidetzen du. Kontutan hartu behar da aldamen bateko errail positibo edo negatiboa ez dagoela beste aldekoarekin konektatuta.
* Bertikalki, plakaren erdian, plaka alde bitan banatzen duen "pitzadura" bat dago. Pitzadura hau DIP motako txipak erabili ahal izateko da. Txipa erdian jartzen da, pin talde bakoitza aldamen batean gelditzen delarik -*e* eta *f* zutabeak-, honela aldamen bateko pinak ez du beste aldamenekoarekin kontakturik.
* Txarteleko lerro eta zutabeetako zenbaki eta letrek ez dute eginkizunik, laguntzarako baino ez dira. 

Hedapen plaka batzuk, ez guztiek, plaka nagusiaren kanpoko profil berbera dute. Batzuk, gainera, azpialdean Arduinoaren hedapen konektoreetara konektatzen diren pinak edukitzeaz gain, goialdean Arduinoak dituen hedapen konektore berdinak dauzkate. Honela hedapen plakak erabili ez dituen Arduinoren sarrera/irteera pinak erabiltzen jarraitu daiteke, edo hedapen plakaren gainean beste hedapen plaka bat ezarri daiteke.

Beste hedapen plaka batzuk ez dute espazio askorik behar, eta Arduinoaren hedapen konektoreetako pin batzuk bakarrik okupatzen dituzte, besteak libre utzita. Badaude Arduinoa bera baino nahiko zabalagoak dire hedapen plakak ere.

Hedapen konektoreek arazo bat daukate: Hedapen konektoreen pinen arteko espazioa 0,160 hazbetekoa da, pinaren erditik hurrengo pinaren erdira nehurtuta, eta honek prototipo plaken saretarekin -0,100 hazbeteko banaketa pin eta pin artean- eta beste prototipo tresna batzuekin bateraezinak egiten ditu. Aberrazio hau urteetan zehar mantendu da jarraitasunaren alde, kexa ugari egon bada ere. Argumentua, arazoa konpontzea erraza bada ere, honek praktikan jada existitzen diren plaka asko baliogabe utziko zituela da, hauen erabilgarritasunaren balio handi bat berrerabilgarritasunean dagoenean.

#### Arduino hedapen plaka ofizialak 
Arduino hedapen plaka ofizial berriek **Arduino Uno** 1.0 pin antolamendua daukate. Arduino Unora konektatzen dira, eta batzuk beste modelo batzuetara ere konektatu daitezke.
* **Arduino GSM Shield**: Arduinoa Internetera konektatzen du GPRS sarearen bitartez -SIM txartela ezarri behar zaio-. Ahots deiak ere egin daitezke -mikrofono eta bozgorailua konektuta behar zaizkio-, eta SMS mezuak bidali edo jaso. GSM liburutegia erabiltzen du, eta AT komando bidez komunikatu daiteke Arduino plakarekin. Arduino Mega, Mega ADK eta Leonardorekin bateragarria.
* **Arduino Ethernet Shield**: Arduinoa Ethernet sarera konektatzen du. RJ45 konektorea dauka, eta PoE modulua gehitu al zaio. Ethernet liburutegia erabiltzen du Internet konexioak programatzeko. MicroSD txartel irakurgailua dauka, sarean fitxategiak zerbitzatzeko erabili daitekeena. Arduino Megarekin bateragarria.
* **Arduino WiFi Shield**: Arduinoa Wi-Fi bitartez Internetera konektatzen du. WiFi liburutegia erabiltzen du Internet konexioak programatzeko. MicroSD txartel irakurgailua dauka, sarean fitxategiak zerbitzatzeko erabili daitekeena. Arduino Megarekin bateragarria.
* **Arduino Wireless SD Shield**: Arduinoarekin haririk gabe komunikatzea ahalbidetzen du. Konmutagailu baten bitartez, serie-usb konexioaren ordezko bezala erabili daiteke, edo komandoak igortzeko eran ezarri. SD txartela ezartzeko erretena dauka.
* **Arduino USB Host Shield**: Honen bitartez USB gailu bat Arduinora konektatu daiteke.
* **Arduino Motor Shield**: Honen bitartez Arduinoak korronte zuzeneko motor bi erabili ahal ditzake, bakoitzaren abiadura eta norabidea era independentean kontrolatuz. Beste ezaugarri batzuen artean, motor bakoitzaren korrontea neurtu daiteke. TinkerKitekin bateragarria da. Kanpoko elikadura behar du, AC-DC egokigailu edo bateria bitartez.
* **Arduino Wireless Proto Shield**: **Arduino Wireless SD Shield**: Arduinoarekin haririk gabe komunikatzea ahalbidetzen du.
* **Arduino Proto Shield**: prototipoak egiteko, bertan osagai elektronikoak soldatu daitezke, edo prototipo plaka txiki bat ezarri.
### Kitak 
Merkatuan Arduino kit desberdinak aurkitu daitezke. Talde bitan banatu daitezke: hasiberrientzako kitak eta kit espezializatuak.

Hasiberrientzako kitak, orokorrean, hurrengoaz osatzen dira:
* Arduino plaka bat -orokorrean **Arduino Uno**- edo plaka bateragarri bat.
* Sarrera gailuak: *switch*ak, sentsoreak...
* Irteera gailuak: LEDak, serbomotoreak...
* Prototipo plaka eta kableak.
* Batzuetan, gida liburua.
Arduinoren kit ofiziala Arduino Starter Kit  da. Massimo Banzik idatzitako liburua dauka, 15 proiekturekin. Kitak proiektu hauek egiteko beharrezko materiala dauka. Interneten proiektu hauen bideotutorialak daude eskuragai. 

Kit espezializatuak proiektu zehatz baterako edo proiektu mota zehatz baterako beharrezkoa den materiala dakartenak dira. Hauen adibide batzuk 3d inprimagailuak egiteko kitak edo droneak egiteko kitak dira.

## Softwarea 
### Arduino garapen-ingurunea (IDE) 
**Arduino** programazio-ingurunea (IDE) Javan idatzita dago, Processing eta beste kode irekiko software batzuetan oinarritua. Windows, Mac OS eta Linux sistemetan exekutatu daiteke. Bertsio berriena 1.8.5 da.

Programazio-ingurunea kodea idazteko testu-editorea, mezuentzako area, testu kontsola, funtzio erabilienentzako botoiak dauzkan tresna-barra eta menu batzuekin osatua dago. **Arduino** hardwarearekin konektatzen da programak kargatu eta hauekin komunikatzeko.

Arduinoan exekutatzeko idatzi den programa edo kodea *sketch* deitzen da. *Sketchak* testu editorean idazten dira, eta *.ino* luzapena erabiltzen dute -1.0 aurreko IDE bertsioek *.pde* luzapena erabiltzen zuten-. Testu editoreak ebaki/kopiatzeko eta bilatu/aldatzeko aukera dauka. Testu kontsolan IDEaren testu irteera ikusten da, errore mezuak eta beste informazio batzuk. Azpian eskuinaldean konektatua dagoen plaka eta serie ataka ikusten dira. Botoiekin programak egiaztatu eta kargatu, *sketchak* sortu, ireki eta gorde, eta serie monitorea irekitzen da. Programazioa errazten duten botoi garrantzitsu bi daude:
* Egiaztapen botoiak idatzitako kodea aztertu eta sintaxi erroreak markatzen ditu.
* Konprobazioan errorerik egon ez bada, programa kargatzeko botoia klikatuaz *sketcha* konpilatu eta Arduinoan kargatzen da. 
### Arduino programazio lengoaia 
**Arduino** *sketchak* C edo C++en idazten dira. C estandarreko funtzio guztiak eta C++eko batzuk erabil daitezke.

Arduino programazioaren lengoaiaren egitura nahiko sinplea da. Bere barruan instrukzioak gordetzen dituzten bi funtzio nagusitan banatzen da: `void setup()` eta `void loop()`.

`setup()`: Programan exekutatzen den lehen funtzioa da, eta behin bakarrik exekutatzen da. Funtzio honetan hurrengoa egiten da:
* programan erabiliko diren aldagaiak deklaratu
* `pinMode()` funtzioa erabiliz, pinei beren egitekoa finkatu: edo sarrera (INPUT) edo irteera (OUTPUT).
* Serie-komunikazioak abiatu. `serial.begin(abiadura baudio/s)`

`loop()`: Programan ondoren exekutatzen den funtzioa da. Funtzio honen kodea behin eta berriz exekutatzen da, bukaerarik gabe. Funtzio hau da Arduino programa guztien nukleoa, eta berak egiten du lanik handiena. Hemen doaz idazketa, irakurketa, konparazio, eragiketa eta antzeko akzio guztiak.

#### Arduino programa adibide bat 
Arduinorentzat programa tipiko bat -Arduinoren kaixo mundua izango litzatekeena-, LED bat etengabe piztu eta itzaltzen duena da. Arduino IDEko adibide basikoen artean dator *led blink* izenarekin.

Erabiltzaileak garapen inguruneko adibidea kargatu, edo eskuz idatz dezake. Itxura hau dauka:

```c
#define LED_PIN 13

void setup () {
  pinMode (LED_PIN, OUTPUT); // 13. pina irteera bezala ezarri
}

void loop () {
  digitalWrite (LED_PIN, HIGH); // piztu LEDa
  delay (1000); // itxaron segundo 1 (1000 milisegundo)
  digitalWrite (LED_PIN, LOW); // itzali LEDa
  delay (1000); // itxaron segundo 1
}
```

Adibide honetan, `setup ()` atalean 13 pina irteera bezala konfiguratzen da, eta `loop ()` atalean, LEDa piztu, segundo bat -1000 milisegundo- itxaron, LEDa itzali eta beste segundo bat itxaroten duen begizta definitzen da.

Arduino gehienek -Arduino Unok tartean- LED bat eta erresistentzia bat daukate txartelean bertan txertatua, 13. irteera GNDra konektatzen duena. Txartela testatzeko oso ondo dator: Arduinoa konputagailura konektatu, IDEan programa hau idatzi edo kargatu, eta programa exekutatzerakoan txarteleko LEDa keinuka hasiko da, beste osagai elektronikorik erabili behar izan gabe.

#### Arduino programazio erreferentzia 
Arduino programazioa hiru atal nagusitan banatzen da: egitura, aldagaiak, eta funtzioak. C estandarreko funtzio guztiak eta C++eko batzuk erabil daitezke. Erreferentzia osoa webgune ofizialean aurkitu daiteke.

Hemen erreferentzia laburbildua aurkezten da:
* EGITURA
** Funtzio nagusiak:
*** `setup()`: *sketch*a exekutatzerakoan funtzio hau deitzen da. Aldagaiak, pin moduak (sarrera/irteera), liburutegiak, etab. abiarazten ditu. Setup funtzioa behin bakarrik exekutatzen da, Arduinoa piztu edo berrezarri ondoren.
*** `loop ()`: setup() funtzioak hasierako balioak ezarri ondoren, loop() funtzioa behin eta berriz exekutatzen da. Funtzio honetan Arduino plakak egingo beharreko lana kontrolatzen duten aginduak doaz.
** Kontrol egiturak
*** baldintzak: `if`, `if...else`, `switch case`
*** begiztak: `for`, `while`, `do...while`
*** adarkatze eta saltoak: `break`, `continue`, `return`, `goto`
** Sintaxia:
*** mugatzaileak: `;`, `{}`
*** iruzkinak: `//`, `/**/`
*** goiburuak: `#define`, `#include`
** Eragile aritmetikoak: `=` balioa eman, `+` batuketa, `-` kenketa, `*` biderketa, `/` zatiketa, `%` modulua.
** Konparazio eragileak: `==` berdina, `!=` desberdina,  txikiagoa, `>` handiagoa,  txikiago edo berdina, `>=` handiago edo berdina.
** Eragile boolearrak: `&&` eta, `||` edo , `!` ez
** Erakusle atzipen (*pointer access*) eragileak: `*`, `&`
** Bit eragileak: `&` eta, `|` edo, `^` ala, `~` ez,  bit desplazamendua ezkerrera, `>>` bit desplazamendua eskuinera.
** Eragile konposatuak: `++` gehikuntza, `--` gutxikuntza, `+=` batuketa konposatua, `-=` kenketa konposatua, `*=` biderketa konposatua, `/` zatiketa konposatua, `&=` bit mailako eta konposatua, `|=`, bit mailako edo konposatua.
* ALDAGAIAK
** Konstanteak:
*** `HIGH | LOW `: Pin bat *pinMode ()* funtzioarekin sarrera bezala ezarri bada, *digitalRead ()* funtzioarekin deitzerakoan Arduinoak *HIGH* bueltatuko du pineko sarrera tentsio maila altua bada, *LOW* baxua bada -5Vetan lan egiten duten txarteletan 3Vtik gora *HIGH*, 3.3Vetan lan egiten dutenetan 2Vtik gora-. Pina irteera moduan ezarrita badago, *digitalWrite ()* funtzioarekin pina 5V/3.3Vtan -*HIGH*- edo 0Vtan -*LOW*- ezartzen da.
*** `INPUT | OUTPUT | INPUT_PULLUP`: pinaren erabilpen elektrikoa, *pinMode ()* funtzioarekin ezartzen da. *INPUT*ekin, pina inpedantzia altuko sarrera bezala ezartzen da. *Pull-up* edo *pull-down* erresistentzia bat -10K ohmeko egokia da- behar da. *INPUT_PULLUP*ekin, pina sarrera bezala ezartzen da, eta txertatutako *pull-up* erresistentzia erabiltzen du. *OUTPUT*ekin pina irteera bezala ezartzen da.
*** `LED_BUILTIN`: plakan txertatutako LEDaren pin zenbakia, plaka gehieneatan 13a.
*** `true | false `: *false* balioa 0 denean, *true* balioa 1 edo 0 ez dein edozein balio denean.
*** konstante osoak: normalean konstante oso hamartar moduan tratatzen dira, baina notazio bereziarekin bitar, zortzitar edo hamaseitar bezala erabili daitezke.
*** koma mugikorreko konstanteak: *.005* eran idatzi daitezke, edo aukeran notazio zientifikoa erabili daiteke: * 2.34E5* edo *67e-12* baliozkoak dira.
** Datu motak: `void`, `boolean`, `char`, `unsigned char`, `byte`, `int`, `unsigned int`, `word`, `long`, `unsigned long`, `short`, `float`, `double`, `string` (char *array*a), `String` (objetua), `array`
** Konbertsioa: funtzio hauek argumentu bezala edozein motako aldagai bat hartu eta nahi den motara eraldatuta bueltatzen dute: `char ()`, `byte ()`, `int ()`, `word ()`, `long ()`, `float ()`
** Aldagaien eremua (*scope*): Aldagai globala programa baten edozein funtziotan ikusi daiteken aldagaia da. Aldagai lokala deklaratu den funtzioan bakarrik dago ikusgai. Arduino ingurunean, funtzio batetik kanpo deklaratutako edozein aldagai aldagai globala da.
** Aldagaien kualifikatzaileak:
*** `static`: Funtzio batentzat bakarrik ikusgai diren aldagaiak sortzeko erabiltzen da. Aldagai lokalak funtzio bat deitzen den bakoitzean sortu eta deuseztatzen diren bitartean, aldagai estatikoek funtzioaren deien artean balioa gordetzen dute. Aldagai estatikoak funtzioa deitzen den lehen aldian bakarrik sortu eta abiarazten dira.
*** `volatile`
*** `const`: Aldagai bat konstantea izan dadin. Konstanteak sortzeko *const* edo *#DEFINE* erabili daiteke, orokorrean *const* aukeratzen da.
** Utilitateak: `sizeof ()`, `PROGMEM`
* FUNTZIOAK
** Sarrera/irteera digital funtzioak:
*** `pinMode (pina, MODUA)`: pin bat sarrera (*INPUT*), txertaturiko *pull-up*dun sarrera (*INPUT_PULLUP*) edo irteera (*OUTPUT*) bezala ezartzen du.
*** `digitalWrite(pina, BALIOA)`: *pinMode ()* funtzioaz pina irteera bezala ezarri bada, tentsio maila ezartzen da: 5V/3.3V *HIGH* balioarentzat, 0V *LOW*rentzat. Pina sarrera bezala ezarri bada, txertatutako *pull-up* erresistentzia aktibatu (*HIGH*) edo desaktibatzen (*LOW*) du.
*** `digitalRead(pin)`: pin baten maila irakurri eta maila altua (*HIGH*) edo bajua (*LOW*) den ematen du.
** Sarrera/irteera analogiko funtzioak:
*** `analogReference (MOTA)`: sarrera analogikoetako erreferentzia tentsioa konfiguratzen du: *DEFAULT*: lehenetsia. 5V edo 3.3V, Arduinoaren lan tentsioaren arabera; *EXTERNAL*: AREF pinean ezarritako tentsioa (0-5V bitartean)
*** `analogRead (pin)`: pin bateko sarrera tentsioa irakurri, eta 0 (0V) eta 1023 (5V edo AREF) arteko balio bat ematen du. Irakurketa egiteko 100 mikrosegundo behar ditu, beraz irakurketa abiadura azkarrena 10000 irakurketa/segundoko da.
*** `analogWrite (pina, balioa)`. Pin batean irteera tentsioa (PWM) ezartzen du. LED baten dizdira aldatzeko edo motore baten abiadura aldatzeko erabil daiteke. Arduino Duek DAC pare bat ditu, benetako irteera analogiko bezala erabili daitezkeenak.
*** Arduino Duen bakarrik: `analogReadResolution ()`, `analogWriteResolution ()`
** Sarrera/irteera funtzio aurreratuak: `tone (pina, maiztasuna, [iraupena_ms])`, `noTone (pina)`, `shiftOut (datuPina, clockPina, bitOrdena, balio)`, `shiftIn (datuPina, clockPina, bitOrdena)`, `pulseIn (pina, balioa, [itxaron_us])`
** Denbora funtzioak:
*** `millis ()` Arduino programa exekutatzen hasi denetik pasatu diren milisegundo kopurua ematen du. 50 egun inguru pasatutakoan 0ra itzultzen da.
*** `micros ()` Arduino programa exekutatzen hasi denetik pasatu diren mikrosegundo kopurua ematen du. 70 minutu inguru pasatutakoan 0ra itzultzen da.
*** `delay (ms)` Programaren exekuzioa emandako milisegundo kopuruan pausatzen du.
*** `delayMicroseconds (us)` Programaren exekuzioa emandako mikrosegundo kopuruan pausatzen du.
** Matematika funtzioak: `min (x,y)`, `max (x,y)`, `abs (x)`, `constrain (x,a,b)`, `map (balio, fromLow, fromHigh, toLow, toHigh)`, `pow (berrekizun,berretzaile)`, `sqrt (x)`
** Trigonometria funtzioak: `sin (rad)`, `cos (rad)`, `tan (rad)`
** Zorizko zenbaki funtzioak: `randomSeed (hazia)`, `random ([min], max)`
** Bit eta byte funtzioak: `lowByte (x)`, `highByte (x)`, `bitRead (x,n)`, `bitWrite (x,n)`, `bitSet (x,n)`, `bitClear (x,n)`, `bit (n)`
** Kanpoko etendurak: `attachInterrupt (etendura, funtzioa, modua)`, `detachInterrupt (etendura)`
** Etendurak: `interrupts ()`, `noInterrupts ()`
** Komunikazioa:
*** Serie komunikazioa: Arduino txartela konputagailuarekin edo beste gailu batzuekin komunikatzeko: `serial.begin (abiadura_baudio, [konfigurazioa])`, `serial.available ()`, `serial.read ()`, `serial.flush ()`, `serial.print (balioa, [formatua])`, `serial.println (balioa, [formatua])`, `serial.write (balioa/buffer,luzera)`
** USB funtzioak (Arduino Leonardo eta Arduino Duen bakarrik): sagua eta teklatua kontrolatzen dituen funtzioak.
### Komunikazioa beste gailu batzuen softwarearekin 
Arduino serie kanaletik komunikatzen da, eta serie kapazitateak dituen beste edozein gailurekin komunikatu daiteke, beste gailuak darabilen softwarea edozein bada ere.

Honetarako aukera bi daude: bat Arduinoren serie ataka erabiltzea. Bestea, kanal hori programaziorako mantentzea -eta IDEaren serie monitorearentzat-, eta beste pin pare bat erabiltzea kanpoko gailuari dedikatuak.

Programa batzuk ez dute natiboki serie gaitasunik. Hala ere, "itzultzaile" lanak egingo dituen software bitartekari bat erabiliz, Arduino eta beste gailuaren softwarearen arteko komunikazioa posiblea da.

File:Fritzing breadboard view.jpg | Prototipo bista
File:Fritzing schematic view.jpg | Eskema bista
File:Fritzing PCB view.png | PCB bista
File:Arduino servo sweep.svg | Fritzingekin sortutako eskema bat

#### Minibloq 
Minibloq Arduino eta beste plataforma batzurentzako kode irekiko garapen grafikoko ingurune bat da.  Helburu nagusia programazio irakaskuntzan laguntzea da.  Programazioa blokeak gehituz egiten da, sintaxi erroreak saihestuz.

File:MinibloqBlink.png|Keinukaria: blokeak eta kodea
File:SimpleCounterSerialOut.png|Kontadore sinplea, serie irteerarekin
File:ToneWithVariables.png|Frekuentzia desberdindun tonoak burrunbagailuarekin
File:SpritesHeart.jpg|LED matrizeetarako irudiak.
File:AnalogSensorsSetMotor0SpeedSensor0.png|Motore baten abiadura aldaketa sentsore analogiko batekin.

#### S4A (Scratch for Arduino) 
Scratch MITen sortutako kode irekiko software bat da, programazioan hasteko pentsatua. Istorio interaktiboak, joko eta simulazioak era errazean sortzeko pentsatua dago. Scratchekin garatutako programak objektuz osatzen dira, objektu hauengan eragin daitekeelarik: objektuek mugitu, forma eta kolorea aldatu, eta beraien artean eta erabiltzaileekin elkar eragina eduki dezakete.

S4A -*Scratch for Arduino*- Scratchen modifikazio bat da, Cornellako Citilaben sortua. Modifikazio honek programari Arduinoarekin informazioa elkartrukatzen uzten dio, Arduinoren sarrerak irakurri eta irteerak aktibatu/desaktibatu ditzakeen funtzio -objektu- batzuk barneratzen baititu. 

S4Ak MIT lizentzia librea dauka, eta Windows, Linux eta Mac bertsioak daude. HiS4A HTTP bitartez S4Arekin komunikatu daitekeen Android programa sinple bat da.

Fitxategi:InterfazScratch.png| **Scrach** interfazea
Fitxategi:S4a ubuntu euskera.png| **S4A** -***Scratch for Arduino***- Ubuntun, euskaraz
Fitxategi:S4a ubuntu arduino duemilanove.png| Arduino Duemilanove S4An
Fitxategi:S4A Arduino LED keinukaria.png| Kaixo mundua: LED bat piztu eta itzali etengabe segundo bateko tartearekin
Fitxategi:S4A Arduino serbomotoreak.png| Serbomotore baten besoa eskuma edo ezkerrera mugitu teklatuko geziekin

#### Snap4Arduino 
Snap4Arduino Arduino mikrokontrolagailuak programatzeko aukera ematen duen Snap! bloke bidezko programazio-lengoaiaren hedapen bat da. AGPL lizentzia duen software librea da. GNU/Linux, Mac OS X, Microsoft Windows eta ChromeOS sistema eragileetan erabil daiteke eta Chromium/Chromerako gehigarri bat ere badu.
* Snap4Arduino: Lehen eta bigarren hezkuntzako ikastetxeetan, unibertsitateetan, kode klubetan, instalazio artistikoetan erabili izan da munduan zehar.
* Elektronika familiako Lanbide heziketa: Mikrokontrolagailu merke eta ondo dokumentatua izanik, Arduinoak bai mikrokontrolagailuak eurak estudiatzeko, osagai elektronikoen portaera estudiatzeko edo mikrokontrolagailuetan oinarritutako proiektuak egiteko balio dezake.
* Unibertsitateko ikasketetan, batez ere Ingeniaritzatan, mikrokontrolagailuan oinarritzen diren proiektuetarako.

#### 3d inprimagailuak 
Arduino mikrokontrolagailua 3d inprimagailuen kontrolagailu nagusi bezala erabili daiteke.
* *Arduino Materia 101*: Arduino Mega2560an oinarritua, *Arduino Materia 101* Arduinoren kode irekiko 3d inprimagailu ofiziala da. Kit moduan erosi daiteke, norberak montatzeko, edo montatuta erosteko aukera ere badago.
* *RepRap*: RepRap Proiektua 3d inprimagailu autoerreplikagarriak sortzen dituen kode irekiko proiektu komunitario bat da.  *RepRap* kontrolagailu gehienak Arduino Mega mikrokontrolagailuan oinarritzen dira.
* *MakerBot*: RepRap proiektutik jaioa, *MakerBot Industries* 2009an 3d inprimagailuak fabrikatu eta saltzen hasi zen. Hainbat modelo dituzte. 2012tik aurrera, *Replicator 2* eta hurrengo modeloetan, kode irekiko filosofia alde batera utzi dute.

#### Robotak 
* Gurpildun robot txikia. Arduino nano mikrokontrolagailuan oinarritua .
* Sei hankadun robota. Robota Arduino Uno mikrokotrolagailuan oinarritzen da, eta urrutiko kontrola Arduino Nanoan.
* Zuhaitzak igotzen dituen robota. 

#### Droneak 
* *ArduPilot Mega*: *ArduPilot Mega* kode irekiko Drone plataforma bat da. Tripulatu gabeko hegazkin, helikoptero, multikoptero eta lurreko ibilgailuak pilotatu eta kontrolatzeko nabigazio sistema bat da. Hiru ataletan banatzen da: *APM* Hardwarea, Arduino Megan oinarritutako txartela eta beste osagai batzuetan oinarritua; *APM* firmwarea, txartela kontrolatzen duen softwarea; eta *APM* softwarea, firmwarea kargatu eta hardwarearen konfigurazioa aldatzeko. *ArduPilot* proiektuak hardware eta software proiektu desberdinen bilakaera bultzatu du, tartean *ArduCopter* helikoptero eta multikoptero proiektua , *ArduPlane* hegazkin proiektua  eta *ArduRover* lurreko ibilgailuen proiektua. 
* *AeroQuad*: *AeroQuad* urrutitik kontrolatutako lau errotoredun helikopteroak -*kuadrikopteroak*- eraikitzeko kode irekiko hardware eta software proiektu bat da. Hardwarea Arduino Mega2560 ala Arduino Unoan oinarritutako hegaldi kontrolagailuaz -beste hegaldi kontrolagailu batzuk ere erabili daitezke-, eta beharrezko diren beste sentsore batzuk dituen *AeroQuad* hedapen plakaz osatzen da. 

#### Landare zaintza eta negutegiak 
* Etxeko landareen ureztatze automatikoa. Lurreko hezetasuna neurtzen duen sentsorea eta ur-ponpa Arduino Uno bati konektatuta.
* Tomate negutegia. Arduino Uno mikrokontrolagailuaren bitartez automatikoki ureztatu eta aireztatzen den tomate negutegi proiektua.
* Urrutiko kontroldun belarra mozteko makina.

#### Sentsoreen datu bilketa eta analisiarako softwarea 
Arduinori konektatura dauden sentsoreen datuak jaso eta serie atakatik konputagailura bidaliz, datu hauek biltzen dituen softwarea. Serie ataka berbera erabiliz softwareak Arduinori aginduak bidali ahal dizkio, era honetan Arduinora konektatuta dauden eragingailuak kontrolatuz. Laborategietan erabili daiteke, edo sentsoreen datu bilketa behar duen edozein aplikaziotan.
* *MegunoLink*: serie datuak jaso eta bidali ditzakeen Windows aplikazioa, jasotako datuen grafikoak pantailan aurkeztu eta pantallako botoien bitartez aginduak bidaltzeko. 
* *MakerPlot*: serie datuak jaso eta bidali ditzakeen Windows aplikazioa, jasotako datuen grafikoak pantailan aurkeztu eta pantallako botoien bitartez aginduak bidaltzeko. 
## Garapena eta lizentziak 
Arduino hardware diseinuak Creative Commons Attribution-ShareAlike 2.5 lizentziarekin banatzen dira, Eagle CAD formatuan.

Arduino marka, Arduino logoa eta Arduinoren webgunean diseinua *Arduino SA*ren jabetzapean daude copyright lizentziarekin.

Gatazkaren zergatia, etorkizunean hardware fabrikazioan jarraitu beharko litzatekeen estrategia dela dirudi.

Momentu honetan Arduino markaren jabetza erreklamatzen duten talde bi daude: bata Arduino LLC, jatorrizko Arduino taldeak osatua -Massimo Banzi, David Cuartielles, Tom Igoe, Dabe Mellisek eta Gianluca Martino-, arduino.cc webguneduna; bestea Arduino SRL -jatorrizko taldeko partaidea den Gianluca Martinok eta Federico Mustok (Red Hateko presidenteorde ohia, orain Arduino SRLko burua) osatua-, arduino.org webguneduna. Kasua EEBBetako auzitegietan dago,

eta, Massimo Banziren arabera, Italiako auzitegietan ere bai. .

Taldekideek hasieratik hardwarea irekia izatea erabaki bazuten ere, Arduino marka erregistratu egin zuten. Edozeinek erabili dezake hardware diseinua, baina Arduino izena erabiltzeko taldeari ordainketa bat egin behar zaio. Honela, taldeak bideragarritasun ekonomikoa mantendu eta Arduino izena daraman txartelak kalitate minimo bat izango duela ziurtatzen du. Txartelak sortzeko Smart Projects Srl hautatu zuten, eta honen buru Gianluca Martino jarri zen. Martinok paper bikoitza hartzen du: batetik txartelak fabrikatzen dituen enpresaren buru da, eta bestetik, 2008an EBetan Arduino LLC bezala erregistratuko den elkartearen %20ko partaidetza du, beste taldekideek bezala. eta Arduino Zero (etortzear).
** Arduino SLR: Arduino Yun Mini, Arduino Leonardo ETH, eta Arduino Zero Pro.
* Arduino IDE: Arduino SLRk softwarearen banaketa -*fork*- bat egin du, izen berbera mantenduz eta bertsio zenbakia handituz. Honek nahastea eragin dezake garatzaile eta erabiltzaileen artean.
* Arduino.cc edo arduino.org ez den webgune batean produktu bat erosterakoan, baliteke argi ez egotea zein aldetik datorren.
## Erreferentziak 
## Ikus, gainera 
*  Arduino txartel eta sistema bateragarrien zerrenda
*  Txartel bakarreko konputagailuen arteko konparaketa
* Software libre
* Kode ireki
* Kode irekiko hardware
* «Zuk zeuk egin» metodoa
* Raspberry Pi

## Kanpo estekak 
*  Arduino webgune ofiziala
*  arduino-info.wikispaces.com. Arduinori buruzko informazio ugari.
*  Aitor Aspiroz: Arduinoa Ikastetxean. Oteitza Lizeo Politeknikoa, Ikastolen Elkartea. (CC-BY-SA, Aitor Aspiroz)
*   Oomlout-ek egina eta GISA elkarteko Ales Zabala Alavak euskaratua. Arduino esperimentazio gida. (CC-BY-SA)
*  Borja del Río Rueda: Arduino for Dummies. Arduino erabiltzen ikasi nahi duten 10 urtetik gorako ikasleentzako gunea, Arduino eta S4A gida eta adibideekin (CC-BY-SA) 
*(gaztelaniaz) Descubrearduino webgunea Arduinoko proiektuekin eta doako Hardwarearekin
;Hardwarea
*  Plaken espezifikazioak Arduino horri ofizialean: Arduino Uno Arduino Due Arduino Leonardo Arduino Mega 2560 Arduino Mega ADK Arduino MicroArduino Mini Arduino Nano Arduino Ethernet Arduino Esplora  Arduino Fio Arduino Pro Arduino Pro Mini LilyPad Arduino LilyPad Arduino Simple LilyPad Arduino SimpleSnap LilyPad Arduino USB Arduino Yun Arduino Robot Hedapen Plakak: Arduino GSM Shield Arduino Ethernet Shield Arduino WiFi Shield Arduino Wireless SD Shield Arduino USB Host Shield Arduino Motor Shield Wireless Proto Shield Arduino Proto Shield
*  Arduino plaka ofizialen eskema elektrikoak: Arduino Uno Arduino Due Arduino Leonardo Arduino Mega 2560 Arduino Mega ADK Arduino Micro Arduino Mini Arduino Nano; SAM3X8E mikrokontrolagailuaren pin mapa Arduino Ethernet Arduino Esplora  Arduino Fio Arduino Pro Arduino Pro Mini Arduino Lilypad Arduino Lilypad Simple Arduino Lilypad SimpleSnap Arduino Lilypad USB Arduino Yun; Atmel SAM3X pin mapa; Hedapen plakak: Arduino GSM Shield Arduino Ethernet Shield Arduino WiFi Shield Wireless SD Shield Arduino USB Host Shield Arduino Motor Shield Wireless Proto Shield Arduino Proto Shield
*  Datu-fitxak: Atmel mikrokontrolagailuak: ATmega168 ATmega328 ATmega328P ATmega2560 ATmega32u4 Atmel SAM3X8E ARM Cortex-M3 datu horria; Beste batzuk: Atheros AR9331
*  Arduino Shield List. Hedapen plaken datubasea, informazio ugarirekin.
*  Arduino Shields. SparkFun Electronics. Hedapen plakeri buruzko tutoriala.
*  How to spot a counterfeit Arduino. Nola aurkitu Arduino faltsifikatuak. Arduino webgune ofiziala.
;Softwarea:
*  Download the Arduino Software. Arduino IDEa deskargatzeko gunea (Windows, Mac OS X eta Linux). Arduino webgune ofiziala.
*  Language Reference. Arduino programazio lengoiaren erreferentzia. Arduino webgune ofiziala.
*  Brian W. Evans: Arduino Programing Notebook. Arduino programazio lengoairen erreferentzia. Arduino webgune ofiziala. Inprimagarria. CC-AT-NC-SA 3.0.
*  Gavin Smith: Arduino Cheat Sheet.http://arduino-info.wikispaces.com(http://arduino-info.wikispaces.com). Arduino "txuleta"
*  Fritzing
;Artikulu eta elkarrizketak
*  "Arduinori buruzko elkarrizketa David Cuartellesi" sale, software askea libre Euskadin, 2014-12-15
*  Josu Jugo: "Arduino, Raspberry Pi eta beste batzuk: Hardware librearen bidea". Zientzia Kaiera, 2015-02-19
*  Gaizka Manero López: "Arduino, reinventándolo todo". Blogs Deia.com La caverna cibernética, 2013-08-17
*  Saraya Paniagua: "Arduino, la revolución silenciosa del hardware libre". https://web.archive.org/web/20150402143141/http://www.sorayapaniagua.com/(https://web.archive.org/web/20150402143141/http://www.sorayapaniagua.com/), 2011-03-14
*  Alice Mela: "A visit to the Arduino factories". domus, 2013-5-15.
*  Jenny Filippetti: "arduino factory + production tour in turin, italy". desigboom magazine, 2013-09-06
;Bideo eta dokumentalak
*  "Zer da arduino eta zer egin dezakegu berarekin?". 2012-02-28an ETBko nickdutnick saioan emititutako bideoa
*  "Arduino The Documentary" gazteleraz ingelesez. Euskarazko azpitituluak Arduinoren historiari begirada bat ematen dion dokumentala. Zuzendariak: Rodrigo Calvo eta Raúl Alaejos. LABoral Centro de Arte y Creación Industrial. Iraupena: 28:16". Urtea: 2010 Lizentzia: Creative Commons
*  Massimo Banzi: "How Arduino is open-sourcing imagination". TED  Ideas worth spreading, 2012ko ekaina. Massimo Banziren Arduinori buruzko konferentziaren bideoa. Iraupena:15'38"
*  "Arduino: creare è un gioco da ragazzi / Arduino: Creation is Child’s Play ". Wired TV. Dokumentala. Andrea Girolami + Opificio Ciclope. Urtea: 2012. Iraupena: 19'09". Italieraz, ingelesezko azpitituluekin.
; Arduino LLC vs Arduino SRL aferari buruz
*  Beñat Jimenez: II. FOSS Drama: Arduino CC vs ORG. etzi.pm wbgunea, 2015-04-22.
*  Hackaday webgunean jarraipena: Arduino v. Arduino (2015-02-25); Arduino Zero Pro Soft Release? (2015-03-04); Arduino v Arduino: Part II (2015-03-12); Arduino SRL to Distributors: “We’re the REAL Arduino” (2015-03-28); Arduino IDE Forked (2015-04-06); Arduino Vs. Arduino: The Reseller’s Conundrum (2015-04-15); Your Arduino Packaging Could Sway a Court Case (2015-04-19)
*  Massimo Banzi: Fighting for Arduino. Make aldizkariaren webgunea, 2015-03-19. Massimo Banziren azalpena.
*  Arduino SRLren gutuna banatzaileei (pdf), 2015-03-27

*Artikulu hau ingelesezko Arduino webgune ofizialean (Creative Commons Attribution ShareAlike 3.0 lizentziarekin) eta wikipediako ingelesezko eta gaztelerazko artikuluetan oinarritzen da nagusiki. webgune ofiziala gazteleraz era badago sarean, baina badirudi 2011tik aurrera ez dela eguneratu (2015eko otsailean kontsultatua). Euskaraz, Aitor Aspirozen Arduinoa Ikastetxean ((Creative Commons Attribution ShareAlike 3.0 lizentziarekin) kontsultatu da.