Hashtag più usati
1 | #include |
2 | #drone |
3 | #eurotrucksimulator2 |
4 | #dlcitalia |
5 | #ets2 |
6 | #arduino |
7 | #xiaomi |
8 | #aukey |
9 | #farmingsimulator |
Ultimi argomenti attivi
» Comunicazione termine servizio Arduino BT ControlDa Admin Mar Mag 10, 2022 12:55 pm
» Robot aspirapolvere per Alexa: Dreame D9
Da Admin Mar Feb 09, 2021 9:42 am
» Come costruire un robot smart con Arduino
Da Admin Mar Nov 17, 2020 12:15 pm
» TOPPS Trading Cards Match Attax Champsion League/Europa League 2020/21
Da Admin Mar Nov 10, 2020 3:21 pm
» Guida per utilizzare Arduino BT Control v1.2
Da Admin Gio Lug 09, 2020 12:01 pm
» Recensione Umidigi A3 Pro - Smartphone sotto i 100€
Da Admin Gio Apr 04, 2019 12:22 pm
» [Arduino] aiuto programma
Da Glak Mar Mar 12, 2019 9:30 am
» ERRORE NELLA COMPILAZIONE NEXTION
Da papat Mar Feb 26, 2019 7:11 am
» Comandare la Smart TV con Alexa senza broadlink (gratis)
Da Admin Mar Feb 19, 2019 4:31 pm
I postatori più attivi del mese
Nessun utente |
Albero di Natale a ritmo di musica con Arduino
Wiki Info :: Arduino :: Progetti Arduino
Pagina 1 di 1
Albero di Natale a ritmo di musica con Arduino
In questa guida andremo a vedere il codice e la documentazione che ci permetterà di realizzare l'albero di Natale a ritmo di musica presentato nel video tutorial.
Per la realizzazione di questo progetto sarà necessario avere i seguenti componenti:
Prima di tutto sarà necessario includere la libreria pitches.h, già presente come libreria di default nell'IDE di Arduino. Una volta inclusa, nell'IDE sarà presente una sub-finestra chiamata "pitches.h" che andremo ad aprire. Quello che bisognerà fare sarà sostituire tutto il contenuto con un codice semplificato che trovate qui.
Fatto ciò, il codice che andremo ad utilizzare per fare funzionare il nostro progetto sarà il seguente:
Hardware
- Arduino UNO.
- Sette LED colorati (Come funzionano? Clicca qui).
- Sette resistenze per i LED (da 300Ω a 1000Ω).
- Altoparlante.
- Cavi (maschio-maschio, maschio-femmina e femmina-femmina).
Software
Fatto ciò, il codice che andremo ad utilizzare per fare funzionare il nostro progetto sarà il seguente:
- Codice:
#include "pitches.h" //dichiarazione libreria
//dichiarazione interi e variabili
int ledb=2;
int ledv1=7;
int ledg1=3;
int ledr1=9;
int ledv2=4;
int ledg2=6;
int ledr2=5;
long randoms; //variabile random
// le note delle melodie
int melody[] = { //prima melodia
NG4,NE5,ND5,NC5,NG4,NG4,NE5,ND5,NC5,NA4,
NA4,NF5,NE5,ND5,NB4,NG5,NG5,NF5,ND5,NE5,
NG4,NE5,ND5,NC5,NG4,NG4,NE5,ND5,NC5,NA4,
NA4,NF5,NE5,ND5,NG5,NG5,NG5,NG5,NG5,NA5,NG5,NF5,ND5,NC5,NG5,
NE5,NE5,NE5,NE5,NE5,NE5,NE5,NG5,NC5,ND5,NE5,
NF5,NF5,NF5,NF5,NF5,NF5,NE5,NE5,NE5,NE5,NE5,ND5,ND5,NE5,ND5,NG5,
NE5,NE5,NE5,NE5,NE5,NE5,NE5,NG5,NC5,ND5,NE5,
NF5,NF5,NF5,NF5,NF5,NF5,NE5,NE5,NE5,NE5,NG5,NG5,NF5,ND5,NC5,
//seconda melodia
NG4,NC5,NC5,ND5,NC5,NB4,NA4,NA4,
NA4,ND5,ND5,NE5,ND5,NC5,NB4,NG4,
NG4,NE5,NE5,NF5,NE5,ND5,NC5,NA5,NG4,NG4,NA4,ND5,NB4,NC5,
NG4,NC5,NC5,ND5,NC5,NB4,NA4,NA4,
NA4,ND5,ND5,NE5,ND5,NC5,NB4,NG4,
NG4,NE5,NE5,NF5,NE5,ND5,NC5,NA5,NG4,NG4,NA4,ND5,NB4,NC5,
NG4,NC5,NC5,NC5,NB4,NB4,NC5,NB4,NA4,NG4,
ND5,NE5,ND5,ND5,NC5,NC5,NG5,NG4,NG4,NG4,NA4,ND5,NB4,NC5
};
int noteDurations[] = { //durata note prima e seconda melodia
8,8,8,8,2,8,8,8,8,2, // 10
8,8,8,8,2,8,8,8,8,2, // 10
8,8,8,8,2,8,8,8,8,2, // 10
8,8,8,8,8,8,8,16,16,8,8,8,8,4,4, // 15
8,8,4,8,8,4,8,8,8,8,2, // 11
8,8,8,16,16,8,8,8,16,16,8,8,8,8,4,4, // 16
8,8,4,8,8,4,8,8,8,8,2, // 11
8,8,8,16,16,8,8,8,16,16,8,8,8,8,2, // 15
4,4,8,8,8,8,4,4,
4,4,8,8,8,8,4,4,
4,4,8,8,8,8,4,4,8,8,4,4,4,2,
4,4,8,8,8,8,4,4,
4,4,8,8,8,8,4,4,
4,4,8,8,8,8,4,4,8,8,4,4,4,2,
4,4,4,4,2,4,4,4,4,2,
4,4,8,8,8,8,4,4,8,8,4,4,4,2,
};
void setup() { //impostazione del componenti come output
pinMode(ledb, OUTPUT);
pinMode(ledv1, OUTPUT);
pinMode(ledv2, OUTPUT);
pinMode(ledr1, OUTPUT);
pinMode(ledr2, OUTPUT);
pinMode(ledg1, OUTPUT);
pinMode(ledg2, OUTPUT);
//impostazione iniziale dei componenti una volta che Arduino è accesso
digitalWrite(ledb, HIGH);
digitalWrite(ledv1, HIGH);
digitalWrite(ledv2, HIGH);
digitalWrite(ledr1, HIGH);
digitalWrite(ledr2, HIGH);
digitalWrite(ledg1, HIGH);
digitalWrite(ledg2, HIGH);
delay(2000); //tempo durata dell'accensione di tutti i led
Serial.begin(9600);
}
void loop() {
digitalWrite(ledb, HIGH); //lasciamo il led bianco sempre acceso (stella di Natale)
// iterate over the notes of the melody:
for (int thisNote = 0; thisNote < 182; thisNote++) {
randoms=random(8);
// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1500 / noteDurations[thisNote];
tone(8, melody[thisNote], noteDuration);
// to distinguish the notes, set a minimum time between them.
// the note's duration + 30% seems to work well:
int pauseBetweenNotes = noteDuration * 1.30;
Serial.println(randoms);
switch(randoms) { //scelta casuale delle combinazioni luminose
case 0: digitalWrite(ledg1, LOW);
digitalWrite(ledv1, HIGH);
digitalWrite(ledv2, HIGH);
digitalWrite(ledr1, LOW);
digitalWrite(ledr2, LOW);
digitalWrite(ledg2, HIGH);
break;
case 1: digitalWrite(ledg1, HIGH);
digitalWrite(ledv1, LOW);
digitalWrite(ledv2, LOW);
digitalWrite(ledr1, HIGH);
digitalWrite(ledr2, HIGH);
digitalWrite(ledg2, LOW);
break;
case 2: digitalWrite(ledg1, HIGH);
digitalWrite(ledv1, HIGH);
digitalWrite(ledv2, LOW);
digitalWrite(ledr1, LOW);
digitalWrite(ledr2, LOW);
digitalWrite(ledg2, LOW);
break;
case 3: digitalWrite(ledg1, LOW);
digitalWrite(ledv1, LOW);
digitalWrite(ledv2, HIGH);
digitalWrite(ledr1, HIGH);
digitalWrite(ledr2, LOW);
digitalWrite(ledg2, LOW);
break;
case 4: digitalWrite(ledg1, LOW);
digitalWrite(ledv1, LOW);
digitalWrite(ledv2, LOW);
digitalWrite(ledr1, LOW);
digitalWrite(ledr2, HIGH);
digitalWrite(ledg2, HIGH);
break;
case 5: digitalWrite(ledg1, HIGH);
digitalWrite(ledv1, LOW);
digitalWrite(ledv2, HIGH);
digitalWrite(ledr1, LOW);
digitalWrite(ledr2, HIGH);
digitalWrite(ledg2, LOW);
break;
case 6: digitalWrite(ledg1, LOW);
digitalWrite(ledv1, HIGH);
digitalWrite(ledv2, LOW);
digitalWrite(ledr1, HIGH);
digitalWrite(ledr2, LOW);
digitalWrite(ledg2, HIGH);
break;
case 7: digitalWrite(ledg1, HIGH);
digitalWrite(ledv1, HIGH);
digitalWrite(ledv2, HIGH);
digitalWrite(ledr1, HIGH);
digitalWrite(ledr2, HIGH);
digitalWrite(ledg2, HIGH);
break;
case 8: digitalWrite(ledg1, LOW);
digitalWrite(ledv1, LOW);
digitalWrite(ledv2, LOW);
digitalWrite(ledr1, LOW);
digitalWrite(ledr2, LOW);
digitalWrite(ledg2, LOW);
break;
}
delay(pauseBetweenNotes); //pausa necessaria per le note
// stop the tone playing:
noTone(8);
}
}
Argomenti simili
» musica su arduino
» Programmare Arduino online - Arduino Create
» Fly Project - Musica
» Gif animate natale
» Musica Madonna - Hung Up
» Programmare Arduino online - Arduino Create
» Fly Project - Musica
» Gif animate natale
» Musica Madonna - Hung Up
Wiki Info :: Arduino :: Progetti Arduino
Pagina 1 di 1
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.