Hoe programmeer je in Arduino? Arduino software uitgelegd in 3 stappen

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp

Arduino heeft de afgelopen 10 jaar naam en faam gemaakt in de Verenigde Staten, en dat is dik verdiend. De afgelopen jaren is de populariteit van het open-source computerplatform ook in Europa toegenomen. Wellicht heb jij er al eens op school mee gewerkt, overweeg je er een te kopen of heb je er zelfs al eentje thuisliggen. Maar hoe programmeer je nou eigenlijk met Arduino? In dit artikel bespreken we de belangrijkste onderwerpen die je moet weten over het programmeren in Arduino.

1. De Microcontroller – Waar de code wordt uitgevoerd

Elk Arduino board is gebouwd rondom een microchip, ook wel de microcontroller/processor genoemd. Een normale computer heeft dit ook. Het is het hart van het board, en hier worden alle berekeningen uitgevoerd. De chips die Arduino gebruikt, zijn bijna altijd modellen van de microchip ontwikkelaar Atmel. Een enkeling van de boards beschikt over een Intel processor; namelijk de gepensioneerde Arduino 101. Een aantal bekende chips die Arduino gebruikt zijn de ATMega328 (Nano), de ATMega328P (Uno), ATMega2560 (Mega) en de ATSAM3X8E (Due).

2. Arduino IDE – Waar de code wordt geschreven

Arduino programma’s worden geschreven in haar eigen Integrated Development Environment (IDE). Een IDE is een computer programma die de programmeur ondersteund in het schrijven van code. Elke IDE is anders en beschikt over verschillende functionaliteiten. Basis functies van een IDE zijn een compiler en een editor. De Arduino IDE is een zeer simpele IDE en ziet er als volgt uit:

Arduino IDE

3. C/C++ Processing – Arduino’s programmeer taal

Arduino wordt geprogrammeerd in de programmeertaal ‘Processing’. Deze taal is gebaseerd op de oudere C en C++ programmeertalen. Processing kan ook wel worden gezien als een versimpelde versie van de C/C++ Library ‘Wiring’. Belangrijk om te weten: Een programma/program wordt in Arduino ook wel een sketch genoemd. Om code van Processing uit te voeren zijn er slechts twee functies nodig:

setup() functie

Setup is een functie die eenmalig wordt uitgevoerd aan het begin van een script en wordt gebruikt om instellingen te configureren en variabelen te initiëren. Het is een functie die de configuratie doet en wordt slechts één keer, aan het begin van een script uitgevoerd. Deze functie wordt ook wel de voorbereiding genoemd. Tijdens de setup worden onder andere pinModes geconfigureerd en seriële connecties opgestart.

loop() functie

Deze functie wordt herhaaldelijk uitgevoerd tot de Arduino totdat het board wordt uitgeschakeld. Deze functie blijft dus opnieuw en opnieuw draaien. Deze functie wordt ook wel het uitvoerende blok genoemd. In dit blok worden voornamelijk inputs uitgelezen, outputs geactiveerd en statements gecontroleerd.

				
					void setup() {
  // Configuratie
}

void loop() {
  // Executie
}
				
			

Arduino Data types

Arduino maakt gebruik van verschillende data types. De meest gebruikte data types in Arduino Processing zijn ‘array’, ‘bool’, ‘char’, ‘double’, ‘float’, ‘int’, ‘long’, ‘short’, ‘string’ en ‘void’. Wij beschrijven de datatypes in het kort.

Array

Een Array in Arduino is een ongeordende lijst variabelen die kunnen worden geïndexeerd aan de hand van een nummer. Een voorbeeld van een Array in Arduino is:

				
					// Aanmaken van een Array
int myPins[] = {2, 4, 8, 3, 6};
				
			

Bool & Boolean

Data types ‘bool’ en ‘boolean’ zijn identiek aan elkaar. Een bool of boolean kunnen twee waardes vasthouden, namelijk ‘true’ of ‘false’. Een boolean is een fundamenteel concept in computer wetenschappen en programmeren. ‘bool’ is de standaard boolean in Arduino’s programmeertaal Processing.

				
					int Jaartal = 2021;

bool Oneven = true;
				
			

Char

De char datatype in Arduino wordt gebruikt om een enkel karakter in op te slaan. Een voorbeeld van een char is ‘c’ of ‘G’.
				
					char myChar = 'c';
				
			

Int

Een int of integer wordt gebruikt om een rond getal in op te slaan. Op de Arduino Uno heeft int een minimum van -32,768 en een maximum van 32,768. Dit komt omdat integers in de Uno worden opgeslagen door middel van 16 bits (2 bytes).

				
					int myInt = 8;
				
			

Long

Een long is een speciale integer. Een long is een integer met een minimum van -2,147,483,648 en een maximum van 2,147,483,647. Dit komt omdat een long wordt opgeslagen door middel van 32 bits (4 bytes).

				
					long myInt = 1200000;
				
			

Short

Een short is een datatype dat standaard gebruik maakt van 16-bits (2 bytes). Dit betekend dat een short een waarde heeft tussen de -32,768 en 32,768. Een short is net als een long altijd een getal.

				
					short myInt = 13;
				
			

String

Een string is in veel programmeertalen een stuk tekst. In Arduino Processing is een string een array van chars. Er zijn verschillende manieren om een string aan te maken in Processing. Onderstaande methodes zijn allemaal geldig.

				
					// String aanmaken in Arduino
char Str1[15];
char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'};
char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};
char Str4[] = "arduino";
char Str5[8] = "arduino";
char Str6[15] = "arduino";
				
			

Over het algemeen worden strings afgesloten met een null character (ASCII code 0). Dit zorgt er voor dat de computer begrijpt waar het einde van een string is.

Void

Void kan voor beginners nog al verwarrend zijn. Het void keyword betekend simpelweg dat de functie geen resultaat of informatie zal teruggeven aan het programma. Je ziet het in elke sketch terug in de setup() en loop() functie:

				
					void setup() {
  // ...
}

void loop() {
  // ...
}
				
			

Arduino functies

Naast datatypes zijn er in Arduino een aantal belangrijke functies die je veel ziet terugkomen. Deze functies zijn ‘digitalRead()’, ‘digitalWrite()’, ‘pinMode()’, ‘analogRead()’, ‘analogWrite()’.

digitalRead()

De digitalRead() functie leest de waarde van een van de digitale pins van de Arduino. Deze waarde kan slechts HIGH of LOW zijn.

				
					// Een digitale pin lezen
digitalRead(pin);
				
			

digitalWrite()

De digitalWrite() functie schrijft een waarde naar een van de digitale pins op de Arduino. Ook deze waarde kan alleen HIGH of LOW zijn.

				
					// Een pin inschakelen
digitalWrite(pin, HIGH);

// Een pin uitschakelen
digitalWrite(pin, LOW);
				
			

analogRead()

De analogRead() functie leest de waarde van een analoge pin. De analoge pin meet een Voltage (V) tussen de 0 en de werkspanning van het board. De werkspanning is meestal 3.3V of 5V. Deze voltage zet hij relatief om in een waarde tussen de 0 en 1023.

				
					// Een analoge pin lezen
analogRead(pin);
				
			

analogWrite()

De analogWrite() functie schrijft een analoge waarde naar een van de analoge pins. Op basis van deze waarde maakt de Arduino een PWM golf aan en stuurt deze door de pin. Dit is vaak een waarde tussen de 0 en 1023. De functie analogWrite() wordt gebruikt bij het dimmen van een LED of het veranderen van de snelheid van een motor.

				
					// Een analoge pin inschakelen of uitschakelen
analogWrite(pin, val);
				
			

pinMode()

De pinMode() functie configureert een specifieke pin. Een pin kan als een INPUT pin of een OUTPUT pin dienen. Deze functie geldt slechts voor de digitale pins.

				
					// Pin configureren
pinMode(12, OUTPUT);
pinMode(13, INPUT);
				
			

Programmeren in Arduino

Dit was een beknopte samenvatting van de meest voorkomende datatypes en functies in de Arduino programmeertaal: Processing. Voor een diepgaandere uitleg van de Arduino programmeertaal, bezoek de Arduino referentie.

Hoe nuttig vond je dit artikel?

Gemiddelde beoordeling 0 / 5. Huidige stemmen: 0

Nog geen stemmen, wees de eerste!

Aangezien je dit een nuttig artikel vond...

Deel het op social media!

We vinden het jammer dat je dit artikel niet nuttig vond.

Help ons met het verbeteren van onze post.

Vertel ons hoe we dit artikel kunnen verbeteren?

Reacties