et l’interfaçage avec le logiciel PC Windows !
Salut, tout le monde.
Ce qui rend ce projet cool c’est le fait, que sa musique de télédétection, contrairement aux traditionnels
VU-mètre ou égaliseur qui indique le niveau de bruit entrant par commutation LED
Ressemble à mon tour de LED, qu’il sache quand la pause ou drop ou ce que jamais dans la chanson est comnming.
Les lumières Bigger je construis, ne reçoit que sur le moment la musique obtenir plus intensif.
avec Serial Monitor, j’ai réussi à écrire un Needet Windows App, qu’Arduino de contrôles, d’utiliser le
trou tour comme lumière de fond pour mon salon.
Découvrez ici :
Ce qu’il faut (Version complète) :
-Arduino Mega(Atmega1280)
-24 x LED bleu
-14 x LED blanc
-5 x LED Multicolor
-2 x LED verte
-2 X Bi-Color(Red/Blue) LED
-2 x 40 watts lampes
-2 x 12 volts LED-Spot LED
-2 x 5 volts relais
-1 X SMD Red Matrix
-45 x 220 Ohm résistances
-Fil
-1 x 3,5 Audio Jack
-1 x body A Styropor ou plexiglass
Ce qu’il faut (Version de base) :
-N’importe quel microprocesseur Arduino avec X points !
-X LED
-X résistances de 220 ohms
-Fil
-3,5 audio Jack
-Un organisme Styropor ou plexiglass
S’il vous plaît, Découvrez les photos :
Comment ça marche ?
Si vous avez jamais fait de musique vous-même vous, connaître la longueur du motif de standart de musique, et
C’est la clé, en comptant les variables et les compering. (comme 16,32,64,128,256,512 etc...)
Étape 1 :
-Percer des trous dans votre corps de polystyrène ou de plexiglas.
-Placez vos voyants comme vous voulez.
Étape 2 :
-Câblez vos LEDs avec résistances et à n’importe quel Picot libre sur votre Arduino!.
-connecter les deux LEDS avec broches pwm
-Testez votre LED avec la base « Blink-Sketch »
Étape 3 :
-Branchez une broche analogique avec la prise d’entrée audio et votre source Audio
-Tester avec la base « AnalogRead-Sketch »
Étape 4 :
Ouvrez le logiciel Arduino au programm il.
Télécharger ce code et éditer les baies avec vos NIP et le nombre de broches pour le var.
/* broches que le capteur est fixé à 14 analogiques dans mon cas 3 principales du tableau avec des épingles de LED Voici le nombre de LED adossé à du tableau 3
https://dl.dropbox.com/u/3917871/ardurino/LEDTOWER.exe
*/
const int sensorPin = A14 ;
const int [] ALLLEDS = {}
6,22,8,26,53,24,48,10,5,42,31,32,33,23,25,9,27,7,44,12,50,34} ;
const int [] notPWMLEDS = {}
22,26,53,24,5,42,31,32,33,23,25,27,50,34} ;
const int [] pwmLEDS = {}
6,8,5,9,44,10,7,12,48} ;
const int pwmCOUNT = 9 ;
const int ALLCOUNT = 22 ;
const int notPWMCOUNT = 15 ;
Voici le Highlihts spécial relié avec un relais
const int relayCh1 = 14 ; Lampes 2 x 40 watts
const int relayCh2 = 15 ; LED de 2 x 12 volts LED-Spot
const int relayCh3 = 17 ; Licht 3
variables :
int incomingByte,jaodernein,schleifeEins,schleifeZwei,schleifeDrei,sensorMax,sensorValue,AudioIn,LANGERdelay,DelayValue,counterNull,counterEins,counterZwei,counterDrei,counterVier,counterFunf,counterSechs,counterSieben,nextLED,updown,thisPin = 0; la valeur de la sonde
int sensorMin = 1023 ; valeur minimale de capteur
void setup() {}
Configure la tension de référence utilisée pour l’entrée analogique
analogReference(INTERNAL1V1) ;
Serial.Begin(9600) ;
Serial.println ("TOWER LED « Hello » par Mhonolog v: 13.5") ;
pinMode (relayCh1, sortie) ;
pinMode (relayCh2, sortie) ;
pinMode (relayCh3, sortie) ;
pinMode (48, sortie) ;
pour (thisPin = 0; thisPin < ALLCOUNT ; thisPin ++) {}
pinMode (ALLLEDS [thisPin], sortie) ;
}
Serial.println("calibrateing...") ;
digitalWrite (7, HIGH) ;
alors que {(millis() < 5000)
sensorValue = analogRead(sensorPin) ;
Si (sensorValue > sensorMax) {}
sensorMax = sensorValue ;
}
Si (sensorValue < sensorMin) {}
sensorMin = sensorValue ;
}
}
Serial.Print ("la valeur min nouveaux:") ;
Serial.Print(sensorMin) ;
Serial.Print ("\t la valeur max nouvelle:") ;
Serial.println(sensorMax) ;
digitalWrite (7, faible) ;
}
void loop() {}
startstop() ;
Si (jaodernein == 1) {}
ReadIt() ;
MainCounter() ;
}
}
Il attend une commande série. Vous pouvez Type dans votre Console série de moniteur ou utiliser mon logiciel
Commandes :
A: Pour démarrer
E: Pour arrêt
L: Lumières sur
K: Les lumières
//
Si vous ne souhaitez pas utiliser cette boucle remplacer « vide » avec :
/*
void loop() {}
ReadIt() ;
MainCounter() ;
}
*/
void startstop() {}
Si (Serial.available() > 0) {}
lire l’octet le plus ancien dans le tampon de //Serial :
incomingByte = Serial.read() ;
Si (incomingByte == « A ») {/ / Anfang
jaodernein = 1 ;
Serial.println ("Starte Visualisierung...") ;
}
Si (incomingByte == « E ») {/ / Ende
AllLedsOFF() ;
jaodernein = 0 ;
Serial.println ("Stoppe Visualisierung...") ;
}
Si (incomingByte == « L ») {/ / Nur Lampe
jaodernein = 0 ;
digitalWrite (relayCh3, HIGH) ;
digitalWrite (relayCh2, HIGH) ;
Serial.println ("Licht un...") ;
}
Si (incomingByte == « K ») {/ / Keine Lampe
jaodernein = 0 ;
digitalWrite (relayCh3, basse) ;
digitalWrite (relayCh2, basse) ;
Serial.println (« Aus Licht... ") ;
}
}
}
void ReadIt() {}
AudioIn = analogRead(sensorPin) ;
Si (AudioIn > sensorMax) {}
sensorMax = AudioIn ;
}
Si (AudioIn < sensorMin) {}
sensorMin = AudioIn ;
}
AudioIn = carte (AudioIn, sensorMin, 1023, 0, sensorMax) ;
sensorValue = carte (AudioIn, sensorMin, sensorMax, 0, 255) ;
sensorValue = contraindre (sensorValue, 0, 255) ;
DelayValue = carte (AudioIn, sensorMin, sensorMax, (AudioIn*3)/100,(AudioIn*10)/100) ;
}
void MainCounter() {}
Si (AudioIn == 0 || AudioIn < 50) {}
AllLedsOFF() ;
counterNull--;
counterEins--;
}
d’autre
{
Si (updown == 0) {}
nextLED ++ ;
}
Si (updown == 1) {}
nextLED--;
}
Si (AudioIn > 50 & AudioIn < 100) {}
counterEins = counterEins + 2 ;
counterNull--;
counterZwei ++ ;
counterDrei ++ ;
}
Si (AudioIn > 100 & AudioIn < 200) {}
counterVier ++ ;
}
Si (AudioIn > 200 & AudioIn < 300) {}
counterFunf ++ ;
}
Si (AudioIn > 400 & AudioIn < 500) {}
counterSieben--;
}
Si (AudioIn > 500 & AudioIn < 700) {}
counterSieben = counterSieben + 3 ;
}
Si (AudioIn > 707) {}
digitalWrite (48, faible) ;
}
Si (AudioIn < 200 & (counterFunf > counterVier) & (counterSechs < counterFunf) & (counterVier < counterDrei) || (schleifeEins < schleifeZwei & schleifeEins < schleifeDrei)) {
schleifeEins ++ ;
digitalWrite (notPWMLEDS [counterFunf], HIGH) ;
analogWrite (pwmLEDS [6], sensorValue) ;
digitalWrite (pwmLEDS [6], HIGH) ;
digitalWrite (48, faible) ;
digitalWrite (ALLLEDS [nextLED], élevé) ;
Si ((AudioIn > 333) & (counterNull == -64 || counterNull == -32)) {}
counterSieben = 0 ;
digitalWrite(relayCh2,HIGH) ;
counterSieben = 0 ;
LANGERdelay = 1 ;
}
else {}
LANGERdelay = 0 ;
}
Si (LANGERdelay == 0) {}
Delay(DelayValue*2) ;
Delay(DelayValue) ;
}
else {}
Delay(64+DelayValue) ;
LANGERdelay = 0 ;
}
}
Si ((counterFunf > counterVier || counterFunf < counterVier) || (schleifeZwei < schleifeEins & schleifeZwei < schleifeDrei)) {
schleifeZwei ++ ;
digitalWrite (notPWMLEDS [counterFunf], HIGH) ;
digitalWrite (ALLLEDS [1], élevé) ;
analogWrite (pwmLEDS [counterSechs], sensorValue) ;
pour (thisPin = sensorValue ; thisPin > 0; thisPin--) {}
sensorValue = sensorValue-5 ;
}
Si ((AudioIn > 333) & (counterNull == -64 || counterNull == -16)) {}
counterSieben = 0 ;
digitalWrite(relayCh1,HIGH) ;
LANGERdelay = 1 ;
}
else {}
LANGERdelay = 0 ;
}
Si (LANGERdelay == 0) {}
Delay(DelayValue) ;
}
else {}
Delay(64+DelayValue) ;
LANGERdelay = 0 ;
}
}
Si ((AudioIn > 200) &(counterNull < counterEins) & (counterSechs < counterFunf) & (counterVier < counterDrei) || (schleifeDrei < schleifeEins & schleifeDrei < schleifeZwei)) {
digitalWrite (notPWMLEDS [counterFunf], HIGH) ;
schleifeDrei ++ ;
digitalWrite (ALLLEDS [2], élevé) ;
digitalWrite (48, haut) ;
digitalWrite (pwmLEDS [6], faible) ;
pour (thisPin = 0; thisPin / / digitalWrite (notPWMLEDS [thisPin], HIGH) ;
Delay(DelayValue) ;
digitalWrite (notPWMLEDS [thisPin], faible) ;
// }
Si ((AudioIn > 333) & (counterNull == -64 || counterNull == -8)) {}
counterSieben = 0 ;
digitalWrite(relayCh3,HIGH) ;
LANGERdelay = 1 ;
}
else {}
LANGERdelay = 0 ;
}
Si (LANGERdelay == 0) {}
Delay(DelayValue) ;
}
else {}
Delay(64+DelayValue) ;
LANGERdelay = 0 ;
}
}
Si (nextLED > = ALLCOUNT) {}
UpDown = 1 ;
}
ElseIf (nextLED < = 0) {}
UpDown = 0 ;
}
Si {(counterZwei > 256)
counterSechs ++ ;
counterZwei = 0 ;
}
Si {(counterDrei > 512)
counterDrei = 0 ;
schleifeEins = 0 ;
schleifeZwei = 0 ;
schleifeDrei = 0 ;
digitalWrite (pwmLEDS [6], HIGH) ;
}
Si {(counterVier > 32)
counterVier = 0 ;
sensorMax = 0 ;
digitalWrite (48, haut) ;
}
Si (counterFunf > = notPWMCOUNT) {}
counterFunf = 0 ;
}
Si (counterSechs > = pwmCOUNT) {}
counterSechs = 0 ;
}
Si (counterNull > = 64 || counterEins > = 64 || counterNull < = -64 || counterEins < = -64) {}
counterNull = 0 ;
counterEins = 0 ;
}
}
}
void AllLedsOFF() {}
digitalWrite (relayCh1, basse) ;
digitalWrite (relayCh2, basse) ;
digitalWrite (relayCh3, basse) ;
pour (thisPin = 0; thisPin < ALLCOUNT ; thisPin ++) {/ / initialize tous dans une boucle
digitalWrite (ALLLEDS [thisPin], faible) ;
}
}