Introduction: De Arduino Vogel Wekker

De Arduino vogel wekker is een chagrijnig klein vogeltje die een hekel aan daglicht heeft. Dit is echter erg handig voor iemand die zich vaak verslaapt! Wanneer de zon opkomt begint de vogel namelijk geïrriteerd te worden en begint hij geluid te maken waarvan zijn eigenaar wakker wordt. Het enige wat de eigenaar nog hoeft te doen hierna, is een deken over het hoofd van de vogel gooien zodat de vogel lekker door kan slapen in het donker. Zodra de avond valt en het weer donker is kan je de deken van de vogel afhalen en zal hij je weer wekken de volgende ochtend.

Wat heb ik nodig om de Arduino vogel wekker te bouwen?

- Breadboard (het liefst met plakstrip aan de achterkant)

- Een Arduino (deze tutorial maakt gebruik van de Arduino UNO)

- Twee rode LED-lampjes

- Een buzzer

- Een LDR lichtdetector

- Twee weerstanden waarvan één 220 Ohm en één 10.000 (10k) Ohm

- Minimaal 8 draden

- Een stoffen omhulsel in de vorm van een vogel

- Een USB kabel om de Arduino met een PC te verbinden

- Een PC met Arduino coderingssoftware

Mijn ontwerpproces

Tijdens het ontwerpen van mijn Arduino project wilde ik eerst iets doen met een bewegingsdetector. Een soort bewaker die schreeuwde zodra hij beweging zag leek me een leuk idee. Ik had echter geen bewegingsdetector tot mijn beschikking en hoewel ze wel te koop waren, wilde ik liever eerst kijken of ik iets in deze richting kon doen met de componenten die al WEL in mijn basisset zaten. Roeien met de riemen die je hebt en toch dicht bij het concept blijven was mijn insteek. Ik ontdekte de lichtsensor in mijn pakket en bedacht me dat ik een alarm ook op licht kon laten werken. Ik vroeg me echter af wanneer je dat nodig had. Ik bleef eerst denken aan het scenario van een bewaker maar vond het niet erg nuttig om een bewaker te maken die alleen maar alarm kon slaan wanneer er een inbreker toevallig een zaklamp op hem schijnt. Toen bedacht ik me dat het zou kunnen werken als een wekker. Ik bedacht het idee van een vogel die schreeuwt zodra hij het daglicht ziet. Ongeveer een haan dus. Het leek mij leuk om een soort elektronisch huisdiertje te maken die in een bepaalde mate echt aanvoelt. Het uiteindelijke concept is een vogel die naast je bed zit en geluid maakt zodra het licht wordt. Om hem uit te zetten gooi je een deken over zijn hoofd. Als het later, 's avonds weer donker is haal je de deken weer weg en zal de vogel je in de ochtend weer wakker maken. Dit concept heb ik uiteindelijk uitgevoerd.

Ik vond verschillende tutorials over de werking van LEDs, buzzers en LDRs en kwam al vrij snel goed op weg met de technische uitvoering. Ook de codering was deel van de tutorials. Omdat ik de code niet simpelweg wilde overnemen heb ik de code bestudeerd om te begrijpen wat er staat en wat het betekend. In de laatste stap van deze Instructable staat mijn observatie van de code en wat alles in de code doet beschreven. Ik heb dezelfde insteek bij de hardware gebruikt. Ik heb gepoogd om niet alleen maar de draadjes te verbinden die ik op mijn scherm zag, maar om ook te begrijpen wat ik aan het doen was. Of dat gelukt is moet aan de beoordeling van de lezer van de stappen van de instructable blijken. Ik heb zoveel mogelijk toegelicht wat volgens mij alles in het proces doet.

Toen alles op zijn plaats zat was het nog een probleem om alles in de vogel te krijgen. Ik heb het breadboard een paar keer leeg moeten halen omdat de buzzer en de LEDs op posities zaten die er voor zorgden dat ze niet op de logische locaties van de ogen en de mond van de vogel zaten. Dit dwong me ook weer om iets meer aandacht te besteden aan wat ik deed, omdat het niet meer exact mogelijk was om een voorbeeld te volgen, aangezien ik alles nu moest verplaatsen zodat het kloppend was voor mijn specifieke concept. Uiteindelijk is het me gelukt om de LEDs zo te plaatsen dat ze helemaal aan het uiteinde van het breadboard zaten (ze zitten immers aan het uiteinde van het lichaam van de vogel) met de buzzer er onder. Hoewel ik de LDR liever op de zelfde hoogte als de ogen gehad had, zodat het licht als het ware in de ogen van de vogel moet schijnen voordat hij een reactie geeft, werd dit te veel gepriegel op een te klein stuk van het breadboard. Hierom heb ik gekozen om de LDR lager op het bord te plaatsen, onder de LEDs en de buzzer. Ik heb een gat gemaakt op de plaats van de mond van de vogel zodat de tonen van de buzzer beter hoorbaar zijn. De buzzer is verborgen door een stoffen snavel die er overheen hangt. De Arduino is tegen het breadboard aangeplakt en zit als één geheel in het stoffen omhulsel. De USB poort van de Arduino zit bewust aan de onderkant van de vogel zodat er geen kabel uit zijn hoofd steekt. De kabel komt er nu van onder uit en kan vermomd worden als een tak of boom waar de vogel op zit. Deze keuze is gemaakt om het realisme van het concept ten goede te komen. Een vogeltje dat naast je bed zit en je wakker maakt in de ochtend tot je er een deken overheen gooit spreekt toch echt minder tot je verbeelding wanneer je een kabel uit zijn kop ziet steken. Ik heb ook de code zo aangepast dat de LEDs blijven branden en niet knipperen wanneer de vogel geluid maakt omdat het te veel overkwam als een technologische wekker wanneer het knipperen van het beest precies gelijk loopt met wanneer hij geluid maakt.

Step 1: De Buzzer

We beginnen met het opzetten van de basis op het breadboard. De basis zijn de vier hoofdvoorwerpen die nodig zijn om het concept van de Arduino vogel wekker te maken. Dit zijn de twee LED-lampjes die de ogen van de vogel worden, de buzzer die het geluid van de vogel gaat maken en de lichtsensor die de vogel gaat vertellen wanneer hij geluid moet maken.

Let op!

Bedenk je dat je het breadboard en de Arduino uiteindelijk kwijt moet kunnen in de vogel. Zorg er voor dat de twee LED-lampjes aan het uiteinde van je breadboard komen en dat de buzzer ongeveer op een afstand van de twee LED-lampjes komt te zitten die logisch is als je de LED-lampjes beschouwd als de ogen en de buzzer als de mond van het beest.

Plaats als eerste de buzzer ongeveer op de hoogte en breedte die te zien is op de afbeelding.

Step 2: De LED-lampjes

Beeld je in dat de buzzer de mond wordt van de vogel en plaats de twee LED-lampjes ten opzichte van deze mond op een logische plek voor de locatie van twee ogen. Plaats de twee LED-lampjes op de zelfde verticale rij met zowel de lange, positieve pin als de korte, negatieve pin gelijk aan elkaar. Heb je de lange pin van de eerste LED rechts zitten? Doe dat dan ook bij de tweede.

Step 3: De Weerstand Van De LED Lampjes

Plaats de 220 Ohm weerstand in het breadboard zoals zichtbaar is op de afbeelding. Het is belangrijk dat de weerstand de verticale rij waar de lange, positieve pinnetjes van de LEDs op zitten verbindt met een andere, lege rij op je breadboard.

Step 4: De LDR

Plaats de LDR op een plek die niet te ver weg maar ook niet te dichtbij van je buzzer en LEDs zit.

Step 5: De Weerstand Van De LDR

{"context":{"location":{"href":"https://www.instructables.com/editInstructable/edit/EF8MOFAIYAMVTOW","origin":"https://www.instructables.com","protocol":"http:","host":"www.instructables.com","hostname":"www.instructables.com","port":"","pathname":"/editInstructable/edit/EF8MOFAIYAMVTOW","search":"","hash":""},"jQuery11020220316566824863":1,"b":{"sizzle-1485208962637":{"parentNode":["1039099 511",69]}},"h":{},"gtmHasClickListenerTag":true,"gtmHasLinkClickListenerTag":true,"gtmLinkClickListener":true},"selector":"#editor-Object-1186"}

Step 6: De Eerste Kabel

Hier komt de Arduino in het spel!

Verbind de GND op je Arduino met een willekeurige, lege verticale rij op je Arduino. Ideaal zit deze rij tussen de LDR en de buzzer en LEDs in, zoals de afbeelding ook laat zien.

Deze kabel gaat voor de stroomvoorziening zorgen van alle basiscomponenten.

Tip: het is handig om bij dit project zo lang mogelijke draden te gebruiken omdat de Arduino uiteindelijk vastgemaakt wordt aan het breadboard om daarna in de vogel geplaatst te worden. Met korte draden beperk je de bewegelijkheid van de Arduino en het breadboard ten opzichte van elkaar.

Step 7: Het Verbinden Van De Buzzer Met De GND

Nu er een draad tussen de GND en je breadboard gespannen zit is het tijd om de individuele componenten aan de GND stroomvoorziening te verbinden. We beginnen weer bij de buzzer.

Verbind een van de pinnetjes van je buzzer met de GND door een draad te spannen van de verticale rij waar een van de pinnetjes van je buzzer in zit, naar de verticale rij waar de draad die met de GND van de Arduino verbonden is in zit. Hoewel mijn buzzer geen onderscheid maakte tussen de pinnetjes van de buzzer, zijn er buzzers die een positieve en een negatieve pin hebben. Mocht dat bij jouw buzzer het geval zijn: verbind de GND met de korte, negatieve pin.

Step 8: Het Verbinden Van De LEDs Met De GND

Nu is het tijd om de LEDs te verbinden met de GND stroomvoorziening.

Span een kabel tussen de verticale rij waar nu 2 kabels in zitten die met de GND verbonden zijn, en de verticale rij waar de korte, negatieve pootjes van je LEDs in zitten. Dit is de rij waar je weerstand NIET zit.

Step 9: Het Verbinden Van De LDR Met De GND

Als laatste is de LDR lichtdetector aan de beurt om met de GND stroomvoorziening verbonden te worden.

Leg een kabel tussen de verticale rij waar inmiddels drie kabels met de GND verbonden zitten, en de rij waar de pin van je LDR lichtdetector inzit. Dit is NIET de verticale rij waar ook het pootje van je weerstand in zit.

Step 10: De Stroomkring Van De LDR Rondmaken

Nu je elk basiscomponent hebt verbonden met de GND, en dus met een stroomvoorziening, is het tijd om alle stroomkringen rond te maken en zodoende werkend te krijgen. Ten eerste leg je een draad tussen de 5V op de Arduino, die naast de GND zit, en de pin van de LDR waar GEEN weerstand aan verbonden is.

Step 11: De Stroomkring Van De Buzzer Compleet Maken

Leg een draad tussen de Digital 12 op de Arduino en de rij waar de buzzer pin in zit die verder nog met niets verbonden is.

We gebruiken hier een Digital poort zodat we via de codering later kunnen vertellen aan de buzzer wanneer hij wel en niet iets moet doen. Het zelfde geld voor de LEDs in stap 12.

Step 12: De Stroomkring Van De LEDs Compleet Maken

Span een kabel tussen de Digital 13 op de Arduino en de pin van de weerstand bij de LEDs waar verder nog niets aan verbonden is.

Step 13: De Laatste Kabel

Als laatste verbinden we de A0 op de Arduino met de verticale rij waar zowel een pin van de LDR als een pin van de weerstand inzit.

Step 14: Het Coderen En Het Samenvoegen Tot Een Vogel.

In het eerste deel van de code zie je hoe je de code moet vertellen waar de verschillende basisonderdelen aan verbonden zijn. Je ziet hier dat er in de code wordt aangegeven dat de LEDs aangesloten zijn aan Digital 13, de buzzer aangesloten is aan Digital 12 en dat de LDR aangesloten zit aan A0.

in de void setup geef je aan welke onderdelen output gegeven wordt en welke onderdelen input geven. De LDR geeft input aan de Arduino en als deze input zegt: "ik detecteer licht!" dan wordt er een signaal gestuurd naar de buzzer en de LEDs dat zegt: "maak geluid en ga branden!". Dit signaal van de Arduino naar de LEDs en buzzer is de output.

in de void loop geef je aan wat je programma als maar blijft uitvoeren of controleren. Dit stopt pas als je het programma stopzet of de hardware uitschakeld. De eerste regel die je ziet in de void loop verteld de loop dat de status van de LDR waarde, dus de hoeveelheid licht die je lichtdetector ontvangt, constant gelezen moet worden. de if-statement die daarna volgt, stelt dat wanneer de waarde van het licht dat de LDR ontvangt hoger is dan 400, wat vrij gevoelig is, de buzzerpin begint te piepen op een toon met hoogte 800 en dat de status van de LEDs HIGH, oftewel aan moeten zijn. Daarna is er een delay van 75 milliseconden ingevoerd waarin er niets gebeurd. De code die hierna volgt stelt wat er gebeurd na deze delay. noTone(buzzerpin); betekend dat de buzzer stil is en digitalWrite(ledPin, HIGH) betekend dat de LEDs wel blijven branden zodat de vogel zijn ogen openhoud als hij niet piept. Hierna is er weer een delay ingevoerd. Dit maal van een hele seconde. Wanneer deze code is afgewerkt en er nog steeds genoeg licht ontvangen wordt door de LDR om te voldoen aan de waarde van 400, zal het proces opnieuw plaatsvinden. Het blijft doorgaan totdat er geen licht met een waarde van 400 meer wordt gedetecteerd door de LDR.

Wanneer de LDR een waarde ontvangt die zwakker is dan 400, is in de code in de else-statement verteld wat hij moet doen. Hier staat noTone(buzzerPin) en digitalWrite(ledPin, LOW);. Dit betekend dat de buzzer zich stil houdt en dat de LEDs niet zullen branden wanneer er niet voldoende licht gedetecteerd wordt door de LDR.

Het is mogelijk om de waardes van bijvoorbeeld de toonhoogte aan te passen voor lagere of hogere tonen. Tevens kan je de delays verminderen zodat de vogel sneller piept. Dit ligt allemaal aan de voorkeur van de maker.

De complete code (LET OP: zonder indents):

const int ledPin = 13;
const int buzzerPin = 12; const int ldrPin = A0;

void setup () {

Serial.begin(9600);

pinMode(ledPin, OUTPUT); pinMode(buzzerPin, OUTPUT); pinMode(ldrPin, INPUT); }

void loop() {

int ldrStatus = analogRead(ldrPin);

if (ldrStatus >= 400) {

tone(buzzerPin, 800); digitalWrite(ledPin, HIGH); delay(75);

noTone(buzzerPin); digitalWrite(ledPin, HIGH); delay(100);

Serial.println; } else {

noTone(buzzerPin); digitalWrite(ledPin, LOW);

Serial.println; } }

De gehele technische kant is nu af!

Het enige wat je nog te doen staat is de Arduino en het breadboard in de vogel krijgen. Haal de plakstrip die op de meeste breadbords zit er van af en plak je breadboard achterop je Arduino. Maak hierna een stoffen omhulsel dat op een vogel lijkt en zorg ervoor dat er gaten zitten op de plekken waar de LEDs door de stof heen moeten komen als ogen, waar de buzzer door de stof heen moet komen voor meer hoorbaarheid en waar de LDR door de stof moet komen om licht te kunnen detecteren. Om de buzzer te verbergen kan je een snavel van stof of een ander materiaal over de buzzer hangen. Zorg er voor dat je de Arduino zo aan het breadboard vastmaakt dat de USB poort van de Arduino aan de onderkant van de vogel zit zodat de USB kabel niet uit zijn hoofd steekt. Om de kabel te verbergen kan je deze bijvoorbeeld door een soort boom of tak leggen waar de vogel op zit.

Veel plezier met je nieuwe huisdier en wekker!

Step 15: