Terminologie

Sketch

Zo wordt de programmatekst (="broncode") van een Arduino programma genoemd. De Nederlandse naam schets wordt ook wel gebruikt, maar ik doe dat hier niet omdat dit verwarrend kan zijn.

Pin

De plaats op een Arduino of op een sensor, waar je een draadje op kunt aansluiten. Dit kan letterlijk een pin zijn, maar het kan de connector zijn waar je een pin in steekt of een oogje waar je een draadje aan kunt solderen.

Bootloader

De bootloader is een programma van slechts een paar honderd bytes, dat normaal in de processor van de Arduino aanwezig is. Het zorgt ervoor dat je de sketch via een USB kabel kunt uploaden en het start jouw sketch op, zodra je de Arduino aansluit. Soms heeft de bootloader nog enkele andere taken om ervoor te zorgen dat alles goed verloopt. Je kunt de processor ook programmeren zonder bootloader. Dat gaat dan via de ICSP pinnen (het blokje van zes pinnen dat je bij diverse Arduino-uitvoeringen ziet) met een zogenaamde "programmer". Als je een programma laadt via de ICSP pinnen, dan verdwijnt de bootloader en heb je dus iets meer geheugen voor je eigen programma beschikbaar. Je kunt de bootloader overigens weer vrij gemakkelijk terugkrijgen. Ook als je door kortsluiting o.i.d. niet meer kunt uploaden via de USB kabel kan het vaak nog wel via de ICSP aansluiting.

Breakout board

breakout boardEen typisch breakout board
Dit is een printplaatje met componenten, die klaar is voor gebruik. Vaak kun je ze rechtstreeks op 5 volt aansluiten. Soms moet je er nog wel pinnen op solderen. Vaak zijn benamingen bij de pinnen gedrukt. Als je een IC in een breakout uitvoering hebt dan is die veel minder kwetsbaar dan het IC en zijn overbodige pinnen niet doorgevoerd. Kies indien mogelijk dus altijd een breakout board.

Dupont kabeltjes

Dit zijn de kabeltjes waarmee je de pinnen van sensoren e.d. met de Arduino verbindt. Dupont kabeltjes worden ook wel jumper kabeltjes genoemd. Het is handig als je verschillende uitvoeringen hebt (mannelijk, vrouwelijk, man naar vrouw). Als je displays e.d. wilt aansluiten koop dan een set kabeltjes die eruit zien als een veelkleurige "flatcable": je kunt daar het juiste aantal kabeltjes afscheuren en de rest bij elkaar houden. Als je vierkante stekkertjes koopt dan kun je die met lijm voor plastic modellen aan elkaar lijmen zodat je een handige connector krijgt.

Shield

Een printplaat die precies op één van de Arduino types past. Vaak zijn bovenop dezelfde aansluitingen aanwezig als bij de Arduino. Voorbeelden zijn internet shields, waarmee de Arduino via internet kan communiceren en display shields. Ik gebruik ze zelf niet omdat er vaak goedkopere breakout boards zijn die hetzelfde kunnen als het shield en universeel bruikbaar zijn. Een shield voor het ene type Arduino Uno past niet op het andere type.

PWM (Pulse Width Modulation of Pulsbreedtemodulatie)

Een aantal pinnen van de Arduino heeft de mogelijkheid een blokgolf af te geven met een vaste frequentie, maar met een variabele pulsbreedte (PWM). Sluit je hier een ledje op aan, dan kan het oog de snelle verandering van het licht niet volgen. Als de pulsbreedte groot is, dan zal de led veel licht lijken te geven en als de pulsbreedte klein is dan weinig. Het is bij de Arduino zo geregeld dat het net lijkt alsof je een instelbare analoge gelijkspanning hebt, maar dat is dus in werkelijkheid niet zo. Je gebruikt hiervoor de functie analogWrite. Deze zal alleen werken als je een pin gebruikt die PWM ondersteunt, maar welke dat zijn is voor alle Arduino's anders. Je kunt ook zelf PWM programmeren, maar alleen als je Arduino geen andere taken heeft zal dat goed werken. Als je een echt instelbare gelijkspanning wilt hebden dan moet je een DAC (digitaal naar analoog converter) gebruiken. Er is zoveel over PWM met de Arduino te vertellen dat ik hoop daar over enige tijd een aparte pagina over te kunnen maken.

Breadboard

Met een breadboard wordt een insteekplaatje voor elektronische componenten, zoals leds en weerstanden, bedoeld. Bij de Arduino worden meestal zogenaamde "solderless" breadboards gebruikt. De meest gebruikte solderless breadboards hebben 400 ("half size") of 830 of 840 ("full size") insteekgaten. Ze hebben aan de beide zijkanten een strook voor VCC en aarde. Dit wordt aangegeven door de rode en blauwe lijn. Bij de full size uitvoering zijn deze lijnen (of alleen de rode lijnen) soms onderbroken. Daardoor kun je twee elektrisch gescheiden Arduino's aansluiten.
Er bestaan kleine breadboards waarop een kleine Arduino past en miniatuur breadboards voor speciale doeleinden. Daarnaast zijn er speciale uitvoeringen die je bijvoorbeeld ergens op kunt schroeven, maar de meeste breadboards kun je ergens op plakken als je de beschermfolie aan de achterkant verwijdert. Er is veel verschil in kwaliteit en dat heeft niet altijd met de prijs te maken. In slechte breadboards kost het moeite de componenten erin te steken of is er geen goed contact. Veel breadboards hebben lipjes, waarmee je ze aan elkaar kunt koppelen om een groter breadboard te krijgen. Dan moeten ze wel van dezelfde fabrikant komen anders past het geheid niet. De meest gebruikte grotere breadboards bestaan uit drie delen die je gemakkelijk aan of af kunt koppelen. Hieronder zie je een voorbeeld van drie aan elkaar gekoppelde breadboards, waarbij ik van twee breadboards de zijstrook heb weggelaten. Hierdoor ontstaat een groot breadboard waarop brede componenten passen. Ik heb de breadboards op een plankje gelijmd en dat voorzien van rubberen dopjes om een stabiel geheel te krijgen.

Groot breadboard voor brede componenten.

Drie soorten breadboards.
Als je wel wilt solderen dan kun je een solder-able breadboard kopen. Er zijn er die dezelfde structuur hebben als bijvoorbeeld een half size solderless breadboard, handig maar duur. De goedkoopste uitvoeringen zijn plaatjes met gaatjes waarin je iets kunt solderen, De gaatjes zijn niet met elkaar verbonden en dat kan lastig zijn. Daarnaast zijn er soortgelijke plaatjes waarbij de gaatjes twee aan twee met elkaar verbonden zijn en breadboards waarin alle gaatjes in één richting met elkaar verbonden zijn (Veroboard). Bij de laatste uitvoering moet je overtollige verbindingen handmatig weghalen met een 3 mm boor. Maak hiervoor een handig gereedschapje door een 3 mm boortje in een handvat vast te lijmen.

Step-up converter


Step-up (of boost-up) converter
Een step-up converter (of boost-up converter) is een elektronisch apparaatje, waar een lage spanning ingaat en een hogere, gestabiliseerde spanning uit komt. Er zijn diverse uitvoeringen die je gemakkelijk in een breadboard kunt prikken. De step-up converter heeft vaak een vrij groot bereik voor de inkomende spanning. Zo kan je een standaard step-up converter voor 5 volt al gebruiken vanaf 0,9 volt. Bedenk wel dat de converter nooit meer vermogen kan leveren dan dat je erin stopt. Naarmate de uitgangsspanning meer verschilt van de ingangsspanning kun je dus minder stroom "aftappen". Daarbij komt nog dat je altijd verlies hebt, tot wel 15%. Een rekenvoorbeeld: ik gebruik de 3,3 volt pin van een nodeMCU om een display van voldoende spanning te voorzien. Stel dat de vaste 3,3 volt pin van de nodeMCU 50 mA kan leveren. De gebruikte step-up converter kan dan 0,85×(3,3/5,0)×50 mA = 28 mA leveren. Ruimschoots voldoende voor dit type displays!

Regelbare step-up converters

Er zijn ook step-up converters die een regelbare uitgangsspanning hebben. De hieronder afgebeelde versie is erg goedkoop en toch efficiënt. Hij kan spanningen van 2 volt tot 24 volt leveren. De spanning is nauwkeurig in te stellen met een 25 slags-potmeter. Deze converter is niet geschikt om op een breadboard te worden gezet, maar als je er een paar Dupont kabeltjes op soldeert lukt dat natuurlijk wel.

Step-down of step-up/step-down converters

Uiteraard bestaan er ook step-down converters, maar ik zou deze alleen in heel bijzondere situaties gebruiken. Ook bestaan er combinaties van step-up en step-down. Dat kan heel handig zijn als je een sterk variabele ingangsspanning hebt die ook te hoog kan worden, Meestal zijn ze minder efficiënt dan step-up converters.

Communicatieprotocollen

I²C (Inter-Integrated Circuit)

Dit is een systeem, waarmee je met slechts twee signaalkabeltjes ingewikkelde apparaten kunt aansturen. De Arduinos hebben pinnen die hiervoor speciaal gemaakt zijn, zodat je altijd weet hoe je I²C apparaten moet aansluiten: bij de Arduino Uno (en vele andere versies) moet SCA naar A4 en SCL naar A5. Een groot voordeel van I²C is dat je vele apparaten tegelijk kunt aansluiten op de twee pinnen. Elk apparaat moet dan uiteraard een verschillend adres hebben. Het adres van het apparaat kun je op internet vinden of achterhalen door alle adressen te proberen in een Arduino programma. Bij sommige apparaten kun je het adres kiezen uit enkele mogelijkheden.

SPI (Serial Peripheral Interface bus)

Dit is een systeem, waarmee je met slechts enkele signaalkabeltjes ingewikkelde appparaten kunt aansturen. Je kunt softwarematig kiezen hoe je het apparaat aansluit, maar beter is het om de pinnen die hiervoor gemaakt zijn te gebruiken (Arduino Uno 10 t/m 13). Je kunt dan iets sneller met het SPI-apparaat communiceren. Je herkent een SPI module aan de opschriften MOSI (Master Out Slave In) en MISO (Master In Slave Out) en SCLK (klok), maar soms worden hier ook wel andere termen voor gebruikt.

UART (universal asynchronous receiver/transmitter)

Dit protocol wordt onder andere gebruikt als je via RX en TX tussen twee apparaten contact legt. Ook hardware seriële poort(en) van de Arduino maken gebruik van UART. In de meeste gevallen kun je via functies zoals Serial.read() en Serial.print() op eenvoudige wijze via UART communiceren. In andere gevallen gebruik je een programma van de fabrikant, zoals je niet eens merkt dat UART gebruikt wordt...
Houd er rekening mee dat de meeste Arduino's pin 0 en pin 1 gebruiken als RX en TX voor de seriële communicatie, dus ook bij het uploaden van een sketch via de USB poort. Soms moet je iets wat je op die poorten hebt aangesloten loskoppelen tijdens het uploaden of als je de seriële monitor wilt gebruiken. Om deze reden worden in mijn voorbeeld sketches deze twee pinnen nauwelijks gebruikt.
Nog iets om aan te denken: TX van het ene apparaat moet op RX van het andere apparaat worden aangesloten en omgekeerd.