ID.nl logo
Huis

Arduino programmeren met Arduino IDE: De basis

Een Arduino-bordje doet niets als er geen software op draait. In deze workshop zetten we de Arduino IDE-ontwikkelomgeving op, schrijven we wat code en uploaden we die naar het bordje zodat het een led doet knipperen. Dit zijn de basics van het Arduino programmeren.

De makers van Arduino produceren niet alleen de microcontrollerbordjes, maar ook de ontwikkelsoftware om er je eigen code op te draaien: de Arduino IDE. Die bestaat zowel voor Windows, Linux als macOS. Download de nieuwste versie (op het moment van schrijven was dat versie 1.8.8).

Voor Windows heb je de keuze tussen een exe- en een zip-bestand. De eerste is gemakkelijker, omdat dit een installatieprogramma is dat onmiddellijk ook de juiste driver voor de usb-verbinding met je Arduino installeert. De standaardinstellingen van het installatieprogramma zijn oké.

Arduino-schetsen

Een schets of ‘sketch’ is de naam die Arduino geeft aan een programma. Elke Arduino-schets bestaat uit twee functies: setup en loop. In die eerste zet je de code die je Arduino-bordje één keer dient uit te voeren, vlak nadat de microcontroller opgestart of gereset is. Daarna wordt de functie loop continu herhaald. De code die je in deze functie zet, draait dus zolang je Arduino ingeschakeld is, telkens opnieuw.

De Arduino IDE komt standaard al met talloze voorbeeldschetsen. Klik in het menu Bestand op Voorbeelden en kies dan in de categorie 01.Basics voor Blink. De code begint met een groot blok tekst tussen regels die beginnen met /* respectievelijk */. Daarmee geef je aan dat de tekst hiertussen commentaar is: de Arduino IDE negeert dit, zodat je hier zelf uitleg voor anderen kunt typen. De makers van de voorbeeldschets leggen hier uit wat de schets doet en verwijzen naar een webpagina met meer informatie. Het is aan te raden om je eigen Arduino-schetsen ook te beginnen met zo’n blok commentaar.

Daarna komen de twee verplichte Arduino-functies, setup en loop. We zien hier ook regels die beginnen met // en we zien ook in het midden van regels // met een tekst erachter. Dit is een tweede manier om commentaar in een Arduino-schets op te nemen: de Arduino IDE negeert alles vanaf // tot het einde van de regel.

Het is niet de bedoeling dat je in je eigen schetsen bij élke regel code commentaar zet zoals in dit voorbeeld, maar maak er wel een gewoonte van om wat complexere regels code van commentaar en uitleg te voorzien, zodat je ze nog begrijpt als je de code over enkele maanden opnieuw bekijkt.

©PXimport

Setup en loop

Laten we even naar de code van het voorbeeld Blink kijken. In de functie setup is er maar één regel code nodig:

pinMode(LED_BUILTIN, OUTPUT);

Hiermee stellen we de digitale pin met de naam LED_BUILTIN in als uitvoerpin, zodat we er later in de code een 0 of 1 naar kunnen schrijven. De naam LED_BUILTIN verwijst op alle Arduino-bordjes naar de ingebouwde led op het printplaatje, meestal pin 13. Door de voorgedefinieerde naam LED_BUILTIN te gebruiken, hoef je je code niet aan te passen als je ze op een ander bordje wilt draaien waar de ingebouwde led een ander pinnummer heeft.

In de functie loop willen we de ingebouwde led doen knipperen. Eerst schrijven we HIGH naar de juiste digitale pin:

digitalWrite(LED_BUILTIN, HIGH);

Omdat het om een digitale pin gaat, kunnen we twee mogelijke waardes naar de pin schrijven: HIGH (overeenkomend met 1) of LOW (overeenkomend met 0). Waarom heet de waarde hier HIGH en niet 1? Omdat dit de spanning is die op de pin gezet wordt: hoog. Je vindt de spanning van jouw Arduino-bordje in deze tabel met de specificaties in het begin van de kolom Operating/Input Voltage. Als jouw Arduino-bordje op 5 V werkt, komt HIGH hier overeen met een spanning van 5 V. Het gevolg? Er vloeit stroom door de ingebouwde led, die begint te branden.

Daarna wachten we een seconde met:

delay(1000);

De 1000 staat voor 1000 milliseconden. In de volgende regel schrijven we LOW naar de digitale pin. Dat komt overeen met een spanning van 0 V. Daardoor vloeit er geen stroom door de ingebouwde led, die daarop uitdooft. Daarna wachten we weer een seconde. We komen nu aan het einde van de functie loop, die daarna weer herhaald wordt: het knipperen begint weer van voren af aan. En op deze manier blijft de ingebouwde led continu knipperen tot de Arduino geen stroom meer krijgt.

Code uploaden

We hebben nu uitgelegd hoe de code werkt uit het voorbeeld Blink, maar je hebt de led nog niet zien knipperen. De code moet eerst geüpload worden naar de Arduino om hem te laten werken. De instructies om met een Arduino-bordje aan de slag te gaan hangen af van het type bordje. Ga via deze link naar de pagina Getting Started with Arduino and Genuino products en klik met rechts op de link die bij je bordje hoort. We tonen in deze workshop hoe dit verloopt met de Arduino Nano, omdat we dit door zijn kleine afmetingen een handig bordje vinden voor heel wat toepassingen.

©PXimport

Steek de ene kant van de mini-usb-naar-usb-kabel in de mini-usb-connector op je Arduino Nano. Sluit de andere kant aan op een usb-poort van je pc. Klik in het menu Hulpmiddelen van Arduino IDE op Board en selecteer in het lange submenu dat verschijnt Arduino Nano. Controleer of er bij Poort een seriële poort vermeld staat, zoals COM1 op Windows of /dev/ttyUSB0 op Linux. Als alles correct lijkt, klik dan linksboven op het knopje met het pijltje naar rechts.

Arduino IDE compileert nu je schets naar machinecode voor de microcontroller en uploadt je code naar het bordje. De voortgang krijg je in het zwarte tekstveld onderaan te zien. Als alles goed gaat (en je dus geen foutmeldingen in rode letters te zien krijgt in het tekstveld onderaan), begint de ingebouwde led van je Arduino te knipperen. Dat werkt ook als je naderhand je Arduino rechtstreeks van een voedingsadapter van stroom voorziet: de code blijft opgeslagen tot je die met een nieuwe schets overschrijft.

▼ Volgende artikel
Ontwerp van Nothing Phone (4a) onthuld
Huis

Ontwerp van Nothing Phone (4a) onthuld

Het Britse bedrijf Nothing heeft het design van de aankomende nieuwe smartphone Phone (4a) onthuld.

Dat deed het bedrijf gisteren via social media. De smartphone komt op 5 maart uit. In de tweet hieronder is het ontwerp alvast te zien, met de typische drukke achterkant die we inmiddels gewend zijn van het bedrijf.

De aankomende Phone (4a) heeft een zogeheten 'Glyph Bar'. Dit is een micro-led-paneel aan de zijkant, die mensen zelf kunnen programmeren om ze in verschillende patronen te laten knipperen. Het gaat om de vierkantjes aan de rechterzijde, naast het camera-eiland. De led-lampjes zijn volgens het bedrijf 40 procent feller dan die op de Phone (3a).

Over de precieze technologie van de Nothing Phone (4a) zijn nog geen aankondigingen gedaan, maar volgens geruchten krijgt de smartphone een Snapdragon 7s Gen 4-chip. Er zal ook een duurdere en snellere Phone (4a) Pro verschijnen, al is daar het uiterlijk nog niet van onthuld.

Officieel wordt de Phone (4a) op 5 maart onthuld.

View post on X
▼ Volgende artikel
Waarom je monitor op het moederbord aansluiten je pc vertraagt
© Provokator
Huis

Waarom je monitor op het moederbord aansluiten je pc vertraagt

Je sluit je nieuwe monitor aan, de pc start op, maar de prestaties in zware programma's en games vallen vies tegen. In dit artikel ontdek je waarom de aansluiting op je moederbord de grafische kracht van je computer negeert en hoe je dat direct oplost voor maximale rekenkracht.

Het is een klassieke fout bij het opbouwen van een werkplek: de videokabel in het eerste gat steken dat je tegenkomt aan de achterzijde van je computerkast. Vaak belandt de kabel dan in een van de poorten van het moederbord, terwijl de krachtige videokaart een verdieping lager ongebruikt blijft. Dit misverstand ontstaat omdat beide aansluitingen identiek ogen, maar de interne route die de data aflegt verschilt als dag en nacht. Daarom leggen we je uit hoe je het volledige potentieel van je hardware benut en waarom die extra investering in je grafische kaart anders weggegooid geld is.

De interne omweg via de processor

Als je de HDMI- of DisplayPort-kabel in het moederbord plugt, dwing je de computer om de geïntegreerde grafische chip van de processor te gebruiken (mits die is ingeschakeld via het BIOS). Wij hebben dat uiteraard nog even getest en merkten dat alles inderdaad veel minder soepel aanvoelt zodra de processor deze dubbelrol moet vervullen. In plaats van dat de data direct naar de gespecialiseerde kernen van de videokaart gaat, moet de processor nu zowel de algemene berekeningen als de visuele output verwerken.

Dat veroorzaakt een een hoop warmte in de behuizing en de ventilatoren van de CPU beginnen sneller te loeien om de extra last op te vangen. Het is al met al een onhandige route waarbij de dure videokaart onderin je kast simpelweg geen signaal doorgeeft aan je scherm.

©stas_malyarevsky

Hier moet je de HDMI-kabel dus níét in steken als je de beste prestaties wilt.

Aansluiting heeft wel degelijk een functie

Er zijn echter specifieke scenario's waarin deze aansluiting juist je beste vriend is, bijvoorbeeld tijdens het stellen van een diagnose als er iets opeens niet werkt. Als je pc bijvoorbeeld geen beeld geeft via de videokaart, is inpluggen op het moederbord de enige manier om te controleren of de rest van je systeem nog wel functioneert.

Ook voor een eenvoudige kantoormonitor, die alleen wordt gebruikt voor tekstverwerking en e-mail, volstaat de interne chip van de processor en is een dedicated videokaart niet eens nodig. Deze route bespaart energie en houdt de pc stiller, omdat de zware videokaart (als die er is) in een diepe slaapstand kan blijven. Voor een secundair scherm waarop je alleen statische informatie zoals een chatvenster of Spotify in beeld hebt, kan deze configuratie zelfs een slimme manier zijn om de hoofdvideokaart te ontlasten van onnodige basistaken.

Verlies grafische rekenkracht

Zodra je echter een zware taak start, zoals videobewerking of een moderne game, loopt de pc direct tegen een muur aan. De geïntegreerde graphics hebben namelijk geen eigen snel geheugen en snoepen zodoende rekenkracht van het werkgeheugen van je systeem. Je merkt dat aan haperende beelden, een lage framerate en textures die traag laden.

Zo kan het gebeuren dat een krachtige gaming-pc, die normaal gesproken honderd frames per seconde (100 fps) haalt, via de moederbordaansluiting terugvalt naar een onwerkbare diavoorstelling van minder dan 10 fps. De hardware is aanwezig, maar de snelweg naar het scherm is afgesloten, waardoor je in feite maar een fractie van de capaciteit krijgt waarvoor je hebt betaald.

Situaties waarin je deze aansluiting sowieso moet vermijden

Het aansluiten op het moederbord is een absolute dealbreaker voor iedereen die met visuele content werkt of veeleisende games speelt. Als je voor honderden euro's een videokaart hebt aangeschaft, is het een kostbare vergissing om de monitor ergens anders in te pluggen.

Ook bij het gebruik van een 4K-monitor kan de interne chip de verversingssnelheid vaak niet bijbenen, waardoor je naar een schokkerig beeld zit te kijken terwijl je hardware veel vloeiender kan presteren. Voor creatieve professionals die software gebruiken voor 3D-rendering is het gewoon onmogelijk om te werken; de software zal vaak zelfs een foutmelding geven omdat de benodigde grafische bibliotheken niet worden ondersteund door de standaard processor-chip.

De snelle poorten zitten meestal verder naar onderen en zijn doorgaans horizontaal gepositioneerd.

Zo vind je de juiste poort

Kijk eens goed naar de achterkant van je computerkast om te bepalen of je de volle snelheid benut. De aansluitingen van het moederbord staan altijd verticaal in een blok met andere poorten, zoals usb en ethernet. De aansluitingen van de videokaart zitten een stuk lager en staan horizontaal in een aparte sleuf. Zit je kabel in het bovenste blok, dan werk je op de 'reservemotor'.

Verplaats de kabel naar de horizontale poorten onderaan en je zult direct horen dat de pc anders reageert bij het opstarten. Soms moet je na deze wissel de pc even herstarten, zodat de drivers de nieuwe configuratie herkennen en de resolutie optimaal kunnen instellen voor jouw specifieke beeldscherm.

Klaar voor optimale prestaties?

Het aansluiten van een monitor op het moederbord in plaats van de videokaart zorgt ervoor dat de grafische rekenkracht van de pc onbenut blijft omdat het systeem terugvalt op de beperkte interne chip van de processor. Dat leidt tot een drastische afname in prestaties bij games en zware software, aangezien de gespecialiseerde hardware van de videokaart volledig wordt gepasseerd. Voor een optimale ervaring moet je de monitor altijd in de horizontale poorten van de videokaart prikken. Alleen in noodgevallen of bij eenvoudiger kantoortaken is de moederbordaansluiting een bruikbaar alternatief.