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!