
Een Arduino is een board met daarop een programmeerbare microcontroller (uController). Een originele Arduino kan je herkennen aan de groen blauwe kleur en aan het Arduino logo. Vandaag de dag zijn er ook veel kopieën in omloop in verscheidene kleuren. Een kopie mag niet het Arduino logo dragen, doen ze dit toch dan noemen we dit klonen en die zijn illegaal.
Een arduino board heeft verscheidene digitale in- en uitgangen en enkele analoge ingangen. Een digitale in- uitgang kan worden gebruikt om bijvoorbeeld schakelaars in te lezen of om leds of relais te schakelen.
Je moet hier ook denken aan servo motoren, stappen motoren, dimbare verlichting, lichtsluisjes etc.
Voor de modelspoorhobbyisten is het ook mogelijk om een arduino te gebruiken icm, DCC, Loconet, XpressNet en S88.
Dus om bovenstaande vraag te beantwoorden, ‘wat kan je er mee?’ Nou alles wat je kan bedenken.
Hoe werkt een Arduino
Een Arduino heeft zgn. GPIO pinnen. Dat staat voor General Purpose Input Outputs. Een zo’n pin kan je als een input gebruiken om bijvoorbeeld een schakelaar of een terugmelder in te lezen, maar je kan ook zo’n pin als output gebruiken om een ledje, relais of servo aan te sluiten.
Dit is het interne schema van 1 zo’n Arduino pin. Alles tussen de zwarte lijntjes zit binnen in die grote zwarte chip op het Arduino board.

Die schakelaars zijn eigenlijk transistoren, maar dit legt wat makkelijk uit. In code kan je de pin op 5V aansluiten en op GND (0V) aansluiten. Je kan ook de interne pull-up weerstand aanzetten. Dit doe je meestal als je de pin als een input gebruikt.

In plaats van de interne pull up weerstand kan je ook zelf een externe pull up weerstand of een pull down weerstand plaatsen. Wat belangrijk is, is dat de pin of omhoog of omlaag wordt getrokken met een weerstand. Als je dat niet doet, dan heb je een ‘zwevende’ pin. De spanning is dan niet keihard 0V of 5V met als gevolg dat je willekeurige statussen kan krijgen. Alles onder de 0.7V wordt als een logische 0 beschouwd. Alles boven de 2.8V is een logische 1. Alles daar tussen is een grijs onvoorspelbaar gebied.
Een arduino programmeren
Voordat een Arduino iets voor je gaat doen, moet het ding geprogrammeerd worden. Programmeren is niet iets wat iedereen ligt. Gelukkig zijn er verscheidene kant en klaar programma’s waarmee je zonder te programmeren toch ook al uit de voeten kan komen.
Het programmeren begint met het downloaden en installeren van de Arduino IDE van arduino.cc

Een van de eerste dingen die je kan doen, is het openen van de ‘blink’ sketch (= benaming voor een arduino programma) en dat up te loaden naar je arduino board. Onder file -> examples -> 01. basics vind je de blink sketch

Om een Arduino te voorzien van een programma (ook wel flashen genoemd) moeten er in de IDE 2 instellingen gedaan worden. Het correcte type arduino board en de juiste COM port moet geselecteerd worden.

Beide instellingen vind je onder Tools.
Als de Arduino met USB is verbonden aan de computer, verschijnt de COM poort onder het tapje ‘Port’

Meestal is het de onderste, maar dit kan nog wel eens per computer verschillen.
Als beide instellingen goed staan, kan je de sketch eerst ‘bouwen’ door op het vinkje links boven in te drukken. De code in de IDE wordt dan ‘gecompileerd’ (veranderd naar instructies die de arduino begrijpt). Door vervolgens op de pijl naast het vinkje te klikken, wordt het programma in de Arduino geladen. Je kan ook direct op uploaden klikken omdat het het programma dan vanzelf gecompileerd wordt

Om te leren programmeren, kan je het beste beginnen met de voorbeelden te bestuderen en aanpassingen proberen te maken. Het helpt ook om YouTube tutorial video’s te bekijken. Aanvullend heb ik een twee delige cursus gemaakt waarin ik de belangrijkste ins en outs van de programmeertaal c++ uitleg. (nog niet af)
Als je codeert, is het raadzaam om regelmatig je sketch te compileren. Dit maakt het makkelijker voor je om eventuele foutjes te vinden. Als je namelijk 10 lijntjes heb getikt, en je hebt een compile-error dan weet je dat de error ergens in je 10 lijntje zit. Kom je na 500 lijntjes code er achter dat je een error heb.. ja ga maar zoeken.
Mijn Libraries
Ik heb op mijn github pagina menig projecten samengesteld in de loop der tijd. Ik heb zo ook voor mij zelf een lijst met nuttige libraries gemaakt en samengesteld. Een paar van die libraries
Voor diegene die het programmeren niet ligt, heb ik een grafische omgeving gemaakt genaamd FunctionBloX daarmee kan je ook een arduino programmeren door blokjes te slepen. Je hebt wel de IDE nodig om het programma in de Arduino te laden.