Arduino Noël Light avec Music Sync

je suis tombé sur deux grands instructables et ont décidé d’unir leur.    prend huit lignes de lumières et utilise le code sur l’Arduino pour "jouer" "Joy To The World".  Je l’ai testé à l’aide de LEDs, et c’est très précis.  J’ai voulu faire de ce projet, mais je voulais avoir les lumières synchronisées avec la musique.  Alors, j’ai pris un coup.  Il extrait musicale entrée et l’utilise pour déclencher une séquence de motifs sur une matrice de LED.  Donc, j’ai suivi les étapes dans le premier projet et ajouté l’apport musical de la seconde.  Ensuite, j’ai modifié le code pour travailler avec les huit arbres des feux (voir code ci-dessous).  La bonne chose au sujet de ce projet est que si vous ne pouvez pas obtenir la partie synchronisation pour travailler, vous pouvez toujours utiliser ce que vous avez construit pour exécuter le projet Arduino Noël Light contrôleur original.  J’ai inclus deux dessins--le premier est les pistes de cuivre du circuit imprimé.  Ce ne sont pas à l’échelle.  Comme l’a souligné l’auteur du premier projet, vous utilisez un marqueur indélébile de l’eau-forte pour dessiner les sentiers.  Je recommande de percer les trous pour les relais et les copeaux d’abord.  J’ai trouvé que j’ai dû effacer avec de l’alcool à friction et re-dessiner certains des sentiers fois percé.  Le deuxième dessin est du côté de la composante du Conseil d’administration.

#define SENSOR_PIN A0 / / analogique entrée pin pour la musique
void showScenario(int) ;
les prochain scénario déclencheur lorsque amplitude musique > seuil
augmenter le seuil afin de diminuer la sensibilité
diminuer le seuil pour augmenter la sensibilité
seuil d’int = 5 ;
debouncing - filtrer les déclencheurs consécutifs qui sont trop proches
ensemble de ralentir l’animation.  diminuer cette valeur
pour le rendre plus sensible aux courtes intervalles battements
int minBeatInterval = 1000 ;
int threshCrossed = 0 ;
int scénario = 1 ;
cnt int = 32768 ;
int tree1 = 6 ;
int tree2 = 7 ;
int tree3 = 8 ;
int tree4 = 9 ;
int tree5 = 2 ;
int tree6 = 3 ;
int tree7 = 4 ;
tree8 int = 5 ;
void setup()
{
pinMode (tree1, sortie) ;
pinMode (tree2, sortie) ;
pinMode (tree3, sortie) ;
pinMode (tree4, sortie) ;
pinMode (tree5, sortie) ;
pinMode (tree6, sortie) ;
pinMode (tree7, sortie) ;
pinMode (tree8, sortie) ;
digitalWrite(tree1,HIGH) ;
Delay(1000) ;
digitalWrite(tree2,HIGH) ;
Delay(1000) ;
digitalWrite(tree3,HIGH) ;
Delay(1000) ;
digitalWrite(tree4,HIGH) ;
Delay(1000) ;
digitalWrite(tree5,HIGH) ;
Delay(1000) ;
digitalWrite(tree6,HIGH) ;
Delay(1000) ;
digitalWrite(tree7,HIGH) ;
Delay(1000) ;
digitalWrite(tree8,HIGH) ;
Delay(1000) ;
digitalWrite(tree1,LOW) ;
digitalWrite(tree2,LOW) ;
digitalWrite(tree3,LOW) ;
digitalWrite(tree4,LOW) ;
digitalWrite(tree5,LOW) ;
digitalWrite(tree6,LOW) ;
digitalWrite(tree7,LOW) ;
digitalWrite(tree8,LOW) ;
Serial.Begin(9600) ;
}
void showScenario (int s) {}
int theScenario ;
theScenario = s ;
Si (theScenario == 1) {}
digitalWrite (tree1, basse) ;
digitalWrite (tree8, faible) ;
digitalWrite (tree1, HIGH) ;
digitalWrite (tree3, HIGH) ;
}
Si (theScenario == 2) {}
digitalWrite (tree1, basse) ;
digitalWrite (tree3, basse) ;
digitalWrite (tree6, HIGH) ;
digitalWrite (tree8, HIGH) ;
}
Si (theScenario == 3) {}
digitalWrite (tree6, basse) ;
digitalWrite (tree8, faible) ;
digitalWrite (tree3, HIGH) ;
digitalWrite (tree4, HIGH) ;
}
Si (theScenario == 4) {}
digitalWrite (tree3, basse) ;
digitalWrite (tree4, basse) ;
digitalWrite (tree5, HIGH) ;
digitalWrite (tree6, HIGH) ;
}
Si (theScenario == 5)
{digitalWrite (tree5, basse) ;
digitalWrite (tree6, basse) ;
digitalWrite (tree3, HIGH) ;
digitalWrite (tree4, HIGH) ;
}
Si (theScenario == 6) {}
digitalWrite (tree3, basse) ;
digitalWrite (tree4, basse) ;
digitalWrite (tree5, HIGH) ;
digitalWrite (tree6, HIGH) ;
}
Si (theScenario == 7) {}
digitalWrite (tree5, basse) ;
digitalWrite (tree6, basse) ;
digitalWrite (tree1, HIGH) ;
digitalWrite (tree3, HIGH) ;
}
Si (theScenario == 8) {}
digitalWrite (tree1, basse) ;
digitalWrite (tree3, basse) ;
digitalWrite (tree2, HIGH) ;
digitalWrite (tree4, HIGH) ;
}
Si (theScenario == 9) {}
digitalWrite (tree2, faible) ;
digitalWrite (tree4, basse) ;
digitalWrite (tree3, HIGH) ;
digitalWrite (tree5, HIGH) ;
}
Si (theScenario == 10) {}
digitalWrite (tree3, basse) ;
digitalWrite (tree5, basse) ;
digitalWrite (tree4, HIGH) ;
digitalWrite (tree6, HIGH) ;
}
Si (theScenario == 11) {}
digitalWrite (tree4, basse) ;
digitalWrite (tree6, basse) ;
digitalWrite (tree5, HIGH) ;
digitalWrite (tree7, HIGH) ;
}
Si (theScenario == 12) {}
digitalWrite (tree5, basse) ;
digitalWrite (tree7, basse) ;
digitalWrite (tree6, HIGH) ;
digitalWrite (tree8, HIGH) ;
}
Si (theScenario == 13) {}
digitalWrite (tree6, basse) ;
digitalWrite (tree8, faible) ;
digitalWrite (tree1, HIGH) ;
digitalWrite (tree4, HIGH) ;
}
Si (theScenario == 14) {}
digitalWrite (tree1, basse) ;
digitalWrite (tree4, basse) ;
digitalWrite (tree5, HIGH) ;
digitalWrite (tree8, HIGH) ;
}
Si (theScenario == 15) {}
digitalWrite (tree5, basse) ;
digitalWrite (tree8, faible) ;
digitalWrite (tree2, HIGH) ;
digitalWrite (tree4, HIGH) ;
}
Si (theScenario == 16) {}
digitalWrite (tree2, faible) ;
digitalWrite (tree4, basse) ;
digitalWrite (tree5, HIGH) ;
digitalWrite (tree7, HIGH) ;
}
Si (theScenario == 17) {}
digitalWrite (tree5, basse) ;
digitalWrite (tree7, basse) ;
digitalWrite (tree1, HIGH) ;
}
Si (theScenario == 18) {}
digitalWrite (tree1, basse) ;
digitalWrite (tree2, HIGH) ;
}
Si (theScenario == 19) {}
digitalWrite (tree2, faible) ;
digitalWrite (tree3, HIGH) ;
}
Si (theScenario == 20) {}
digitalWrite (tree3, basse) ;
digitalWrite (tree2, HIGH) ;
digitalWrite (tree4, HIGH) ;
}
Si (theScenario == 21) {}
digitalWrite (tree2, faible) ;
digitalWrite (tree4, basse) ;
digitalWrite (tree3, HIGH) ;
}
Si (theScenario == 22) {}
digitalWrite (tree3, basse) ;
digitalWrite (tree4, HIGH) ;
}
Si (theScenario == 23) {}
digitalWrite (tree4, basse) ;
digitalWrite (tree3, HIGH) ;
digitalWrite (tree5, HIGH) ;
}
Si (theScenario == 24) {}
digitalWrite (tree3, basse) ;
digitalWrite (tree5, basse) ;
digitalWrite (tree4, HIGH) ;
}
Si (theScenario == 25) {}
digitalWrite (tree4, basse) ;
digitalWrite (tree5, HIGH) ;
}
Si (theScenario == 26) {}
digitalWrite (tree5, basse) ;
digitalWrite (tree4, HIGH) ;
digitalWrite (tree6, HIGH) ;
}
Si (theScenario == 27) {}
digitalWrite (tree4, basse) ;
digitalWrite (tree6, basse) ;
digitalWrite (tree5, HIGH) ;
}
Si (theScenario == 28) {}
digitalWrite (tree5, basse) ;
digitalWrite (tree6, HIGH) ;
}
Si (theScenario == 29) {}
digitalWrite (tree6, basse) ;
digitalWrite (tree5, HIGH) ;
digitalWrite (tree7, HIGH) ;
}
Si (theScenario == 30) {}
digitalWrite (tree5, basse) ;
digitalWrite (tree7, basse) ;
digitalWrite (tree6, HIGH) ;
}
Si (theScenario == 31) {}
digitalWrite (tree6, basse) ;
digitalWrite (tree7, HIGH) ;
}
Si (theScenario == 32) {}
digitalWrite (tree7, basse) ;
digitalWrite (tree8, HIGH) ;
}
Si (theScenario == 33) {}
digitalWrite (tree8, faible) ;
digitalWrite (tree4, HIGH) ;
digitalWrite (tree5, HIGH) ;
}
Si (theScenario == 34) {}
digitalWrite (tree4, basse) ;
digitalWrite (tree5, basse) ;
digitalWrite (tree3, HIGH) ;
digitalWrite (tree6, HIGH) ;
}
Si (theScenario == 35) {}
digitalWrite (tree3, basse) ;
digitalWrite (tree6, basse) ;
digitalWrite (tree2, HIGH) ;
digitalWrite (tree7, HIGH) ;
}
Si (theScenario == 36) {}
digitalWrite (tree2, faible) ;
digitalWrite (tree7, basse) ;
digitalWrite (tree1, HIGH) ;
digitalWrite (tree8, HIGH) ;
}
Si (theScenario == 37) {}
digitalWrite (tree1, basse) ;
digitalWrite (tree8, faible) ;
digitalWrite (tree4, HIGH) ;
digitalWrite (tree5, HIGH) ;
}
Si (theScenario == 38) {}
digitalWrite (tree4, basse) ;
digitalWrite (tree5, basse) ;
digitalWrite (tree3, HIGH) ;
digitalWrite (tree6, HIGH) ;
}
Si (theScenario == 39) {}
digitalWrite (tree3, basse) ;
digitalWrite (tree6, basse) ;
digitalWrite (tree2, HIGH) ;
digitalWrite (tree7, HIGH) ;
}
Si (theScenario == 40) {}
digitalWrite (tree2, faible) ;
digitalWrite (tree7, basse) ;
digitalWrite (tree1, HIGH) ;
digitalWrite (tree8, HIGH) ;
}
} void loop() {}
int sensorValue = analogRead(SENSOR_PIN) ;
CNT ++ ;
Si (sensorValue > seuil) {}
Si (! threshCrossed & & (cnt > minBeatInterval)) {}
showScenario(scenario) ;
scénario ++ ;
}
Si {(scénario > 40)
Scénario = 1 ;
}
threshCrossed = 1 ;
CNT = 0 ;
}
Si (sensorValue < seuil) {}
threshCrossed = 0 ;
}
}

Mots clés: Arduino, Noël, Lumières

Articles Liés

Arduino LED Water Jumping avec Music

Arduino LED Water Jumping avec Music

il s'agit d'un moyen facile de concevoir et fabriquer votre propre saut de LED et de l'eau pendant que vous jouer de la musique.Liste de matériel :. Carte Arduino. Voyants : N'importe quelle couleur de LED souhaitée. Dans ce cas, j'utilise les 5 coul
Programmer un Arduino en déplacement avec votre Android phone ou une tablette

Programmer un Arduino en déplacement avec votre Android phone ou une tablette

au fil des ans, Android est devenu une formidable plate-forme mobile qui offre beaucoup de fonctionnalités seulement auparavant sur les PC. Aujourd'hui je vous apporte une façon d'écrire, compiler et télécharger des programmes Arduino sur l'aller ave
Robotique mobile avec Scratch : construire un Walker d’insectes comme axée sur l’Arduino et programmez-le avec Scratch

Robotique mobile avec Scratch : construire un Walker d’insectes comme axée sur l’Arduino et programmez-le avec Scratch

Nous allons se précipitent autour ? C'est un Arduino-basé, facile à construire la version de la marchette insectes comme faite avec du fil de cintre et conçu à l'origine par Jérôme Demers (voir aussi cette instructable) et Gareth Branwyn. Il se décli
Arduino programmateur réglable avec relais

Arduino programmateur réglable avec relais

c'est mon premier post ici, donc j'espère que j'aurai tout droit !J'ai un chauffage au gaz millivolt (pile de thermocouple) porche qui contient un contrôle manuel à ce sujet.  Je suis fatigué de faire monter et descendre allumer et éteindre, alors j'
AutoCad Inventor 2011 : Comment faire un Trailer Light avec NIP

AutoCad Inventor 2011 : Comment faire un Trailer Light avec NIP

je vais essayer de vous apprendre comment faire une goupille 5" dans Inventor 2011 Pro. Vous pourrez voir mon début à la fin de la description sur presque tout. Je vais montrer comment faire les différentes pièces.Le but est pour les gens qui pourrai
La maison intelligente avec bouclier Arduino Ethernet et Teleduino (avec web app)

La maison intelligente avec bouclier Arduino Ethernet et Teleduino (avec web app)

Ce projet est une solution simple pour ceux qui veulent un système maison-intelligente, mais n'ont pas un gros budget et pour les plus paresseux qui ne veulent pas se lever du lit pour allumer les lumières ou désactiver.C'est également le projet d'un
Disco Lights avec Arduino

Disco Lights avec Arduino

Bonjour Bonjour tout le monde,Il s'agit de mon tout premier Instructable. Vous pouvez critiquer me sur les mauvaises parties.Dans ce Instructable, je vais vous montrer mon idée de certains lumières disco avec Arduino.Étape 1: Matériaux nécessairesCe
Musique de l’Arduino PWM LED Light

Musique de l’Arduino PWM LED Light

sur mes vacances de deux semaines entre les cours d'été et l'école de mon 5ème année j'ai décidé de m'amuser avec mon 1W led s que je n'ai jamais utilisé, même si je les ai eu pour toujours.Cela servait à pont sur ma maison, si nous avions quelque ch
Tr/min de lecture de base Arduino IR tachymètre avec MATLAB GUI

Tr/min de lecture de base Arduino IR tachymètre avec MATLAB GUI

Bonjour encore une fois, un couple des jours retour que j'ai posté une instructable de tachymètre infrarouge en utilisant arduino, puis j'ai réalisé que plutôt que de lire la valeur de t/mn dans le moniteur de serial Arduino IDE, présentant le nombre
Arduino Bluetooth réservoir avec Application Android personnalisée (V1.0)

Arduino Bluetooth réservoir avec Application Android personnalisée (V1.0)

Salut! Il s'agit d'un guide pour savoir comment construire un simple et bon marché Arduino basé Bluetooth réservoir. C'est la première étape de ce projet et ne porte que sur le développement d'un véhicule de piste basé citerne mobile. La deuxième éta
Combiner des Arduinos 1 ou plus avec un RaspberryPi

Combiner des Arduinos 1 ou plus avec un RaspberryPi

Cette instructable est une démonstration de la fonction de Drogo commande à distance (RDC) avec wiringPi.Les bibliothèques wiringPi, écrites par Gordon Henderson, ajouter les fonctions qui vous permettent au programme le GPIO broches sur le Raspberry
Arduino Serial Terminal Oled avec bibliothèque Adafruit SSD1306

Arduino Serial Terminal Oled avec bibliothèque Adafruit SSD1306

J'ai utilisé la bibliothèque et les graphiques Adafruit_GFX Adafruit_SSD1306 que j'ai fait la plateforme Arduino utilisée comme terminal sérieet les caractères reçus atravez un mini écran OLED, ce n'est que la première partie d'un projet un peu plus
Arduino LCD thermomètre avec sonde de température LM35

Arduino LCD thermomètre avec sonde de température LM35

: mise à jour du PIN 13 : Merci à cybersbpour les captures.Le Fritzing schématique montre à l'aide de broches 12 et 13. Cela ne résout pas. Doit utiliser les broches figurant dans le code, les bornes 11 et 12.C'est comme le titre l'indique, un Arduin
Brancher un écran LCD à un Arduino en 6 secondes avec 3, pas 6 broches

Brancher un écran LCD à un Arduino en 6 secondes avec 3, pas 6 broches

ajout d'un écran LCD à projets Arduino peut ajouter une valeur réelle, mais le coût de faire ainsi peut être important. Pas un coût financier - vous pouvez ramasser 16 (personnages) x 2 (lignes) LCD pour aussi peu que £3,50. Le coût est le nombre de