Project: Arduino Knight Rider

Project: Arduino Knight Rider

11 dec 2017

In dit project ga je het bekende lichteffect van de Knight Rider bouwen (voor de liefhebber; dit effect heet officieel een Larson Scanner). De LED’s knipperen in dit project snel na elkaar. Door het toevoegen van een potmeter kun je zelf de snelheid regelen.

Kijk op de pagina ‘Arduino voor beginners’ voor uitgebreide informatie over Arduino en meer leuke projecten.

Benodigde onderdelen:

> Koop alle onderdelen voor dit project

> Koop de Hele Conrad Arduino Starterkit

Inhoud

  1. Arduino Knight Rider - de schakeling
  2. Arduino Knight Rider - de sketch
  3. Arduino Knight Rider - uitvoeren van de sketch

Arduino Knight Rider | de schakeling

Op de volgende pagina vind je een duidelijk schema van de schakeling.

  1. Plaats een draadbrug tussen de 5V-aansluiting van je Arduino en de rood gemarkeerde strook op het breadboard. Het maakt niet uit welke draadbrug je hier voor kiest.
  2. Plaats een draadbrug tussen de GND-aansluiting van je Arduino en de blauw gemarkeerde strook op het breadboard.

    // De eerste stap bij het bouwen van vrijwel iedere schakeling is het aansluiten van de voeding op het breadboard. De 5V- en GND-aansluiting van je Arduino dienen in dit project als voeding, deze worden doorverbonden naar het breadboard waardoor ook hier spanning op staat. 
     
  3. Plaats de rode LED’s naast elkaar op het breadboard, let daarbij goed op de polariteit (+/-) van de LED’s en verbind de pootjes tussen twee stroken op het breadboard.
  4. Plaats draadbruggen tussen de anode (+) van de LED’s en digitale I/O 2 tot en met 6 op de Arduino (doe dit op volgorde, anders knipperen de LED’s straks niet zoals gewenst).

    // Je sluit de anode van de LED’s via een draadbrug aan op de Arduino en niet op 5V omdat je de LED’s wilt aansturen met de Arduino op basis van tijd. 
     
  5.  Plaats bij iedere rode LED een weerstand van 150 Ohm (bruin/groen/bruin) tussen de kathode (-) van de LED en de blauwe GND-strook van het breadboard.

    // De rode LED heeft een voorschakelweerstand van 150 Ohm nodig om niet teveel spanning over de LED te laten lopen (deze is geschikt voor maximaal 2,25V). 
     
  6. Plaats de potmeter over het midden van je breadboard. Zorg ervoor dat de zijde met twee pinnen aan de kant van de LED’s zit. De enkele pin wordt aan de overzijde in het breadboard geplaatst.
  7. Plaats een draadbrug tussen de linkerpin van de potmeter en de 5V van het breadboard.
  8. Plaats een draadbrug tussen de rechterpin van de potmeter en de GND van het breadboard.
  9. Plaats een draadbrug tussen de achterste pin van de potmeter en de A1 van de Arduino.

    // Een potmeter is een spanningsdeler, maar dan in één behuizing. Door te draaien aan de as wijzig je de uitgangsspannning. De uitgangsspanning loopt in dit geval richting de analoge A1-aansluiting van de Arduino.

De sketch

Arduino Knight Rider| de sketch

Je gaat nu de sketch schrijven om alle verschillende onderdelen van de hardware aan te sturen.
Open hiervoor de Arduino software op je computer. Er opent vanzelf een lege sketch.

We gaan nu stap-voor-stap de verschillende onderdelen van de sketch bespreken.

Je hebt veel aansluitingen gebruikt in je opstelling. Om de sketch begrijpelijk te houden, is het makkelijk om deze aansluitingen een naam te geven. Je hoeft dit niet per se te doen (je kunt verderop in de sketch ook verwijzen naar het nummer van de I/O). Het benoemen van de I/O’s houdt je sketch echter wel een stuk overzichtelijker.

Wat nu volgt is de setup(), hier geef je eenmalig aan wat de juiste instellingen voor deze sketch zijn.

Geef aan dat de aansluitingen die je in de vorige stap hebt aangeduid als led1 tot en met led6 dienen als uitgang (output) in deze sketch. We benoemen ze hier allemaal afzonderlijk om het begrijpelijk te houden. Je kunt ze echter ook allemaal tegelijkertijd benoemen via een zogenaamde ‘for loop’. Je bespaart daarmee wat code én dus geheugen (zie het Arduino thermometer project voor een dergelijke ‘for loop’).

De sketch komt nu aan bij het loop() gedeelte waar daadwerkelijke acties zich keer op keer herhalen.

Als eerste maak je hier een waarde aan genaamd ‘snelheidsRegelaar’. Dit is de analoge waarde (een cijfer tussen 0 en 1024) die wordt uitgelezen bij de potmeter. Deze waarde ga je vervolgens gebruiken om de snelheid van het knipperen te bepalen.

Nu gaan we de waarde uit de vorige stap omrekenen. Als je de snelheid 0 zou gebruiken, dan knipperen de LED’s namelijk niet. De snelheid 1024 gaat zo snel dat het bijna niet te zien is. Via de ‘map’ functie zet je de waarde tussen 0-1024 om naar een nieuwe waarde tussen de 50-500. Draai je de potmeter helemaal terug, dan wordt de waarde 50. Draai je de potmeter volledig open, dan wordt de waarde 500.

De waarde van 50 komt tijdens de sketch overeen met 50 milliseconden. De waarde 500 komt overeen met 500 milliseconden (oftewel ½ seconde). Door de waarde op deze plek te veranderen zal de potmeter tijdens het uitvoeren van de sketch anders reageren. Test dit na de tijd zelf maar eens. 

Het is nu tijd om de LED’s te laten knipperen. Het knipperende effect krijg je door de LED aan te zetten (de digitale poort krijgt de waarde HIGH). Vervolgens pauzeer je even (delay). De LED blijft nu branden. De volgende stap is het uitzetten van de LED (de digitale poort krijgt de waarde LOW).

Dit doe je voor alle LED’s afzonderlijk. De volgorde in de sketch is ook de volgorde van knipperen in het uiteindelijke project. Je gaat daarom eerst led1 tot en met led5 laten knipperen, om vervolgens weer terug te gaan door led4 tot en met led1 te laten knipperen (je gaat dus heen- en weer).

Ook hier zou je een ‘for loop’ kunnen gebruiken. Om duidelijk te zien wat er gebeurt tijdens het uitvoeren van de sketch kies je daar nu niet voor.

Het haakje } dient als afsluiting van de loop(). Je hebt deze namelijk ook geopend met een haakje {.

Arduino Knight Rider| uitvoeren van de sketch

Sluit nu de Arduino via de USB-kabel aan op de computer. Je zult zien dat het ON-lampje gaat branden. Nu kun je de sketch uploaden naar de Arduino via de upload-knop in de software. De RX/TX-lampjes gaan even knipperen, vervolgens zie je in de software staan dat de upload is geslaagd. De LED’s zullen nu gaan knipperen!

Draai nu eens aan de potmeter. Je zult zien dat het effect vertraagt of versnelt. Dit komt doordat je de snelheid zelf bepaalt via de geprogrammeerde ‘delay’ in je sketch.

// Er kleeft een nadeel aan de ‘delay’ functie. De Arduino doet op die momenten ook echt niets. Wanneer je aan de potmeter draait zal de Arduino eerst de hele loop uitvoeren (inclusief alle tijdrovende delays) om vervolgens pas de snelheid te wijzigen aan het begin van de loop. Voor dit project maakt het gelukkig weinig uit. Wil je dat de Arduino altijd paraat staat, dan zul je op een andere (lastiger) manier met tijd moeten werken. De millis () functie uit het volgende project (Arduino alarmsysteem) is daar een mooi voorbeeld van. 

> Koop alle onderdelen voor dit project

> Koop de Hele Conrad Arduino Starterkit

Bekijk ook de andere projecten:

Project: Arduino schakelaar
Bouw een eenvoudige lichtschakelaar met behulp van Arduino.
> Bekijk het project

Project: Arduino Nachtlampje
Bouw het bekende Knight Rider lichteffect na met een Arduino. 
> Bekijk het project

Project: Arduino Alarmsysteem
Maak je eigen alarmsysteem via een magneetcontact (reedcontact) en het Arduino-board.
> Bekijk het project

Project: Arduino Thermometer
Maak zelf een Arduino nachtlampje die aan gaat zodra het te donker wordt. 
> Bekijk het project

> Terug naar de Overzichtspagina Arduino voor Beginners