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
Wat betekent IP68 eigenlijk?
© ID.nl
Huis

Wat betekent IP68 eigenlijk?

Bij de specificaties van een nieuwe smartphone, smartwatch of bluetooth-speaker zie je vaak de term 'IP68' staan. In marketinguitingen wordt dit veelal vertaald naar 'waterdicht' of 'stofbestendig'. Dat klinkt geruststellend, maar de praktijk is weerbarstiger. Kun je met een IP68-telefoon daadwerkelijk zwemmen, of biedt de certificering slechts bescherming tegen een val in het toilet?

De term IP68 is een technische classificatie die exact aangeeft in welke mate de behuizing van elektronica bestand is tegen invloeden van buitenaf. De afkorting IP staat voor Ingress Protection (of soms International Protection). Het is een internationale standaard die duidelijkheid moet scheppen over de robuustheid van een apparaat. De code bestaat altijd uit twee cijfers, waarbij het eerste cijfer iets zegt over vaste stoffen en het tweede cijfer over vloeistoffen.

©ID.nl

Het eerste cijfer: bescherming tegen stof

In de code IP68 staat het eerste cijfer, de 6, voor de bescherming tegen vaste deeltjes zoals stof en zand. Deze schaal loopt van 0 (geen bescherming) tot 6 (maximale bescherming). Een apparaat met een 6 als eerste cijfer is dus volledig stofdicht.

In een testomgeving betekent dit dat er, zelfs na acht uur blootstelling aan circulerend stof, niets de behuizing is binnengedrongen. Voor de levensduur van je toestel is dit heel belangrijk, aangezien opgehoopt stof aan de binnenkant kan zorgen voor slechtere koeling of zelfs kortsluiting.

©ID.nl

Het tweede cijfer: bescherming tegen water

Voor veel consumenten is het tweede cijfer doorslaggevend bij de aankoop. Dit getal geeft de weerstand tegen vocht aan. Bij IP68 is dit een 8. Hoewel de schaal in specifieke industriële gevallen doorloopt tot 9, is 8 doorgaans de hoogste score die je bij consumentenelektronica tegenkomt.

Om de waarde van die 8 te begrijpen, is het goed om te weten dat een 4 slechts staat voor spatwaterdichtheid (bijvoorbeeld regen) en een 7 aangeeft dat een toestel incidenteel ondergedompeld kan worden (tot 1 meter diep).

Een IP68-certificering gaat een stap verder. Het betekent dat het toestel hermetisch is afgesloten en geschikt is voor langdurige onderdompeling dieper dan 1 meter. Fabrikanten mogen bij dit cijfer zelf specificeren wat de exacte limiet is. Vaak garanderen merken zoals Samsung of Apple dat een toestel 30 minuten lang op een diepte van 1,5 tot wel 6 meter kan overleven. Het is daarom altijd slim om de specifieke productpagina van het apparaat te raadplegen voor de exacte waarden.

Laboratorium versus de praktijk

Hoewel de specificaties suggereren dat je probleemloos het water in kunt duiken met je elektronica, is enige nuance op zijn plaats. De tests voor deze certificeringen worden namelijk uitgevoerd onder strikte laboratoriumcondities. Hierbij wordt gebruikgemaakt van vers, stilstaand kraanwater. De werkelijkheid is vaak anders.

©ID.nl

Wanneer je bijvoorbeeld met een telefoon gaat zwemmen, beweeg je door het water. Hierdoor ontstaat waterdruk die lokaal hoger kan zijn dan de druk in een stilstaande testtank. Hierdoor kan water alsnog langs de afdichtingen worden geperst. Daarnaast is de samenstelling van het water een risicofactor. Zeewater bevat zout en zwembadwater bevat chloor. Beide stoffen kunnen de lijmranden en rubberen afdichtingen van een toestel aantasten. Zodra deze afdichtingen uitdrogen of poreus worden, is de waterdichtheid niet langer gegarandeerd. Ook zeep en shampoo onder de douche verlagen de oppervlaktespanning van water, waardoor vocht makkelijker binnendringt.

Slijtage en garantievoorwaarden

Een ander belangrijk aspect is de factor tijd. Een gloednieuw toestel dat net uit de doos komt, voldoet perfect aan de IP68-normen. Na verloop van tijd kan de bescherming echter afnemen door normale slijtage, temperatuurschommelingen of kleine valpartijen die onzichtbare haarscheurtjes veroorzaken. Een toestel met een barst in het scherm of de achterkant is per definitie niet meer waterdicht.

©ID.nl

Tot slot is er een belangrijk voorbehoud rondom de garantie. Vrijwel alle fabrikanten sluiten waterschade uit van de fabrieksgarantie, ondanks de IP68-rating. In de meeste moderne smartphones zitten vochtsensoren. Als deze verkleuren door contact met water, zal een reparatieverzoek doorgaans worden afgewezen. De fabrikant kan achteraf namelijk niet controleren of het toestel op 1,5 meter diepte is geweest (wat zou moeten kunnen) of op de bodem van een diep zwembad heeft gelegen.

Conclusie

IP68 biedt een goede bescherming bij alledaagse ongelukjes. Valt je telefoon per ongeluk in de wasbak, het toilet of een plas water, dan is de kans op schade met deze certificering zeer klein. Maar zie IP68 vooral als een vangnet voor noodgevallen. Gebruik je je telefoon onder water, bijvoorbeeld in zee voor onderwaterfotografie, dan kun je beter het zekere voor het onzekere nemen en een speciale waterdichte hoes gebruiken.

3x IP68-smartphones

Vrijwel alle high-end smartphones hebben tegenwoordig deze certificering. Dit is de standaard voor toestellen in het duurdere segment.

Samsung Galaxy S25-serie: Samsung voorziet zijn toptoestellen al jaren standaard van IP68. Dit geldt voor de gehele lijn (S25, S25+ en S25 Ultra).

Apple iPhone 17-serie: Hoewel Apple vaak spreekt over 'maximale diepte van 6 meter diep tot 30 minuten' (wat de IP68-norm overstijgt), vallen ze technisch onder de IP68-classificatie. Dit geldt voor zowel de standaardmodellen als de Pro-versies. Lees hier onze Apple iPhone 17 review.

Google Pixel 10 Pro XL: Ook de nieuwere generaties telefoons van Google zijn volledig stof- en waterdicht volgens deze norm. Lees hier onze Google Pixel 10 Pro XL review.

3x IP68-smartwatches (5ATM)

Bij smartwatches is het opletten: IP68 is vaak niet genoeg om mee te zwemmen (vanwege de armslag-druk). Daarom hebben goede horloges vaak ook een '5ATM' of 'WR50' rating. De onderstaande modellen combineren deze eigenschappen of hebben een gelijkwaardige bescherming.

Samsung Galaxy Watch 8: Deze horloges hebben expliciet zowel een IP68- als een 5ATM-rating, waardoor ze officieel geschikt zijn om mee te zwemmen. Lees hier onze Samsung Galaxy Watch 8 Classic review.

Google Pixel Watch 3: Ook dit horloge draagt de IP68-classificering in combinatie met 5ATM waterbestendigheid. Lees hier onze Google Pixel Watch 3 review.

Apple Watch Ultra 2:Let op: Apple gebruikt officieel de zwaardere zwemstandaard (WR100; WR staat voor water-resistant) en noemt daarbij vaak IP6X voor stofdichtheid. In de volksmond valt deze watch in de "beter dan IP68"-categorie voor water, maar technisch is de rating anders omschreven. Het horloge is echter uitstekend waterdicht. Lees hier onze Apple Watch Ultra 2 review.

3x bluetooth-speakers (IP68 vs. IP67)

Hier zit een addertje onder het gras. De overgrote meerderheid van de "waterdichte" speakers (zoals de populaire JBL Flip 6 of UE Boom 3) heeft een IP67-rating. Dat betekent: dompeldicht tot 1 meter. IP68 (dieper dan 1 meter) is bij speakers zeldzaam omdat je een speaker zelden diep onder water duwt. Toch zijn er inmiddels modellen die de stap naar IP68 maken of zeer dicht in de buurt komen:

JBL Charge 6: In de nieuwste generaties stappen fabrikanten zoals JBL bij specifieke modellen over naar IP68 om de robuustheid te benadrukken. (Let op: check altijd de doos, de voorganger Charge 5 was nog IP67).

Tribit StormBox Micro 2: Een zeer populaire, compacte speaker die vaak wordt geprezen om zijn volledige waterdichtheid (IP67, maar in tests vaak robuuster bevonden).

Soundcore Motion X600: Deze speaker staat bekend om zijn ruimtelijke geluid: de muziek lijkt van alle kanten te komen in plaats van uit één punt. Ondanks zijn chique uiterlijk is hij met een IPX7-rating volledig waterdicht, dus hij kan prima mee naar het park of strand.

Advies: Voor een bluetooth-speaker is IP67 in de praktijk ruim voldoende (hij overleeft een val in het zwembad). Staar je voor speakers dus niet blind op die '8' aan het eind; een '7' is hier ook uitstekend.

Een verfrissende duik?

(in het zwembad of in zee)
▼ Volgende artikel
Waar voor je geld: 5 slimme personenweegschalen
© ID.nl
Gezond leven

Waar voor je geld: 5 slimme personenweegschalen

Bij ID.nl zijn we gek op producten waar je niet de hoofdprijs voor betaalt. Een paar keer per week speuren we daarom binnen een bepaald thema naar zulke deals. Wil je je gewicht goed in de gaten kunnen houden, dan is een personenweegschaal een must. Een digitale weegschaal is zeer nauwkeurig. Wij vonden vijf goed gewaardeerde exemplaren.

Een digitale personenweegschaal biedt talrijke voordelen. Veel modellen hebben bijvoorbeeld extra functies zoals het meten van BMI, vetpercentage en spiermassa. Ze zijn gebruiksvriendelijk en vaak uitgerust met geheugen voor meerdere gebruikers. Een digitale weegschaal is eenvoudig af te lezen dankzij een duidelijk digitaal display. Door het moderne en compacte ontwerp past hij goed in elke badkamer. Wij vonden vijf modellen die werden gewaardeerd met een cijfer 8 en hoger op Kieskeurig.nl en die voorzien zijn van handige functies.

Inventum PW708ZW

De Inventum PW708ZW geeft – naast het gewicht – ook inzicht in vetpercentage, vochtpercentage, spiermassa en botmassa. Het apparaat heeft een geheugenfunctie voor maximaal 10 gebruikers, waardoor meerdere personen hun gegevens kunnen bijhouden. Het ontwerp is voorzien van een glazen weegoppervlak met roestvrijstalen accenten en een blauw verlicht LCD-display voor duidelijke aflezing.

Extra meetfuncties:
vetpercentage, vochtpercentage, spiermassa en botmassa
App beschikbaar: Nee
Materiaal: Gehard glas met roestvrijstalen accenten
Maximum gewicht: 180 kg

Beurer BF195LE

De Beurer BF195LE is een digitale personenweegschaal die naast het gewicht ook lichaamsvet, lichaamswater, spiermassa, botmassa, BMI en caloriebehoefte (AMR) meet. Hij is uitgerust met een rond, blauw verlicht LCD-display en roestvrijstalen elektroden. Er kunnen gegevens van maximaal 10 gebruikers worden opgeslagen.

Extra meetfuncties:
vetpercentage, vochtpercentage, spiermassa, botmassa, BMI en AMR
App beschikbaar: Nee
Materiaal:
Gehard glas met roestvrijstalen elektroden
Maximum gewicht:
180 kg

Medisana BS 440 Connect

Naast het meten van het gewicht kun je op deze weegschaal ook metingen van lichaamsvet, lichaamswater, spiermassa, botmassa, BMI en het basaal metabolisme (BMR) aflezen. De weegschaal maakt gebruik van ITO-elektroden die vrijwel onzichtbaar zijn op het glazen oppervlak, wat bijdraagt aan een strak en modern ontwerp. Met bluetooth-functionaliteit kunnen de meetgegevens draadloos worden gesynchroniseerd met de VitaDock+ app op iOS- en Android-apparaten, zodat je je gegevens makkelijk kunt bijhouden en analyseren.

Extra meetfuncties:
vetpercentage, vochtpercentage, spiermassa, botmassa, BMI en BMR
App beschikbaar: Ja
Materiaal: Gehard glas met ITO-elektroden
Maximum gewicht:
180 kg

Medisana BSA42

De Medisana BSA42 kent naast het wegen ook lichaamsanalysefuncties, waaronder metingen van lichaamsvet, lichaamswater, spiermassa, botmassa, BMI en caloriebehoefte (BMR). Het apparaat ondersteunt bluetooth-gegevensoverdracht naar de VitaDock+ app en kan gegevens van maximaal 8 gebruikers opslaan. De weegschaal is voorzien van een groot LCD-display en roestvrijstalen elektroden.

Extra meetfuncties:
vetpercentage, vochtpercentage, spiermassa, botmassa, BMI en BMR
App beschikbaar: Ja
Materiaal:
Gehard glas met roestvrijstalen elektroden
Maximum gewicht:
180 kg

Tefal Goodvibes Life BM9620

De Tefal Goodvibes Life BM9620 is een digitale personenweegschaal die 10 lichaamsmetingen biedt, waaronder gewicht, BMI, vetpercentage, spiermassa, botmassa en vochtpercentage. Het apparaat werkt met een app voor het bijhouden van gegevens en ondersteunt een onbeperkt aantal gebruikers. De weegschaal heeft een zwart glazen oppervlak met vier roestvrijstalen sensoren en een wit LED-display.

Extra meetfuncties:
vetpercentage, vochtpercentage, spiermassa, botmassa en BMI
App beschikbaar: Ja
Materiaal:
Gehard glas met roestvrijstalen sensoren
Maximum gewicht:
180 kg