Benodigdheden:
1x Arduino UNO
1x USB kabel (A-B)
1x Luidspreker
1x Weerstand 100 Ω (ter beveiliging van de luidspreker)
In het vorige experiment hebben we de ingebouwde LED van de Arduino laten knipperen.
Nu gaan we geluid maken met de Arduino.
Sluit een laagohmige luidspreker aan op pen 3 van de Arduino. De andere kant van de luidspreker gaat naar massa (naar de GND-aansluiting van de Arduino). In serie met de luidspreker schakelen we een kleine weerstand van 100 Ω om de uitgang van de Arduino te beschermen tegen te grote stromen.
// De pen waar de luidspreker aan zit:
#define LUIDSPREKER 3
// Morse seinsnelheid (hoger cijfer is langzamer):
#define SNELHEID 100
void setup() {
pinMode(LUIDSPREKER, OUTPUT);
}
void loop() {
Sein("ik ben een arduino die morsecode kan seinen");
delay(1000);
}
void Sein(String tekst) {
String alfabet[]= {
".-","-...","-.-.","-..",".","..-.","--.","....",
"..",".---","-.-",".-..","--","-.","---",".--.","--.-",
".-.","...","_","..-","...-",".--","-..-","-.--","--.."
};
for(int i=0; i<tekst.length(); i++) {
if(tekst[i]==' ') delay(SNELHEID*4);
else {
String morse=alfabet[tekst[i]-'a'];
for(int j=0; j<morse.length(); j++) {
tone(LUIDSPREKER,1250);
delay(morse[j]=='.'? SNELHEID:SNELHEID*3);
noTone(LUIDSPREKER);
delay(SNELHEID);
}
delay(SNELHEID*3);
}
}
}
Type het bovenstaande programma in, in de Arduino IDE (of download het).
Hoe werkt deze sketch?
De Sein-functie kan elke tekst (bestaande uit kleine letters en spaties) in Morse-code
ten gehoren brengen op de aangesloten luidspreker
Het geluid wordt door de tone-functie geproduceerd. Dit is een standaard Arduino-functie.
tone(LUIDSPREKER,1250);
Bovenstaande regel laat een toon van 1250Hz horen op de luidspreker.
De toon blijft klinken totdat je hem met noTone uitschakelt.
Meer informatie: tone() (Arduino reference).