Cuprins:
- Pasul 1: ¿Como Funciona?
- Pasul 2: Circuito Armado Y Sus Materiales
- Pasul 3: Diagrama Esquemático Del Circuito Electrónico
- Pasul 4: Técnicas Para La Construcción De La Lámpara
- Pasul 5: Codul De La Rocola
Video: Jukebox + Arduino: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Acest proiect a conștientizat crearea unei Rocola Digital printr-o programare de Arduino. Su funcția este foarte simplă și nu este foarte dificilă de a crea. La Rocola are multe funcții interesante, și una de elas este că printr-un ecran LCD se afișează numărul de canție care se reproduce, și pentru că fiecare canție se arată un color distinto printr-un led RGB. Así mismo, a través de dos pulsadores puedes cambiar de canción (de stânga la dreapta sau viceversa). Aici te arată pasul pasului în care creezi unul de o formă simplă și creativă.
Pasul 1: ¿Como Funciona?
Pasul 2: Circuito Armado Y Sus Materiales
¡Este necesar ca acestea să fie materiale pentru a face ceea ce funcționează Rocola!
- Arduino UNO
- Pantalla LCD 16x2 + Interfaz I2C
- Protoboard + Mini Protoboard
- Led RGB
- Buzzer pasiv
- Jumpers Para Protoboard
- 2 Pulsadores Eléctricos
- Caja para el Circuito
Pasul 3: Diagrama Esquemático Del Circuito Electrónico
Pasul 4: Técnicas Para La Construcción De La Lámpara
Cum te-am comentat, el creează o Rocola nu este atât de dificilă ca să apară. Aici te îndrăznești tehnici care te vor fi utile pentru a putea face că tu Rocola funcționează.
- Este necesar ca să consigăm fiecare material pe care să-l mostrezi în "Step 2"
- Este necesar să avem un "Arduino UNO", la fel ca aplicația pentru a putea face că programarea funcționează.
- Creați circuitul fizic pentru care vă muștriți în "Step 2".
- Luego de tener todo armado copia la programación el cual te muestra en el ultimo paso.
- Por último, usa tu creatividad y consigue algo que tengas en tu casa para poder hacer la mejor Rocola de tu vida y no te olvides en decorarla a tu criterio.
Pasul 5: Codul De La Rocola
// Creado por: Jorge Aragón
// Includeți biblioteci pentru ecranul LCD cu interfață I2C #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); const int buzzer = 11; int contador = 0; int R = 6; int G = 9; int B = 10; int subir; int bajar; ///////////////////////////// MELODIAS //////////////////// /////////// #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 # 104 #define NOTA_ define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOT_ A4 440 #define NOTE_AS4 466 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #de1 #define NOTE_AS5 932 #define NOTE_B5 988 #define NOTE_C6 1047 #define NOTE_CS6 1109 #define NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_F6 1397 #define NOTE_FS6 1480 #define NOTE_G6 1568 #de61 NOTE_AS6 1865 #define NOTE_B6 1976 #define NOTE_C7 2093 #define NOTE_CS7 2217 #define NOTE_D7 2349 #define NOTE_DS7 2489 #define NOTE_E7 2637 #define NOTE_F7 2794 #define NOTE_FS7 2960 #define NOTE_G7 3136 #define NOTE_GS7 337 #define NOTE_B7 3951 #define NOTE_C8 4186 #define NOTE_CS8 4435 #define NOTE_D8 4699 #define NOTE_DS8 4978 #define REST 0 ///////////////////////// Wind Tema Waker /////////////////////////// int WindWaker_melody1 = {NOTE_A5, 4, NOTE_A5, 8, NOTE_A5, 4, NOTE_D6, 8, NOTE_F6, 4, NOTE_E6, 8, NOTE_D6, 4, NOTE_C6, 8, NOTE_D6, 4, NOTE_B5, 8, NOTE_G5, 4, NOTE_C6, 8, NOTE_A5, 8, NOTE_D6, 8, NOTE_B5, 8, NOTE_C6, 4, NOTE_A5, 8, NOTE_G5, 4, NOTE_D6, 8, NOTE_B5, 4, NOTE_C6, 8, NOTE_D6, 4, NOTE_E6, 8, NOTE_F6, 8, NOTE_D6, 8, NOTE_E6, 8, NOTE_A5, 4, NOTE_A5, 8, NOTE_A5, 4, NOTE_D6, 8, NOTE_F6, 4, NOTE_E6, 8, NOTE_D6, 4, NOTE_C6, 8, NOTE_D6, 4, NOTE_B5, 8, NOTE_G5, 4, NOTE_C6, 8, NOTE_A5, 8, NOTE_D6, 8, NOTE_B5, 8, NOTE_C6, 4, NOTE_D6, 8, NOTE_F6, 4, NOTE_A6, 8, NOTE_B6, 8, NOTE_F6, 8, NOTE_C6, 8, NOTE_D6, 2}; ////////////////////////// Song of Storms /////////////////////// /////// const int SongOfStorms_melody2 PROGMEM = {NOTE_D5, 12, NOTE_F5, 12, NOTE_D6, 3, NOTE_D5, 12, NOTE_F5, 12, NOTE_D6, 3, NOTE_E6, 5, NOTE_F6, 10, NOTE_E6, 12, NOTE_F6, 12, NOTE_E6, 12, NOTE_C6, 12, NOTE_A5, 3, NOTE_A5, 6, NOTE_D5, 6, NOTE_F5, 12, NOTE_G5, 12, NOTE_A5, 2, NOTE_A5, 6, NOTE_D5, 6, NOTE_F5, 12, NOTE_G5, 12, NOTE_E5, 2, NOTE_D5, 12, NOTE_F5, 12, NOTE_D6, 3, NOTE_D5, 12, NOTE_F5, 12, NOTE_D6, 3, NOTE_E6, 5, NOTE_F6, 10, NOTE_E6, 12, NOTE_F6, 12, NOTE_E6, 12, NOTE_C6, 12, NOTE_A5, 3, NOTE_A5, 6, NOTE_D5, 6, NOTE_F5, 12, NOTE_G5, 12, NOTE_A5, 2, NOTE_A5, 6, NOTE_D5, 6, NOTE_F5, 12, NOTE_G5, 12, NOTE_E5, 2}; //////////////////////// Minuet în G Petzold ////////////////////// // int Minuet_melody3 = {NOTE_D5, 4, NOTE_G4, 8, NOTE_A4, 8, NOTE_B4, 8, NOTE_C5, 8, NOTE_D5, 4, NOTE_G4, 4, NOTE_G4, 4, NOTE_E5, 4, NOTE_C5, 8, NOTE_D5, 8, NOTE_E5, 8, NOTE_FS5, 8, NOTE_G5, 4, NOTE_G4, 4, NOTE_G4, 4, NOTE_C5, 4, NOTE_D5, 8, NOTE_C5, 8, NOTE_B4, 8, NOTE_A4, 8, NOTE_B4, 4, NOTE_C5, 8, NOTE_B4, 8, NOTE_A4, 8, NOTE_G4, 8, NOTE_FS4, 4, NOTE_G4, 8, NOTE_A4, 8, NOTE_B4, 8, NOTE_G4, 8, NOTE_A4, -2, NOTE_D5, 4, NOTE_G4, 8, NOTE_A4, 8, NOTE_B4, 8, NOTE_C5, 8, NOTE_D5, 4, NOTE_G4, 4, NOTE_G4, 4, NOTE_E5, 4, NOTE_C5, 8, NOTE_D5, 8, NOTE_E5, 8, NOTE_FS5, 8, NOTE_G5, 4, NOTE_G4, 4, NOTE_G4, 4, NOTE_C5, 4, NOTE_D5, 8, NOTE_C5, 8, NOTE_B4, 8, NOTE_A4, 8, NOTE_B4, 4, NOTE_C5, 8, NOTE_B4, 8, NOTE_A4, 8, NOTE_G4, 8, NOTE_A4, 4, NOTE_B4, 8, NOTE_A4, 8, NOTE_G4, 8, NOTE_FS4, 8, NOTE_G4, -2, NOTE_B5, 4, NOTE_G5, 8, NOTE_A5, 8, NOTE_B5, 8, NOTE_G5, 8, NOTE_A5, 4, NOTE_D5, 8, NOTE_E5, 8, NOTE_FS5, 8, NOTE_D5, 8, NOTE_G5, 4, NOTE_E5, 8, NOTE_FS5, 8, NOTE_G5, 8, NOTE_D5, 8, NOTE_CS5, 4, NOTE_B4, 8, NOTE_CS5, 8, NOTE_A4, 4, NOTE_A4, 8, NOTE_B4, 8, NOTE_CS5, 8, NOTE_D5, 8, NOTE_E5, 8, NOTE_FS5, 8, NOTE_G5, 4, NOTE_FS5, 4, NOTE_E5, 4, NOTE_FS5, 4, NOTE_A4, 4, NOTE_CS5, 4, NOTE_D5, -2, NOTE_D5, 4, NOTE_G4, 8, NOTE_FS5, 8, NOTE_G4, 4, NOTE_E5, 4, NOTE_G4, 8, NOTE_FS4, 8, NOTE_G4, 4, NOTE_D5, 4, NOTE_C5, 4, NOTE_B4, 4, NOTE_A4, 8, NOTE_G4, 8, NOTE_FS4, 8, NOTE_G4, 8, NOTE_A4, 4, NOTE_D4, 8, NOTE_E4, 8, NOTE_FS4, 8, NOTE_G4, 8, NOTE_A4, 8, NOTE_B4, 8, NOTE_C5, 4, NOTE_B4, 4, NOTE_A4, 4, NOTE_B4, 8, NOTE_D5, 8, NOTE_G4, 4, NOTE_FS4, 4, NOTE_G4, -2,}; // Tempo de las canciones int notes = sizeof (WindWaker_melody1) / sizeof (WindWaker_melody1 [0]) / 2; int notes2 = sizeof (SongOfStorms_melody2) / sizeof (SongOfStorms_melody2 [0]) / 2; int note3 = sizeof (Minuet_melody3) / sizeof (Minuet_melody3 [0]) / 2; int tempo = 120; int tempo2 = 160; int tempo3 = 140; int wholenote = (60000 * 4) / tempo; int wholenote2 = (60000 * 4) / tempo2; int wholenote3 = (60000 * 4) / tempo3; int divider = 0, noteDuration = 0; // Inicializacion del boton, ecran LCD, y led RGB void setup () {Wire.begin (); lcd.inceput (16, 2); lcd.clear (); lcd.backlight (); pinMode (buzzer, OUTPUT); pinMode (4, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); pinMode (R, OUTPUT); pinMode (G, OUTPUT); pinMode (B, OUTPUT); } void loop () {if (contador == 0) {// Definir el color with the that se verá wind maker analogWrite (R, 0); analogWrite (G, 255); analogWrite (B, 255); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("WIND MAKER"); for (int thisNote = 0; thisNote 0) {noteDuration = (wholenote) / divider; } else if (divider <0) {// notele punctate sunt reprezentate cu durate negative !! noteDuration = (wholenote) / abs (divider); noteDuration * = 1,5; // mărește durata la jumătate pentru notele punctate} ton (buzzer, WindWaker_melody1 [thisNote], noteDuration * 0.9); // Așteptați durata specief înainte de a reda următoarea notă. subir = digitalRead (4); bajar = digitalRead (7); întârziere (noteDuration); noTone (buzzer); if (subir == LOW) {contador = 1; } if (bajar == LOW) {contador = 2; } if (contador! = 0) {pauză; }}} else if (contador == 1) {// Definir el color with the that se verá song of storms analogWrite (R, 255); analogWrite (G, 0); analogWrite (B, 255); lcd.clear (); lcd.setCursor (0, 0); lcd.print („CÂNTECUL TEMPESTILOR”); pentru (în thisNote = 0; thisNote 0) {// notă obișnuită, pur și simplu continuați noteDuration = (wholenote2) / divider; } else if (divider <0) {noteDuration = (wholenote2) / abs (divider); noteDuration * = 1,5; // mărește durata la jumătate pentru notele punctate} ton (buzzer, pgm_read_word_near (SongOfStorms_melody2 + thisNote), noteDuration * 0.9); subir = digitalRead (4); bajar = digitalRead (7); întârziere (noteDuration); noTone (buzzer); if (subir == LOW) {contador = 2; } if (bajar == LOW) {contador = 0; } if (contador! = 1) {pauză; }}} else if (contador == 2) {// Definir el color with the that se verá Minuet analogWrite (R, 255); analogWrite (G, 255); analogWrite (B, 0); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("MINUET ÎN G"); lcd.setCursor (0, 1); lcd.print ("PETZOLD"); for (int thisNote = 0; thisNote 0) {noteDuration = (wholenote3) / divider; } else if (divider <0) {noteDuration = (wholenote3) / abs (divider); noteDuration * = 1,5; // mărește durata la jumătate pentru notele punctate} ton (buzzer, Minuet_melody3 [thisNote], noteDuration * 0.9); subir = digitalRead (4); bajar = digitalRead (7); întârziere (noteDuration); noTone (buzzer); if (subir == LOW) {contador = 0; } subir = digitalRead (4); bajar = digitalRead (7); if (bajar == LOW) {contador = 1; } if (contador! = 2) {pauză; }}}}
Recomandat:
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino - Pași cu pași: 4 pași
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino | Pași cu pas: în acest proiect, voi proiecta un senzor senzor de parcare inversă Arduino Car Circuit folosind senzorul cu ultrasunete Arduino UNO și HC-SR04. Acest sistem de avertizare auto bazat pe Arduino poate fi utilizat pentru navigație autonomă, autonomie robotică și alte r
Arduino Jukebox / Rocola: 3 pași
Arduino Jukebox / Rocola: Următorul proiect este unul care ne permite să reproducem canțiuni folosind un soft buzzer pe platforma Arduino. Se utilizează mai multe componente pentru controlul controlului care poate fi reprodus. Aveți o funcție alternativă între trei c
Arduino Halloween Edition - Ecran pop-out Zombies (Pași cu imagini): 6 pași
Ediția Arduino Halloween - Ecran pop-out Zombies (Pași cu imagini): Vrei să-ți sperii prietenii și să faci niște zgomote în Halloween? Sau vrei doar să faci niște farse bune? Acest ecran pop-out Zombies poate face asta! În acest instructabil vă voi învăța cum să creați cu ușurință zombi cu ajutorul Arduino. HC-SR0
Alimentator de pește Arduino Uno în 6 pași ieftini și simpli !: 6 pași
Alimentator de pește Arduino Uno în 6 pași ieftini și simpli! Oamenilor cu pești de companie li s-a prezentat probabil aceeași problemă ca mine: vacanțele și uitarea. Am uitat în permanență să-mi hrănesc peștele și m-am străduit mereu să fac asta înainte să ajungă la s
Jukebox în Arduino: 4 pași
Jukebox in Arduino: Acest proiect a fost pentru o clasă din primul an de carieră în Universitatea din Valea, acesta este un tonomat care vă poate arăta numele piesei și poate căuta melodia anterioară și următoarea. Melodiile pe care le puteți afișa sunt limitate și