Leuk dat u meer wilt weten over Arduino. Wij helpen u graag een eindje op weg. Deze pagina dient om u te inspireren en biedt een introductie in de wereld van Arduino. Het is geen compleet naslagwerk, maar het geeft wel de benodigde basis om zelf verder op ontdekkingsreis te gaan. Perfect voor iedere beginner, zeker als u (nog) geen ervaring heeft met elektronica of programmeren!
Wat is Arduino
Arduino is de merknaam van een populaire serie microcontroller-boards. Deze boards bestaan (meestal) uit een Atmel ATmega microcontroller, enkele ondersteunende componenten en een aantal aansluitingen. Samen vormen ze een soort kleine ‘computer’ waarmee u verschillende projecten zelf kunt aansturen.
Een Arduino-board is gemaakt om op een voordelige manier uw elektronicaprojecten aan te sturen. De microcontroller op het board is hier dan ook op geselecteerd. Een volwaardige computer met veel rekenkracht zou namelijk overbodig zijn voor dit doel en alleen maar tot hoge kosten leiden. De Arduino Uno heeft bijvoorbeeld een geheugen van slechts 32kB. Veel minder dan bijvoorbeeld een laptop, maar ruim voldoende om uw elektronicaprojecten aan te sturen.
Arduino is een open-source-systeem. Dit betekent dat alle ontwerpen van de diverse boards door iedereen te bekijken zijn. U mag zelfs uw eigen Arduino-board maken. De makers van Arduino hebben een belangrijke voorwaarde gesteld; u mag het board geen Arduino noemen. Het grote voordeel van dit soort open-source-initiatieven is dat veel gebruikers hun kennis en creativiteit in kunnen brengen. Er ontstaat op die manier al snel een grote groep mensen (community) die samen het originele idee kunnen verbeteren.
De Arduino hardware
Arduino-boards zijn er in diverse uitvoeringen. De verschillende boards hebben elk hun eigen voordelen, maar kennen ook veel overeenkomsten. Elke Arduino bestaat namelijk uit een microcontroller met daaromheen een aantal ingangen en uitgangen, ook wel I/O’s genoemd (I/O staat voor Input/Output). Op de input sluit u een sensor aan, op de output een actor (met een maximaal verbruik van 40 mA per aansluiting). De sensor geeft de Arduino een reden om iets te doen. De actor voert vervolgens de daadwerkelijke actie uit. De software bepaalt tussen deze beide stappen in wat er moet gebeuren.
De meest eenvoudige (en tegelijk ook de populairste) Arduino is om te beginnen de ‘Arduino Uno’. De meest relevante onderdelen van dit board vindt u hieronder.
De Arduino software
U weet nu wat Arduino is en hoe de hardware van een board is opgebouwd. Deze hardware kan echter geen taken uitvoeren zonder dat iemand vertelt wat er moet gebeuren. Hier komt de Arduino software om de hoek kijken.
Het programmeren van een Arduino-board doet u via de Arduino IDE (Integrated Development Environment). Deze IDE is gratis te downloaden van de officiële Arduino-website (www.arduino.cc) en biedt u een volledige programmeeromgeving met alle noodzakelijke elementen. De Arduino programmeertaal is gebaseerd op C/C++. De Arduino IDE is ook weer open-source. Dit betekent dat ook de Arduino IDE door iedereen vrij te gebruiken en bewerken is.
3a Arduino sketch
Een programma waarmee u het Arduino-board vertelt wat deze moet doen heet een ‘sketch’. Een sketch bevat alle noodzakelijke elementen om uw project goed te laten functioneren. Deze elementen worden via de IDE omgezet in concrete taken voor de hardware. U kunt een sketch zelf schrijven, maar via de grote Arduino-community (playground.arduino.cc) zijn ook al heel veel kant-en-klare sketches te vinden voor tal van inspirerende projecten. U kunt deze sketches compleet overnemen of er juist delen uitpakken die voor uw project interessant zijn.
3b Setup() en loop()
Iedere Arduino-sketch bestaat uit minimaal twee elementen; de setup() en de loop(). In de setup() benoemt u alles wat van belang is voordat de Arduino daadwerkelijk een taak gaat uitvoeren. Aangeven dat een aansluiting functioneert als output vindt bijvoorbeeld plaats in de setup(). In de loop() vertelt u welke stappen de Arduino daadwerkelijk moet doorlopen. Wilt u bijvoorbeeld een sensor uitmeten, dan geeft u dit aan in de loop(). Een loop herhaalt zichzelf keer op keer, de setup vindt eenmalig plaats bij het starten van de sketch.
// Hier komen de instellingen voor deze 'sketch'
void setup() {
pinMode(led, OUTPUT);
pinMode(toets, INPUT);
// Hier komen de doorlopen stappen van de 'sketch'
void loop() {
int toetsWaarde = digitalRead(toets);
3c Functies
In een Arduino sketch gaat u een aantal functies gebruiken. Een functie is een vooraf gedefinieerde code die u gebruikt om een instructie te geven aan het board. Met de pinMode functie geeft u bijvoorbeeld aan of een I/O zich moet gedragen als input of output. De functie analogRead geeft aan dat er een analoge waarde uitgelezen moet worden. Met digitalWrite geeft u het board de instructie om een output aan (HIGH) of uit (LOW) te zetten.
digitalWrite(led, HIGH);
3d Variabelen
Een variabele bestaat uit een naam, een waarde en een type. Met een variabele slaat u als het ware een waarde op zodat u deze later in de sketch weer kunt gebruiken. Er zijn verschillende variabelen; sommige maakt u zelf, andere zijn al vooraf gedefinieerd.
Met de variabele ‘int ledPin = 13; geeft u bijvoorbeeld aan dat u de aansluiting met waarde ‘13’ in de sketch gaat aanspreken met de naam ‘ledPin’. Met het type ‘int’ geeft u aan dat er een geheel getal wordt opgeslagen, een integer.
int ledPin = 13;
3e Comments
De meeste Arduino-sketches bevatten commentaar (comments). Via deze comments kan de schrijver van de sketch u een toelichting geven op wat er gebeurt. Door zelf comments toe te voegen in uw sketch weet u later ook nog waarom u bepaalde functies en variabelen hebt gebruikt.
Alles tussen /* en */ wordt door de Arduino IDE gezien als comment en wordt niet uitgevoerd. Hetzelfde geldt voor alles na // op dezelfde regel.
/*
Dit soort commentaren kun je over
meerdere regels verdelen, maak er gebruik van!
Zo handig als je over een jaar of 2 weer met deze code gaat werken.
*/
// Dit soort commentaar plaats je achter een opdracht of regel in je sketch
Speciale karakters
Je komt verschillende leestekens tegen in een Arduino-sketch.
De belangrijkste zijn:
; (semicolon) – gebruikt om vrijwel alle opdrachten af te sluiten
{ } (braces) – gebruikt om een commando (statement) te starten of te eindigen (vaak vergeten)
= (assignment operator) – slaat de waarde rechts van de = op in de variabele links er van
== (equal to) – deze gebruikt u als ‘gelijk aan’ voorwaarde
4. Arduino installeren
Het programmeren van een Arduino board doe je via een computer. Hiervoor moet wel eerst de benodigde software worden geïnstalleerd. We zullen je hier stap-voor-stap door het installatieproces op een Windows besturingssysteem loodsen.
Heeft u Mac OS? Kijk dan even op www.arduino.cc voor een handleiding over deze besturingssystemen.
Arduino installeren op een Windows-computer
- Download de laatste versie van de Arduino IDE op arduino.cc (deze software wordt regelmatig geüpdatet).
- Sluit het Arduino-board via een USB-kabel aan op de USB-poort van uw computer.
- Installeer de drivers
- Windows gaat eerst zelf proberen om de drivers te vinden. Dit zal mislukken, dit ligt niet aan u of uw computer.
- Open het configuratiescherm in Windows (Control Panel), vervolgens ‘Systeem en Beveiliging’, ‘Systeem’ en als laatste ‘Apparaatbeheer’.
- Kijk onder poorten (COM & LPT). Hier vind u de Arduino. Is dit niet het geval, kijk dan onder de overige apparaten voor onbekende apparaten.
- Klik met de rechtermuisknop op de gevonden Arduino en kies ‘Update Driver Software’.
- Kies vervolgens voor de optie ‘Zoek op mijn computer’ om de driver software te vinden.
- Navigeer naar het bestand ‘arduino.inf’ in de bij stap 1 gedownloade map. Het bestand staat in de submap ‘Drivers’.
- Windows gaat nu de benodigde drivers voor het Arduino-board installeren.
- Open de zojuist geïnstalleerde Arduino software.
- Open de demo-sketch genaamd ‘LED Blink’. ‘File ->examples -> 01.Basics -> Blink’
- Kies uw Arduino-board bij ‘Tools -> board’
- Selecteer de seriële poort waar uw Arduino op is aangesloten bij Tool -> Serial Port menu
- Klik op de ‘Upload’ knop in de software (het pijltje naar rechts) en wacht een paar seconden, de sketch wordt geüpload naar uw Arduino-board.
- Tijdens het uploaden zullen de RX en de TX LED’s op het board beginnen te knipperen, wanneer alles gelukt is, dan begint de LED bij pin 13 te knipperen.
- Gefeliciteerd! De Arduino-software is geïnstalleerd en u heeft zojuist uw eerste sketch op het Arduino-board gezet.
U kunt nu beginnen met het schrijven van uw eigen sketches in de Arduino-software. Wanneer u tevreden bent met het resultaat dan kunt u deze uploaden naar het Arduin-board.
Wilt u weer compleet opnieuw beginnen? Dan kunt u bij ‘File –>Examples’ de sketch ‘BareMinimum’ vinden. Als u deze uploadt naar uw board, dan is alles weer teruggezet naar de fabrieksinstelling.
Start uw eigen Arduino-project. Stap-voor-stap leggen wij uit wat u nodig heeft en hoe u te werk gaat. Zo maakt u zelf de leukste projecten met Arduino!
6. Uitbreidingen voor Arduino
Een Arduino-board is feitelijk het ‘brein’ van uw project. U heeft hierbij wel andere onderdelen nodig om het project compleet te maken. Dit lost u op door zelf alle benodigde onderdelen te kiezen. Een andere optie is het toevoegen van een Arduino Shield. Een shield is een soort board dat u bovenop de Arduino plaatst en waarmee u functionaliteit toevoegt.
We hebben een aantal populaire uitbreidingen voor de Arduino op een rijtje gezet.
6a Ethernet/WiFi-shield
U kunt heel veel interessante projecten bouwen zonder verbinding met het internet. Maar in sommige gevallen is het handig om het project toch van afstand te kunnen benaderen. Het toevoegen van een Ethernet of WiFi-shield biedt de oplossing in dit geval.
6b Relaiskaart
Wanneer u apparatuur op 230V/AC wilt aansturen dan is een relais bijna onvermijdelijk (uw Arduino board levert namelijk slechts 5V=/40mA). Er zijn relaiskaarten verkrijgbaar die u vrij eenvoudig op een uitgang van de Arduino kunt aansluiten. Deze relaiskaarten zijn speciaal ontworpen voor boards als de Arduino.
6c Servo/DC-motor
Met een servo of DC-motor kunt u beweging toevoegen aan uw Arduino-projecten. Een servo heeft hierbij een beperkte uitslag (bijvoorbeeld te gebruiken om een luik te openen). Een DC-motor draait volledig rond en kan dit op verschillende toerentallen (bijvoorbeeld te gebruiken als aandrijving).
6d Display
U heeft bij de projecten uit deze starterkit een aantal keer de serial monitor gebruikt. In sommige gevallen wilt u juist de output weergeven op een klein display. Dit kan een klein display zijn met één kleur, maar ook volledige OLED-displays zijn mogelijk.
6e Losse componenten
De tot nu toe genoemde uitbreidingen zijn eenvoudig te gebruiken in combinatie met een Arduino. Toch heeft u vaak nog ondersteunende componenten nodig om alles goed te laten werken. De weerstanden uit de starterkit hebben namelijk ook zo hun functie. Bij gebruik van een servo heeft u bijvoorbeeld een condensator nodig om spanningspieken op te vangen.
Voor ieder project zijn er zo wel specifieke componenten te bedenken die van belang zijn. Wanneer u het leuk vindt om u verder te verdiepen in elektronica, dan is dit natuurlijk een goede reden!