Arduino computer

Arduino single board computerDe Arduino is een opensource board / computerplatform dat is gebouwd rond de ATmega microcontroller familie van Atmel. Het is een goedkoop board (tussen de 5 en de 30 euro maar gemiddeld 10 a 11 euro), er is veel code voor beschikbaar, een goed en gratis ontwikkelplatform beschikbaar, veel documentatie en voorbeeld projecten online te vinden en er zijn veel (vaak goedkope) uitbreidingen en sensoren te koop. Dit maakt de Arduino een ideaal platform voor hobbyisten en doordat er zeer veel digitale en analoge invoer en uitvoer pinnen beschikbaar zijn met uiteenlopende functies zoals ADC, PWM, I2C en interrupts is het ook een uitermate geschikt board voor het aansturen van robots. Er zijn (ook redelijk goedkoop) diverse uitbreiding boards voor de Arduino boards te koop zoals schakelaars, lichtsensoren, bewegingsmeters, afstandsmeters, temperatuursensoren, RF en Infrarood afstandbedieningen, USB, Bluetooth en zelfs Wifi of een standaard seriële interface. Door middel van de standaard uitvoer pinnen en uitvoer boards kunt u bijvoorbeeld motoren, lampjes en beeldschermen aansturen. Deze extra invoer en uitvoer boardjes heten ook wel shields en hiervan wordt een ruim assortiment via Internet te koop aangeboden. De diverse Arduino boards zijn ook zeer geschikt voor het aansturen van Robots. Vriendelijke groet, Hein Pragt
<

Verschillende uitvoeringen

Het Arduinoplatform kent verschillende uitvoeringen van de hardware rond de Atmega168 of Atmega328 van zeer klein tot zeer uitgebreid, van goedkoop to redelijk duur. De meest gebruikte modules die kant en klaar in Italië worden gemaakt zijn: de Arduino UNO. Arduino, dit is de meeste bekende versie, de Arduino Mega 2560 met de Atmega 2560-chip, de Arduino Nano en de Arduino mini die zeer klein zijn. Daarnaast zijn er ook Arduino bouwpakketten te koop waarbij zelf alle componenten op een printplaat gesoldeerd moeten worden. Ook is er momenteel een ruim aanbod aan zogenaamde klonen, deze boards zijn (meestal volledig) gelijk aan de originele boards, soms met enkele uitbreiding en meestal een stuk goedkoper.

De Arduino is opgebouwd rond de 8 bits microcontroller van de firma Atmel en de twee belangrijkste varianten zijn de Atmel 168 (16 k geheugen 8 bits) en de Atmel 328 (32 k geheugen 8 bits). Deze microcontroller bevat standaard: 14 digitale inputs of outputs of een combinatie daar van, 6 Analoge inputs, 16 of 32 kb flash geheugen, meestal een USB aansluiting en een I2C interface. Wanneer u begint met programmeren in een nieuwe programmeertaal begint u meestal met een eenvoudig "Hello world!" programma, bij de Arduino is het eerste programma een klein programma om een led te laten knipperen. Dit gaat bij de Arduino wel heel erg eenvoudig omdat op de digitale pin 13 al een LED is aangesloten is. Wanneer u simpelweg een USB kabel aansluit en het voorbeeld programma knipt en plakt, ziet u na het compileren en het doorsturen van de code naar de Arduino dat de LED knippert. Zo eenvoudig is het!


Goedkope arduino boards

Ik bestel zelf vrij vaak goedkope Arduino boards in China maar ook uitbreiding board zijn in China redelijk goedkoop verkrijgbaar. De kwaliteit is goed, wel maakt men in China vaak gebruik van een goedkope kloon van de USB chip (de CH340) die prima werkt maar waar u wel een speciale driver voor moet downloaden. Maar wanneer u dit eenmaal gedaan heeft werken alle clone boards ook prima. Hier kunt u goedkope Arduino boards en sensor modules online kopen.


Arduino programmeren

Arduino programmeer ideOm een arduino te programmeren heeft u software nodig, namelijk de Arduino programmeeromgeving. Deze gratis ontwikkelomgeving kunt u hier downloaden , deze omgeving is geschikt voor Windows, Linux en Mac OS X. Wanneer u de computer via een USB kabel aangesloten heeft op het Arduino board kunt u rechtreeks de programmacode overzetten naar de Arduino. U programmert dus op uw eigen computer en "upload" de code naar het Arduino board. Het enige wat u hoeft te doen is in het menu het type board te selecteren dat u gebruikt en de poort waarop het board aangesloten is (wanneer er meerdere poorten zijn). Er is eigenlijk maar één programmeertaal populair voor de Arduino en dat is de programmeertaal C en C++. De programmeeromgeving inclusief een grote hoeveelheid standaard bibliotheken voor LCD, Servo, motoren, wifi e.d. is gratis te downloaden. De programeertaal C is niet de meest eenvoudige programmeertaal, op deze site kunt u ook een eenvoudige beginnerscursus C en C++ vinden. De Arduino C veriant wijkt op een paar punten af van de C standaard en helaas zijn ook niet alle functies aanwezig in de meegeleverde bibliotheken. Het blijft natuurlijk een 8 bits processor en bijvoorbeeld de ondersteuning van double variabelen is een beetje gebrekkig. Daar waar een standaard C programma begint met een main() routine, bestaat een arduino programma (vaak een scetch, schets, genoemd) bestaat uit twee programma blokken, de setup() en de loop(). Aan het begin van het programma staat de "void setup()" en in deze functie staat de initialisatie van het programma zoals initialisatie van I/O pinnen, initialisatie van software libraries en globale variabelen. De setup() functie wordt bij het opstarten van het programma één keer uitgevoerd door de arduino. Daarna is de loop() functie aan de beurt, deze wordt eindeloos herhaald tot de stroom wordt uitgezet. Vanuit deze loop() functie kunt u weer andere functies aanroepen en zo kunt u een goed gestructureerd programma in elkaar bouwen. Link: Online basiscursus C en C++ op deze site

Arduino Uno

arduino unoDe Arduino Uno (eigenlijk versie 1.0) is het basis microcontroller board die gebaseerd is op de ATmega328 processor. Het board heeft 14 digitale input / output pennen waarvan er 6 gebruikt kunnen worden als PWM outputs en 6 analoge inputs. De processor snelheid is 16 MHz en het board heeft een USB aansluiting, een voedinspanning plug, een ICSP header en een reset knop. De gangbare versie momenteel is revision 3. Dit board is meestal de referentie standaard voor alle 'compatible' versies van andere leveranciers.

De Arduino Uno kan een Atmega8, Atmega168, of Atmega328 processor bevatten, recente modellen gebruiken allemaal de ATmega328, de configuratie van aansluitpennen is identiek voor alle drie processors. De voedingspanning kan geleverd worden via de USB kabel (let wel op de maximale stroom die deze kabel kan leveren) of via een externe spanningsbron. De minimale invoerspanning van de externe voeding is 7 volt en boven de 12 volt zal de spanningsregelaar erg warm worden. De aanbevolen spanning is dan ook tussen de 7 en 12 volt, een 9 volt batterij werkt ook prima. Elk van de 14 digitale aansluitpennen kan gebruikt worden als input of output waarbi de mode softwarematig ingesteld kan worden door middel van pinMode(). Ze werken op 5 Volt en kunnen maximaal 40 mA stroom per pin leveren. Ook kan er een softwarematig een internal pull-up weerstand ingeschakeld wordem van 20-50 kOhm. Sommige pennen hebben ook een dubbele functie: 0 en 1 RX en TX seriele verbinding, 2 en 3 externe interrupts, 3, 5, 6, 9, 10, en 11 kunnen PWM outputs zijn, 10, 11, 12 en 13 kunnen gebruikt worden voor SPI communicatie. Bij bijna elke Arduino zit er een led aan pin 13 en zit er vanaf de fabriek een blink programma ingebakken die deze led laat knipperen. A4 en A5 hebben een dubbel funtie als SDA en SCL pin voor I2C communicatie. Er kan softwarematig gekozen worden welke functie een aansluitpen heeft. Een van de voordelen van een Arduino Unu os dat de processor in dil uitvoering gewoon in een voetje zit en dus te vervangen is wanneer u de processor opgeblazen heeft. Dit is veel goedkoper dan een nieuw board kopen.

ChipATmega328 16 Mhz
Voltage5 V uitvoering
Voltage raw7 - 12 Volt
Digitale pins14 (waarvan 6 PWM)
Analoge inputs6
Stroom per pin 40 mA
Afmeting53.4 mm x 68.6 mm
SRAM2 KB
EEPROM1 KB
Flash32 KB

Arduino Uno versus Arduino Mega

arduino megaEr zijn behoorlijk wat verschillen tussen de Arduino Uno en de Arduino Mega waarvan sommige verschillen voor de hand liggen maar sommige verschillen zijn ook iets mee geniepig zoals pinnen op andere plekken (zoals I2C pinnen) en bijvoorbeeld andere mapping van interne registers voor bijvoorbeeld PWM frequentie en uitvoer pinnen. Maar de meeste van deze aanpassing zijn redelijk eenvoudig door te voeren waardoor de meeste Arduino Uno projecten ook werken op een Arduino Mega. Omgekeerd zal vaak wat moeilijker zijn omdat de Arduino Mega nu eenmaal meer functionaliteit heeft dan de Arduino Uno.

Een duidelijk zichtbaar verschil is het aantal I/O pinnen, de Arduno Uno heeft 20 I/O pinnen en de Arduino Mega 70 I/O pinnen wat een behoorlijk verschil is. Het aantal analoge pinnen is ook redelijk groot, de Arduino Uno heeft er 6 en de Arduino Mega 16. Natuurlijk is het altijd mogelijk om met externe IC's te multiplexen op de Arduino Uno maar dit vergt wel extra code en extra hardware. In dit opzicht is de Arduino Mega dus duidelijk in het voordeel. Ook het beschikbare geheugen is behoorlijk verschillend, de Arduino Uno heeft 32 KB flash geheugen (voor het programma), 2 KB SRAM (werkgeheugen) en 1 KB EEPROM, terwijl de Arduino Mega 256 KB flash geheugen, 8 KB SRAM geheugen en 4 KB EEPROM aan boord heeft.

De Arduino Mega heeft vier hardware seriële poorten tegenover één seriële poort voor de Uno, maar meestal is één ook voldoende. Maar bij het aansluiten van meerdere seriële apparaten kun de extra hardwarematige seriële poorten wel handig zijn. Ook is het mogelijk om bijvoorbeeld één seriële poort te gebruiken voor de applicatie en de andere om debugging informatie te verzamelen. Ook is het aantal PWM (Pulse Width Modulation) pinnen verschillend, de Arduino Mega heeft er 14 en de Arduino Uno 6 pinnen. Dit is zeer handig voor het aansturen van bijvoorbeeld motoren of servo's. Het kan natuurlijk ook softwarematig via andere pinnen maar hardwarematig is toch stabieler en gebruikt veel minder kostbare CPU tijd.

Er zijn ook wel nadelen aan de Arduino Mega, het board is duurder dan de Arduino Uno (dubbel zoveel onderdelen) en de |CPU chip zit er op gesoldeerd terwijl deze bij de Arduino Uno in een voetje zit. Bij de Arduino Uno kun je dus de chip nog vervangen, bij de Arduino Mega is dit dus niet meer mogelijk en moet een compleet nieuw board gekocht worden. Ook is de meeste software (en hardware) nog ontwikkeld voor de Arduino Uno en zijn er vaak (kleine) aanpassingen nodig om het werkend te krijgen op een Arduino Mega board. Toch wint de Arduino Mega het voor mij van de Arduino Uno in mijn Robot project waar de uitbreidingen de e Arduino Mega heeft erg welkom zijn.

ChipATmega1280 16 Mhz
Voltage5 V uitvoering
Voltage raw7 - 12 Volt
Digitale pins54 (waarvan 15 PWM)
Analoge inputs16
Afmeting53 mm x 101 mm
SRAM8 KB
EEPROM4 KB
Flash128 KB

*) ATmega2560 model heeft 256 KB flash geheugen!

Arduino Pro Mini

arduino pro miniDe Arduino pro mini 328 is klein, goedkoop en snel en ideaal voor gevorderden met Arduino. Het mini boardje draait op de ATMega328 chip, dit is dezelfde chip als de chip die in de Arduino UNO zit. Het board bevat geen pin headers en dit lijkt in eerste instantie wat onhandig maar blijkt in de praktijk zeer goed want u kunt de pinnen zelf in elke gewenste manier erop solderen of u kunt direct de draadjes op het board solderen. De Arduino Pro Mini kan worden geprogrammeerd met een USB naar serial converter die niet meegeleverd wordt, deze moet u los bestellen maar dit is een eenmalige aankoop, het board is voor meerdere toepssingen te gebruiken en wanneer u de Arduino Pro Mini eenmaal geprogrammeerd heeft, kunt u het USB naar serial board loskoppelen en weer voor iets anders (of een andere Arduino Pro Mini) gebruiken. Het board ondersteunt een automatische reset functie waardoor hij eenvoudig in te programmeren is.

Van dit board zijn ook zogenaamde klonen beschikbaar die precies hetzelfde zijn (sommigen hebben een paar extra I/O pinnen) en de goedkoopste variant die ik gekocht heb was 4 euro (maar dan moet u er wel een maand op wachten vanuit China). In Nederland is het board tussen de 6 en de 14 euro te koop, de levertijd van 2 dagen maakt dan wel iets goed. Het USB naar serrial board is ook los te koop, dit board kost ongeveer 10 euro en is steeds opnieuw te gebruiken.

ChipATmega328
Voltage3.3V en 5 V uitvoering
Voltage raw3.35 -12 V (3.3V model) of 5 - 12 V (5V model)
Digitale pins14 (waarvan 6 PWM)
Analoge inputs8
Afmeting33 mm x 18 mm
SRAM1 KB
EEPROM512 bytes
Flash16 KB

arduino pro miniHet board kan met de standaard Arduino programmeer IDE geprogrameerd worden, u kunt het board en de poort eenvoudig in het dropdown menu selecteren. Ook in dit board zit meestal het blink.c programma standaard geprogrammeerd zodat u eenvoudig kunt controleren of het board werkt. Ik heb zelf in eerste instantie alleen de header pinnen op de pennen aan de zijkant gesoldeerd zodat ik het USB naar serial board er op kon prikken. Let wel goed op de pin aansluitingen, ik ontdekte dat de pin aansluitingen op het USB naar serial board logisch gezien precies andersom zijn aangesloten. De boards zitten dus niet met de componenten kant naar elkaar toe wat ik in eerste instantie wel aangenomen had. Ook hier gaat weer op: "meten is weten, gissen is missen!". Let dus eerst goed op de pin aanduidingen voor u het board aansluit. Het board kan zich uit de USB aansluiting voeden, dus na het inprikken van de USB kabel begint de led al te knipperen. Afhankelijk van uw project kunt u een 3.3 of een 5 Volt versie kopen, aangezien al mijn Arduino projecten met 5 Volt werken heb ik tot nu toe alleen de 5 Volt versie gebruikt. De mogelijkheden van de kleine board zijn erg groot, omdat het piepklein is en amper stroom verbruikt is het een ideaal board voor kleine embedded toepassingen.

Arduino Pro Micro

arduino pro microDit piepkleine board doet alles wat u van de Arduino verwacht maar dan met een beperkt aantal pinnen. Het board heeft 4 keer 10-bit Analoge ingangen, en 12 digitale input / output pinnen waarvan er 5 als PWM pinnen gebruikt kunnen worden. Ook heeft het board hardware seriële aansluitingen Rx en Tx en heeft het een onboard micro USB poort. Het board draait op 16MHz en 5V en heeft een ingebouwde spanningsregelaar die tot 12 volt spanning kan omzetten. Het board heeft ook een 5 volt uitgang pin die een zeer beperkte stroom kan leveren voor aangesloten sensoren. Daarnaast heeft het een voedingsspanning led om aan te geven dat het board onder spanning staat en een RX en TX LED schakeling. Het board bevat standaard geen pin headers en dit lijkt in eerste instantie wat onhandig maar blijkt in de praktijk zeer goed want u kunt de pinnen zelf in elke gewenste manier erop solderen of u kunt direct de draadjes op het board solderen. De Arduino Pro Mini kan worden geprogrammeerd via de ingebouwde USB poort.

Het board kan met de standaard Arduino programmeer IDE geprogrameerd worden, u kunt het board en de poort eenvoudig in het dropdown menu selecteren. De mogelijkheden van de kleine board zijn erg groot, omdat het piepklein is en amper stroom verbruikt is het een ideaal board voor kleine embedded toepassingen.

ChipATmega32u4 16 Mhz
Voltage5 V uitvoering
Voltage raw7 - 12 Volt
Digitale pins10 (waarvan 5 PWM)
Analoge inputs4
Afmeting48 mm x 18 mm
SRAM2,5 KB
EEPROM1 KB
Flash32 KB

Arduino Nano

arduino nanoDe Arduino Nano is ook een heel klein Arduino boardje dat speciaal geschikt is om op een zogenaamd breadboard te gebruiken omdat de aansluitpinnen aan de onderkant zitten. Hierdoor kan het board eenvoudig in een breadboard geprikt worden. Het board is gebaseerd op de welbekende ATmega328 (Versie 3.x) of ATmega168 (Versie 2.x). Er zit geen voedingsplug op het board, wel voedinspanning pinnen. Het board kan gevoed worden door middel van de Mini-B USB aansluiting, 6 tot 12V spanning op de raw input of 5V gestabiliseerde voeding op pin 27. De spanningsbron zal automatisch geselecteerd worden uit de beste van de drie. De Arduino Nano kan worden geprogrammeerd via de ingebouwde USB poort.

Het board kan met de standaard Arduino programmeer IDE geprogrameerd worden, u kunt het board en de poort eenvoudig in het dropdown menu selecteren. De mogelijkheden van de kleine board zijn erg groot maar het ontwerp is wel speciaal voor gebruik op een experimenteerboard (breadboard) gemaakt.

ChipATmega328 / ATmega168 16 Mhz
Voltage5 V uitvoering
Voltage raw7 - 12 Volt
Digitale pins14 (waarvan 6 PWM)
Analoge inputs8
Afmeting45 mm x 18 mm
SRAM1 KB (ATmega168) of 2 KB (ATmega328)
EEPROM512 bytes (ATmega168) of 1 KB (ATmega328)
Flash16 KB (ATmega168) or 32 KB (ATmega328)

Overzicht verschillende arduino boards

Hier staat een overzicht met de specificaties van de meest gebruikte Arduino boards die gebaseerd zijn op de 8 bits AVR processoren van Atmel. De specificaties van het board zijn meestal afhankelijk van het type processor maar ook de voedingspanning. De 3,3 volt versie's zijn bijvoobeeld altijd 8 Mhz in kloksnelheid omdat bij deze spanning een hogere kloksnelheid niet betrouwbaar is, Wanneer u twijfel heeft of een board 5 volt of 3,3 volt is, kunt u dit vaak zien aan de opdruk van het kristal. Wanneeer hier 16 Mhz staat gaat het om een 5 volt versie en wanneer er 8 Mhz op staat is het een 3,3 volt versie.

Naam Processor Opr/Inp Volt CPU Speed Analoog Dig./PWMEEPROM SRAM Flash USB
Gemma ATtiny85 3.3 V / 4-16 V 8 MHz 1/0 3/2 0.5 0.5 8 Ja
LilyPad 1 ATmega168V 2.7-5.5 V 8 MHz 6/0 14/6 0.5 1 16 -
LilyPad 2 ATmega328P 2.7-5.5 V 8 MHz 6/0 14/6 0.5 1 16 -
SimpleSnap ATmega328P 2.7-5.5 V 8 MHz 4/0 9/4 1 2 32 -
LilyPad USB ATmega32U4 3.3 V / 3.8-5 V 8 MHz 4/0 9/4 1 2.5 32 Ja
Mega 2560 ATmega2560 5 V / 7-12 V 16 MHz 16/0 54/15 4 8 256 Ja
Micro ATmega32U4 5 V / 7-12 V 16 MHz 12/0 20/7 1 2.5 32 Ja
Pro 3v3 ATmega328P 3.3 V / 3.35-12 V 8 MHz 6/0 14/6 1 2 32 -
Pro 5v ATmega328P 5 V / 5-12 V 16 MHz 6/0 14/6 1 2 32 -
Pro Mini 3v3 ATmega328P 3.3 V / 3.35-12 V 8 MHz 6/0 14/6 1 2 32 -
Pro Mini 5v ATmega328P 5 V / 5-12 V 16 MHz 6/0 14/6 1 2 32 -
Uno ATmega328P 5 V / 7-12 V 16 MHz 6/0 14/6 1 2 32 Ja
Esplora ATmega32U4 5 V / 7-12 V 16 MHz n.v.t. n.v.t. 1 2.5 32 Ja
Ethernet ATmega328P 5 V / 7-12 V 16 MHz 6/0 14/4 1 2 32 Ja
Leonardo ATmega32U4 5 V / 7-12 V 16 MHz 12/0 20/7 1 2.5 32 Ja
Mega ADK ATmega2560 5 V / 7-12 V 16 MHz 16/0 54/15 4 8 256 Ja
Mini ATmega328P 5 V / 7-9 V 16 MHz 8/0 14/6 1 2 32 -
Nano 1 ATmega168 5 V / 7-9 V 16 MHz 8/0 14/6 1 2 32 Ja
Nano 2 ATmega328P 5 V / 7-9 V 16 MHz 8/0 14/6 1 2 32 Ja
Arduino RobotATmega32u4 5 V 16 MHz 6/0 20/6 1.5 2.5 32 Ja
BT ATmega328P 5 V / 2.5-12 V 16 MHz 6/0 14/6 1 2 32 -
Fio ATmega328P 3.3 V / 3.7-7 V 8 MHz 8/0 14/6 1 2 32 Ja


Hier kunt u goedkope Arduino boards en sensor modules online kopen.

Hier staat een overzicht met de specificaties van de meest gebruikte Arduino boards die niet gebaseerd zijn op de 8 bits AVR processoren van Atmel maar bijvoorbeeld e 32 bits ARM processoren. De specificaties van deze boards liggen stukken hoger, de prijs helaas ook.

Naam Processor Opr/Inp Volt CPU Speed Analoog Dig./PWM EEPROM SRAM Flash USB
101 Intel® Curie 3.3 V/ 7-12V 32MHz 6/0 14/4 - 24 196 Ja
MKR1000 SAMD21 Cortex-M0+ 3.3 V/ 5V 48MHz 7/1 8/4 - 32 256 Ja
MKRZero SAMD21 Cortex-M0+ 3.3 V 48 MHz 7/1 22/12 - 32 256 Ja
Due ATSAM3X8E 3.3 V / 7-12 V 84 MHz 12/2 54/12 - 96 512 2
Zero ATSAMD21G18 3.3 V / 7-12 V 48 MHz 6/1 14/10 - 32 256 2


De ATtiny processor

Arduino ATTiny variantenBinnen deze rubriek kunt u ook een pagina vinden over de ATTiny85 processor. Deze heeft maar 8 aansluit pennen, maar nadat ik de chip eens goed bekeken had, viel mij zijn kracht op. Het chipje bevat een volledige atmega processor met flash programmeergeheugen en ram aan boord met tevens een ingebouwde kristal oscillator. Het is dus een echte single chip computer met 6 in of uitgangen die ook nog eens extra functies hebben zoals Interrupts, PWM en analoog. Elke pin is redelijk vrij te programmeren voor een functie en of je nu 1 input en vijf outputs of omgekeerd wil, het kan allemaal met dit kleine chipje. Maar ook kan het chipje door middel van I2C communiceren met bijvoorbeeld een scherm of meerdere sensoren of via pinnen die als PWM output zijn aangewezen, bijvoorbeeld motoren aansturen. Er zijn kleine boards verkrijgbaar met een usb poort met daarop een ATTiny85 maar het chipje kan natuurlijk ook prima als standalone chip gebruikt worden. Om de ATTiny dan te programmeren heeft u wel een ISP programmeer board nodig, maar dit is een taak die onze ouder vertrouwde Arduno Uno natuurlijk prima kan vervullen. Op deze pagina staat dan ook een klein opzetbordje voor de Arduino Uno waarmee de ATTiny chips in circuit te programmeren zijn.
ATtiny programmeren d.m.v. een Arduino Uno.

SSD1306 gabaseerde OLED displays

Arduino SSD1306 i2c oled displayEen groot Oled scherm is meestal vrij duur maar er zijn ook goedkopere Oled displays te koop met mooie kleine schermen, in twee kleuren met een ingebouwde controller op basis van I2C of SPI met een resolutie van 128 x 64 of 64 x 48 pixels, Ik heb op het web zelfs kleine spelcomputers op basis van een Atmel processor, een paar knopjes en een van deze displays gezien. Leuk om dus eens mee te experimenteren en ik heb er dus twee aangeschaft van verschillende formaten. Als eerste ging ik op zoek naar een library om ze aan te sturen en daar zijn er enkele van. Maar als gewoonlijk zijn dit weer zeer uitgebreide libraries voor meerdere soorten displays en code die ik eigenlijk niet nodig heb. Ook ben ik vaak niet zo tevreden over de kwaliteit van de code, soms is het code van iemand anders waar men dan zelf weer een schil omheen geprogrammeerd heeft. Dat dit vaak niet goed is voor de codesize en het gebruikte geheugen (waar we er op de Arduino toch als niet zoveel van hebben) mag duidelijk zijn. Na een paar experimenten bedacht ik dat ik de displays in meerdere projecten zou willen gebruiken en dus besloot ik maar zelf een zeer compacte library te schrijven voor de Arduino met alle basis functies en voor twee type displays in alle oriëntaties.
SSD1306 gabaseerde OLED displays.

Aansluiting LCD scherm

arduino lcd schermHet is niet moeilijk om een standaard LCD display aan te sluiten op de Arduino. Het display dat ik hier beschrijf is één van de goedkoopste types die geen extra interface print heeft en voor een paar euro te koop is. U kunt zelf kiezen of u wel of niet backlight (dit is gewoon een extra led met twee extra aansluitingen op het board) wilt en wat voor kleur. Voordat u de bedrading van uw LCD scherm aansluit op de Arduino moet u eerste controleren of uw LCD dezelfde pin nummering heeft als in het schema hieronder. Meestal staat het op de print bij de aansluitpinnen geschreven. De wijze waarop ik het aansluit is geschikt voor de standaard library die in beschikbaar is in de programmeeromgeving zodat u zelf geen extra code hoeft te schrijven voor het LCD display maar gebruik kunt maken van de standaard bibliotheek functies. De Arduino is in staat om genoeg stroom te leveren op de 5 Volt uitgang om het LCD display te voeden. Dit bespaart weer een extra voedingprint. De GND (Ground) pin van de Arduino moet met diverse pinnen van het display verbonden worden en aan één van de pinnen van de potmeter. Door middel van deze potmeter kunt u straks het contrast van het LCD scherm regelen. Wanneer u achtergrondverlichting heeft moet de anode pin (BLA) worden aangesloten op 5V via een 180O weerstand. De eerste vier data pennen van de LCD (DB0 te DB3) kunnen gewoon los blijven hangen aangezien we het display in 4 Bits mode gaan gebruiken. Dit doet de software van de Arduino bibliotheek standaard voor u. Na het aansluiten en onder spanning brengen moet u eerst met de potmeter het contrast instellen waarna u door middel van een simpel "Hello world!" programma kunt testen of het display werkt.

Aansluiting LDR aan de Arduino

arduino LDR aansluiting ArduinoVoor het meten van de lichtsterkte gebruikt men vaak een lichtgevoelige weerstand of LDR (light-dependent resistor), een elektrische component waarvan de weerstand beinvloedt wordt door de hoeveelheid licht die erop valt. De weerstandswaarde van een LDR wordt kleiner, naarmate er meer licht op de LDR valt. Aangezien de Arduino een aantal analoge ingangen heeft kunnen we door middel van een weerstand een spanningsdeler maken die we aansluiten op een analoge ingang van de Arduino. In dit voorbeeld had ik nog een 10k weerstand liggen en dit werkt goed. De LDR is aan één kant aangesloten op de Ground en de weerstand aan de plus 5 volt, hierdoor zal de spanning op het knooppunt afhankelijk zijn van de hoeveelheid licht die op de LDR valt. De waarden die via AnalogRead gelezen worden moeten even experimenteel vastgesteld worden, in mijn opstelling was dit < 100 is volle zon, tussen de 200 en 500 is normaal licht en > 600 is donker. Ik heb de LDR op de plus 5 V pin en de Gnd pin van de Arduino aangesloten en het knooppunt op de A0 ingang. Ik heb de weerstand en de LDR bij elkaar geplaatst en via drie draden op de Arduino aangesloten. De soldeerverbinding tussen de draden en de weerstand en de LDR heb ik met krimpkous afgeschermd, maar hier kunt u ook isolatietape voor gebruiken. Deze licht sensor kost nog geen euro (inclusief draden en weerstand) en is zeer eenvoudig te maken.


Arduino download en links

Dit zijn een aantal Nederlandse webshops waar ik goede ervaring mee heb, ook kunt u hier uitbreidingboards, sensoren, breadboard, kabeltjes en elektronica onderdelen kopen:
Een zeer complete Arduino webshop met heel veel componenten.
Arduino webshop vanallesenmeer.nl
Arduino webshop bitsandparts.eu
Arduino webshop hobbyelectronica.nl

Hier staan een aantal externe links naar pagina's en documenten die handig en nuttig zijn wanneer u begint met het Arduino board.

Download hier de Arduino IDE
Een goede Nederlandstalige Manual voor de Arduino IDE

 

Boeken over de Arduino computer

boekboek bestellenArduino voor dummies Met Arduino is iedereen in staat om met elektronica te spelen, of je nu kunstenaar, designer, programmeur of hobbyist bent. Met Arduino voor Dummies leer je verschillende soorten printplaten te bouwen, die dingen kunnen waarnemen en beheren in de echte wereld. Wil je een prototype bouwen van je eigen product of een interactief kunstwerk maken? In dit boek lees je alles wat je nodig hebt om succesvol aan het project van je keuze te kunnen werken. Zo is er aandacht voor het opbouwen en programmeren van printplaten en het toepassen van verschillende shields en kits in je projecten. Arduino combineert hardware, software en oneindige creatieve mogelijkheden! John Nussey is specialist op het gebied van physical computing. Hij werkt al jaren met Arduino: hij creëerde verschillende interactieve kunstinstallaties en prototypes van producten, en hij geeft les in het gebruik van Arduino bij allerhande projecten.


boekboek bestellenArduino startersgids Arduino is een opensource hardware prototyping platform. Het is opensource en maakt gebruik van een microcontroller. Door deze microcontroller zelf te programmeren kun je interactieve objecten creëren en aansturen. Arduino gebruikt de input van bijvoorbeeld schakelaars en sensoren om vervolgens actuatoren zoals licht (LED), geluid, motoren of andere output aan te sturen. Deze startersgids is geschikt voor iedereen die voor het eerst met Arduino aan de slag wil en biedt tal van ideeën voor projecten. Je maakt kennis met de basis van elektronica en sensoren. Ook lees je hoe je de organisatie van een project aanpakt tot en met de laatste finishing touch. In deze compacte startersgids vind je alles voor je eerste stappen met de Arduino. Massimo Banzi is mede-oprichter van het Arduino- project en heeft als software-architect gewerkt aan diverse internationale projecten van grote merken. Daarnaast was hij werkzaam als Associate Professor aan het Interaction Design Institute Ivrea. Om de voorbeelden in dit boek te volgen heb je een Arduino Uno (of ouder model) nodig, een USB A-B kabel en een LED. De gebruiksvriendelijke Arduino-omgeving is gratis te downloaden.


boekboek bestellen50 mini microcontroller projecten met ATtiny en Arduino Wie enigszins bekend is met moderne microprocessor systemen als Arduino, kent ongetwijfeld ook de problemen met dit soort kaarten. Ze zijn te duur om voor elk project een aparte kaart aan te schaffen en zijn bovendien nogal fors van formaat. Het aardige van de ATtiny is dat de schijn bedriegt. Het lijkt een klein IC met een beperkt toepassingsgebied, maar het heeft een verbazingwekkend scala aan (speelse) mogelijkheden. Dit boek beschrijft de enorme veelzijdigheid van de ATtiny microcontroller aan de hand van ongeveer vijftig leuke elektronica projecten, speciaal gericht op de beginner. De meeste ontwerpen zijn volledig uitgewerkt, enkele zijn meer als ontwerpidee gepresenteerd. De inhoudsopgave laat zien dat we ons op vele terreinen zullen begeven, van zonnevolger tot helling indicator. Dit boek is beslist geen theorieboek. Het is een boek dat gelezen zal worden met de soldeerbout in de hand. Voor het programmeren van de ATtiny maken we dankbaar gebruik van een Arduino kaart. Als de Arduino ingesteld word als programmer, kunnen we er de meeste Arduino "sketches" mee overzetten naar de ATtiny. We wensen u veel plezier met het nabouwen van de schakelingen.


boekboek bestellenArduino projecten voor gevorderden Twee zaken hebben in belangrijke mate bijgedragen aan het grote succes van het Arduinoplatform. De eerste is de complete, gebruiksklare processorprint die de kennismaking met dehardware aanzienlijk vergemakkelijkt. En de tweede is de gratis verkrijgbare programmeerinterface, die zonder ingewikkelde installatieprocedures meteen gebruikt kan worden. Eenvoudige projecten voor beginners garanderen snelle resultaten. Het is niet nodig eerst ingewikkelde parameters (processortype of interface-instellingen) te selecteren -- de eerste voorbeeldprogramma's kunnen al na enkele minuten in de Arduino worden geladen en uitgeprobeerd. De Arduino-gebruiker wordt geholpen door een groot aantal software-bibliotheken -- maar deze nog dagelijks groeiende schat aan libraries vormt juist voor de beginner een luxe-probleem: na de eerste eenvoudige voorbeelden is het niet altijd even duidelijk hoe het nu verder moet. Bij de in het internet circulerende projecten ontbreekt het in veel gevallen aan gedetailleerd commentaar en uitleg. Er is geen duidelijk herkenbare leidraad, en eigenlijk is dat ook niet zo vreemd omdat de toepassingen door verschillende mensen voor verschillende doeleinden zijn ontwikkeld. Dat is waar dit boek te hulp komt. Projecten worden op een systematische manier gepresenteerd, waarbij elk project een ander onderwerp belicht. De aanpak is praktijkgericht, maar de noodzakelijke theoretische achtergrond wordt daarbij niet uit het oog verloren. Belangrijke onderwerpen zoals A/D-omzetting, timers en interrupts worden steeds in praktische projecten 'ingebed'. In het boek komen zaken als looplicht-effecten, praktisch bruikbare voltmeters, nauwkeurige digitale thermometers, allerlei soorten klokken, reactietesters en zelfs een muisgestuurde robotkraan aan de orde. En al lezende en doende krijgt de lezer een gedegen inzicht in de achterliggende controllertechnieken.



Reacties op het onderwerp: Arduino


32 - Techniek »  -  Arduino »
2018-07-28 11:52:00
Hier kunt u vragen stellen en antwoorden geven die betrekking hebben op de Arduino boards en Atmel processoren. Reacties zullen pas na goedkeuring geplaatst worden, dit kan enige tijd duren.
Reactie van een bezoeker van de site!
Vragen en antwoorden m.b.t. de Arduino boards en Atmel processoren.
Er zijn: 1 reacties!
2018-07-28 11:52:00
Een tijdje terug heb ik platformio ontdekt. Het is een methode waarmee je vanaf de command-line een Arduino project kan bouwen. Alle instellingen (welk bordje, welke seriele poort snelheid, etc), maar ook alle libraries (+versies) die je gebruikt staan overzichtelijk in een tekstbestandje. Je hoeft dus niet meer 3x na te denken als je van project wisselt over wat voor instellingen e.d. je ook al had gebruikt en welke versie van welke library daarvoor nodig was. Libraries worden automatisch gedownload en daarna gecached op je eigen schijf.

Ik gebruik dit nu zelf voor al mijn Arduino projectjes en de Arduino IDE gebruik ik nog maar zelden. Ik gebruik Linux en daarop werkt dit allemaal heel makkelijk. Ik heb het ook wel aan de praat gehad op windows, dat was iets meer moeite, bijv. eerst python handmatig installeren, maar uiteindelijk werkte het daar ook.
Reactie van een bezoeker van de site!


Last update: 30-01-2017
 Binnen dit thema



 Meer thema's


 Lees hier de privacyverklaring van deze site.

Disclaimer.

Hoewel de heer Hein Pragt de informatie beschikbaar op deze pagina met grote zorg samenstelt, sluit de heer Pragt alle aansprakelijkheid uit met betrekking tot de informatie die, in welke vorm dan ook, via zijn site wordt aangeboden. Het opnemen van een afbeelding of verwijzing is uitsluitend bedoeld als een mogelijke bron van informatie voor de bezoeker en mag op generlei wijze als instemming, goedkeuring of afkeuring worden uitgelegd, noch kunnen daaraan rechten worden ontleend. Op de artikelen van de heer Pragt op deze Internetsite rust auteursrecht. Overname van informatie (tekst en afbeeldingen) is uitsluitend toegestaan na voorafgaande schriftelijke toestemming van de rechthebbende. Voor vragen over copyright en het gebruik van de informatie op deze site kunt u contact opnemen met: (email: mail@heinpragt.com). Dit is mijn