Arduino[4KIDS] Maak je eigen muziekinstrument!
Wat is een Arduino? Open jullie doos! Hierin vind je:
Wat is een Arduino? Er gaat slechts één 'programma' op Dit gaat via de USB ingang, met de USB kabel:
Wat kan je ermee dan? De Arduino krijgt stroom (via een batterij of via de USB poort) Uit alle poortjes kan hij stroom uitsturen en ontvangen
Wat is een LED? Een LED is een heel klein lampje, vaak in mooie kleuren (wit/rood/geel/groen) Zoek een LEDje in de doos:
Korte en lange pootjes Elke LED heeft een kort en een langer 'pootje' De lange is de + (plus) De kortere is de (min) De stroom loopt altijd van + naar toe
Meer over elektrische stroom: Arduino zelf krijgt stroom uit USB, batterij kan ook 'Hoeveelheid' stroom over een draadje is ampére 'Druk' ofwel 'spanning' van stroom kan je weergeven met volt De pinnetjes van de Arduino willen 5V (volt) kwijt LED mag maximaal 15mA (milli ampére, 0,015 ampére) binnenkrijgen Als we niks doen loopt alle elektriciteit meteen weg!
Weerstand: Een 'weerstand' zorgt ervoor dat er niet teveel stroom door kan
De Wet van Ohm: Het blijkt dat: ampére (stroom) * ohm (weerstand) = volt (spanning) Dat is hetzelfde als: volt (spanning) / ampére (stroom) = ohm (weerstand) Dus in ons geval: (5 1.8) volt / 0,015 ampere = 213 ohm
Weerstand: Een weerstand heeft allemaal kleuren om het aantal ohm weer te geven Wij hebben 220 nodig, dat is: Rood Rood Bruin (met een goud randje!) Zoek deze weerstand:
Draadjes en een breadboard
Hoe werkt een breadboard?
Project #1, alles aan elkaar maken
Project #1, aan de Arduino vast
Project #1, de code! long vorigetijd = 0; long tussentijd = 1000; int ledstate = LOW; void setup() { pinmode(13, OUTPUT); } void loop() { unsigned long huidigetijd = millis(); if(huidigetijd - vorigetijd > tussentijd) { vorigetijd = huidigetijd; if (ledstate == LOW) ledstate = HIGH; else ledstate = LOW; } } digitalwrite(13, ledstate);
Project #1, proberen Kom maar naar voren met je creatie, dan proberen we alles uit!
Piezo buzzer Nu gaan we gebruik maken van de piezo buzzer We gaan dit gebruiken als kleine luidspreker
Piezo buzzer Plaats deze in het midden van je (schone) breadboard Deze staat nu in verbinding met twee 'kanalen' aan beide kanten
Piezo buzzer Nu voegen we weer dezelfde 220 ohm (Rood Rood Bruin) weerstand toe En de draden mogen naar PIN 8 en naar GND
Project #2, melodie int melodie[] = {262,196,196,220,196,0,247,262}; int nootduur[] = {4,8,8,4,4,4,4,4 }; void setup() { for (int noot = 0; noot < 8; noot++) { long duur = 1000/nootDuur[noot]; tone(8, melodie[noot],duur); delay(duur * 1.4); notone(8); } } void loop() { }
Photoresistor (lichtgevoelige weerstand) De weerstanden tot nu toe hebben een vaste waarde De photoresistor ofwel 'lichtgevoelige weerstand' is afhankelijk van het licht Zoek de photoresistor
Gebruik photoresistor Hoe gebruiken we de photoresistor? Aan de + kant: 5 volt Aan de kant: Arduino analoge input Een analoge pin leest/schrijft alle waardes, niet alleen aan/uit Deze pin leest uit welk voltage binnenkomt (de elektrische druk/spanning)
4.7 kohm weerstand Nu hebben we een weerstand nodig van 4700 Ohm, ofwel 4.7kOhm Deze zit niet in de doos! Gelukkig hebben we twee weerstanden in de doos van 2200 Ohm Zoek 2x de weerstand: Rood Rood Rood
Project #3, muziek instrument code Nu maken we een heel moeilijke opstelling op het breadboard:
Project #3, muziek instrument code void setup() { // Communicatie opzetten Serial.begin(9600); } void loop() { // Lees de input op analoog 0 int sensorinput = analogread(a0); // Als hij aan de computer hangt kunnen we de waarde uitlezen Serial.println(sensorInput); // Nu pakken we de input (400 tot 1000) // En vertalen we dit naar de output (120-1500Hz) // Deze getallen kan je aanpassen aan de hand van het licht in de kamer int huidigetoon = map(sensorinput, 400, 1000, 120, 1500); // Speel de toon tone(8, huidigetoon, 10); delay(1); // Korte pauze, geeft een beter resultaat }
Project #4, stoplicht Nu maken we een stoplicht met 3 ledjes (groen/oranje/rood) De drie ledjes hangen aan pinnen 8, 9 en 10 Bouw hetzelfde als de knipperende led uit opdracht 1, alleen dan drie keer!
Project #4, stoplicht long vorigetijd = 0; long tussentijd = 1000; int ledon = 0; void setup() { pinmode(8, OUTPUT); pinmode(9, OUTPUT); pinmode(10, OUTPUT); } void loop() { unsigned long huidigetijd = millis(); if(huidigetijd - vorigetijd > tussentijd) { vorigetijd = huidigetijd; ledon = (ledon+1) % 3; } } digitalwrite(8, 0==ledOn); digitalwrite(9, 1==ledOn); digitalwrite(10, 2==ledOn);
Bedankt!