Bonsoir,
Ayant vu un projet sur internet il y a quelques mois (https://www.instructables.com/id/Blinking-LEDs-to-the-Frequency-of-Musi/) j'ai décidé de le recréer et de l'adapter à mes besoins.
Ce projet permet de faire clignoter un ruban led en attribuant une couleur en fonction de certaines fréquences d'une sources audio (sortie jack d'un pc par exemple).
J'ai remplacé le ruban led par une LED RGB de 3W (3W RGB LED - Common Anode : ID 2530 : $2.95 : Adafruit Industries, Unique & fun DIY electronics and kits).
Après avoir modifier légèrement le projet, j'ai réussi a avoir ce que je voulais, ma LED qui clignote en fonction du rythme de la musique (le tout étant sur une breadboard ainsi qu'une arduino uno).
Tout fonctionne correctement et voici ce que j'ai en réalité :
(https://image.noelshack.com/fichiers/2019/16/3/1555527842-led-bouteille-bb.png)
Cepedant, je voudrais mettre ce système en dessous d'une bouteille (style bouteille de vodka Grey Goose, avec le verre qui est opaque) pour avoir un beau rendu notamment sur la diffusion de la couleur.
Je souhaite donc enlever l'arduino pour garder uniquement l'atmega et ainsi (aussi) gagner de la place.
Je me suis donc lancer dans la conception d'un schéma et d'un pcb sur mesure que voici : https://easyeda.com/Spl4sh_/led-blink-frequency
J'aimerais que des personnes me donnent leurs avis (c'est la première fois que je créer un pcb)
Donc pour vous est ce qu'il y a des erreurs de débutants ? (Dans le schéma ou dans le pcb)
Je prendrais en compte n'importe quel remarques, je souhaite juste éviter de recevoir les pcb et me rendre compte que ces derniers ne marchent pas à cause d'une erreur toute bête.
Donc au final je souhaite simplement me débarrasser de l'arduino et mettre tout ce que j'ai sur ma breadboard sur un pcb.
(Inutile de me demander d'utiliser une Nano ou un Pro Mini pour gagner de la place et faire beaucoup plus simple, je veux vraiment utiliser juste l'Atmega)
Merci beaucoup !
Le code si besoin :
/* David Wang
* Code that takes audio input from a 3.5mm cable
* and flashes an LED strip based on the frequency
* of the music.
*
* HUGE thanks to the arduino community
* If you see your code here, I owe you my gratitude
*
*/
int analogPin = A0; // MSGEQ7 OUT
int strobePin = 2; // MSGEQ7 STROBE
int resetPin = 4; // MSGEQ7 RESET
int spectrumValue[7];
// MSGEQ7 OUT pin produces values around 50-80
// when there is no input, so use this value to
// filter out a lot of the chaff.
int filterValue = 80;
// LED pins connected to the PWM pins on the Arduino
int ledPinR = 9;
int ledPinG = 10;
int ledPinB = 11;
void setup()
{
Serial.begin(9600);
// Read from MSGEQ7 OUT
pinMode(analogPin, INPUT);
// Write to MSGEQ7 STROBE and RESET
pinMode(strobePin, OUTPUT);
pinMode(resetPin, OUTPUT);
// Set analogPin's reference voltage
analogReference(DEFAULT); // 5V
// Set startup values for pins
digitalWrite(resetPin, LOW);
digitalWrite(strobePin, HIGH);
}
void loop()
{
// Set reset pin low to enable strobe
digitalWrite(resetPin, HIGH);
digitalWrite(resetPin, LOW);
// Get all 7 spectrum values from the MSGEQ7
for (int i = 0; i < 7; i++)
{
digitalWrite(strobePin, LOW);
delayMicroseconds(30); // Allow output to settle
spectrumValue[i] = analogRead(analogPin);
// Constrain any value above 1023 or below filterValue
spectrumValue[i] = constrain(spectrumValue[i], filterValue, 1023);
// Remap the value to a number between 0 and 255
spectrumValue[i] = map(spectrumValue[i], filterValue, 1023, 0, 255);
// Remove serial stuff after debugging
Serial.print(spectrumValue[i]);
Serial.print(" ");
digitalWrite(strobePin, HIGH);
}
Serial.println();
// Write the PWM values to the LEDs
// I find that with three LEDs, these three spectrum values work the best
analogWrite(ledPinR, spectrumValue[6]);
analogWrite(ledPinG, spectrumValue[5]);
analogWrite(ledPinB, spectrumValue[2]);
}