Pit Distanziometro Sonoro
PitDistanziometroSonoro è un gioco che in funzione della distanza dall'oggetto emette le note musicali.
Lo sheet e l'idea sono presi dal sito di Daniele Alberti (Gioco Musicale per bambini con Arduino). Dove trovate tutte le istruzioni, gli schemi e quanto serve per realizzarlo.
Cosa serve:
- Arduino
- Rilevatore distanza a ultrasuoni
- Altoparlante
- Cavetti
- Resistenza 100 ohm
Download:
Codice sorgente:
/*
25/05/2015 ZappocoS -- semplificazione dell'originale ho tolto i led
Vedi sito Daniele Alberti www.danielealberti.it
http://www.danielealberti.it/2013/10/gioco-per-bambini-con-arduino.html#more
HC-SR04 ---- Connection
VCC-5v
Trig --> digital pin 7
Echo --> digital pin 8
GND-GND
*/
#include <NewTone.h>
int triggerPort = 7;
int echoPort = 8;
/*
int DO = 13;
int RE = 12;
int MI = 11;
int FA = 10;
int SOL = 9;
int LA = 3;
int SI = 2;
*/
void setup() {
/*
pinMode( DO, OUTPUT);
pinMode( RE, OUTPUT);
pinMode( MI, OUTPUT);
pinMode( FA, OUTPUT);
pinMode( SOL, OUTPUT);
pinMode( LA, OUTPUT);
pinMode( SI, OUTPUT);
*/
pinMode( triggerPort, OUTPUT );
pinMode( echoPort, INPUT );
}
void loop() {
//porta bassa l'uscita del trigger
digitalWrite( triggerPort, LOW );
//invia un impulso di 10microsec su trigger
digitalWrite( triggerPort, HIGH );
delayMicroseconds( 10 );
digitalWrite( triggerPort, LOW );
long duration = pulseIn( echoPort, HIGH );
long r = 0.034 * duration / 2;
/*
digitalWrite (DO, LOW);
digitalWrite (RE, LOW);
digitalWrite (MI, LOW);
digitalWrite (FA, LOW);
digitalWrite (SOL, LOW);
digitalWrite (LA, LOW);
digitalWrite (SI, LOW);
*/
if ( r < 5) {
tone(6, 523, 400);
//digitalWrite (DO, HIGH);
}
else{
if ( r < 10 && r > 7) {
tone(6, 587, 400);
//digitalWrite (RE, HIGH);
}
else{
if ( r < 15 && r > 12) {
tone(6, 659, 400);
//digitalWrite (MI, HIGH);
}
else{
if ( r < 20 && r > 17) {
tone(6, 698, 400);
//digitalWrite (FA, HIGH);
}
else{
if ( r < 25 && r > 22) {
tone(6, 784, 400);
//digitalWrite (SOL, HIGH);
}
else{
if ( r < 30 && r > 27) {
tone(6, 880, 400);
//digitalWrite (LA, HIGH);
}
else{
if ( r < 35 && r > 32) {
tone(6, 988, 400);
//digitalWrite (SI, HIGH);
}
else{
}
}
}
}
}
}
}
delay( 15 );
}
ZappocoS - 25 maggio 2015