Բովանդակություն:

Jukebox + Arduino ՝ 5 քայլ
Jukebox + Arduino ՝ 5 քայլ

Video: Jukebox + Arduino ՝ 5 քայլ

Video: Jukebox + Arduino ՝ 5 քայլ
Video: Using a Raspberry Pi to upgrade a broken jukebox! 2024, Հուլիսի
Anonim
Jukebox + Arduino
Jukebox + Arduino

Ստեղծված պրոյեկտոր ՝ Rocola Digital- ի ստեղծման և Arduino- ի ծրագրերի մշակման համար: Su función es muy simple y no es muy difícil de crear. La Rocola tiene muchas funciones interesantes, y una de ellas es que a través de una pantalla LCD se muestra el nombre de la canción que se is esta reproduciendo, y para para cada canción seest muestra un colour distinto a través de un un led RGB- ն: Así mismo, a través de dos pulsadores puedes cambiar de canción (de izquierda a derecha o Viceversa): Aquí te mostraré paso a paso en como crear uno de una forma sencilla y creativa.

Քայլ 1. ¿Como Funciona?

Քայլ 2. Circuito Armado Y Sus Materiales

Circuito Armado Y Sus Materiales
Circuito Armado Y Sus Materiales

Ne Es necesario que tengas estos materiales para hacer que tu Rocola funcione!

- Arduino UNO

- Pantalla LCD 16x2 + Interfaz I2C

- Protoboard + Mini Protoboard

- Առաջնորդվելով RGB- ով

- Պասիվ ազդանշան

- Թռչկոտողներ Para Protoboard

- 2 Pulsadores Eléctricos

- Caja para el Circuito

Քայլ 3. Diaqurama Esquemático Del Circuito Electrónico

Diaqurama Esquemático Del Circuito Electrónico
Diaqurama Esquemático Del Circuito Electrónico

Քայլ 4. Técnicas Para La Construcción De La Lámpara

Como te comentaba, el crear una Rocola no es tan difícil como aparenta. Aquí te dare unas técnicas que te serán útiles para poder hacer que tu Rocola funcione.

- Es necesario que consigas cada material que se muestra en "Step 2"

- Անհրաժեշտ է «Arduino UNO» - ի միջոցով, որն անհրաժեշտ է օգտագործել ծրագրերի գործառույթների համար:

- Crea el circuito físico el cual te muestro en «Քայլ 2»:

- Luego de tener todo armado copia la programación el cual te mostraré 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.

Քայլ 5: Código De La Rocola

// Creado por: Խորխե Արագոն

// Ներառեք անվճար պարամետրեր LCD- ի միջոցով interfaz I2C #ներառել #ներառել 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 քաղաք; ////////////////////////////// ՄԵԼՈԴԻԱՍ /////////////////// //////////// #սահմանել NOTE_B0 31 #սահմանել NOTE_C1 33 #սահմանել NOTE_CS1 35 #սահմանել NOTE_D1 37 #սահմանել NOTE_DS1 39 #սահմանել NOTE_E1 41 #սահմանել NOTE_F1 44 #սահմանել NOTE_FS1 46 #սահմանել 52 #սահմանել NOTE_A1 55 #սահմանել NOTE_AS1 58 #սահմանել NOTE_B1 62 #սահմանել NOTE_C2 65 #սահմանել NOTE_CS2 69 #սահմանել NOTE_D2 73 #սահմանել NOTE_DS2 78 #սահմանել NOTE_E2 82 #define NOTE_F2 87 #de2 սահմանել NOTE_A2 110 #սահմանել NOTE_AS2 117 #սահմանել NOTE_B2 123 #սահմանել NOTE_C3 131 #սահմանել NOTE_CS3 139 #սահմանել NOTE_D3 147 #սահմանել NOTE_DS3 156 #սահմանել NOTE_E3 165 #սահմանել NOTE_F3_FE3_EF3 NE3_FE3_EF3 NEE3_EF3 NEE3_E33FEE_E33FEE3_E33FEE_E33FEE_33FEE_E3_FEE_F3 220 #սահմանել NOTE_AS3 233 #սահմանել NOTE_B3 247 #սահմանել NOTE_C4 262 #սահմանել NOTE_CS4 277 #սահմանել NOTE_D4 294 #սահմանել NOTE_DS4 311 #սահմանել NOTE_E4 330 #սահմանել NOTE_F4 349 #սահմանել NOTE4E4E4E4_4 A4 440 #սահմանել NOTE_AS4 466 #սահմանել NOTE_B4 494 #սահմանել NOTE_C5 523 #սահմանել NOTE_CS5 554 #սահմանել NOTE_D5 587 #սահմանել NOTE_DS5 622 #սահմանել NOTE_E5 659 #define NOTE_F5EE855E755EE5587_E5E_55_EFE_55_EFE_55_EFE_55_EFE_65_EFE_55_EFE_55_EFE_E57 #սահմանել NOTE_AS5 932 #սահմանել NOTE_B5 988 #սահմանել NOTE_C6 1047 #սահմանել NOTE_CS6 1109 #սահմանել NOTE_D6 1175 #սահմանել NOTE_DS6 1245 #սահմանել NOTE_E6 1319 #սահմանել NOTE_F6 1397 #սահմանել_666 NOTE_AS6 1865 #սահմանել NOTE_B6 1976 #սահմանել NOTE_C7 2093 #սահմանել NOTE_CS7 2217 #սահմանել NOTE_D7 2349 #սահմանել NOTE_DS7 2489 #սահմանել NOTE_E7 2637 #սահմանել NOTE_F7 2794 #սահմանել NOTE_B7 3951 #սահմանել NOTE_C8 4186 #սահմանել NOTE_CS8 4435 #սահմանել NOTE_D8 4699 #սահմանել NOTE_DS8 4978 #սահմանել REST 0 //////////////////////// Քամին Waker Theme /////////////////////////// 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_F6, 8, NoteE 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}; /////////////////////////// Փոթորիկների երգ ///////////////////// /////// 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,, 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_F5, 12,, 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,, 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- ը 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_B, 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_B4, 8,, 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_D5, 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, 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_4, 4,, 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,, 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 notes3 = sizeof (Minuet_melody3) / sizeof (Minuet_melody3 [0]) / 2; int տեմպ = 120; int tempo2 = 160; int tempo3 = 140; int wholenote = (60000 * 4) / տեմպ; int wholenote2 = (60000 * 4) / tempo2; int wholenote3 = (60000 * 4) / tempo3; int բաժանարար = 0, նշումՏևողություն = 0; // Inicializacion del boton, pantalla LCD, y led RGB void setup () {Wire.begin (); lcd. սկսել (16, 2); lcd. հստակ (); lcd. լուսարձակը (); pinMode (ազդանշանային, 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 con el que se se verá wind maker analogWrite (R, 0); analogWrite (G, 255); analogWrite (B, 255); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print ("WIND MAKER"); համար (int thisNote = 0; thisNote 0) {noteDuration = (wholenote) / divider; } else if (բաժանարար <0) {// կետավոր նշումները ներկայացված են բացասական տևողությամբ !! noteDuration = (wholenote) / abs (բաժանարար); նշումՏևողություն *= 1.5; // կետադրված նշումների} տոնայնության տևողությունը կիսով չափ ավելանում է (ազդանշան, WindWaker_melody1 [thisNote], noteDuration*0.9); // Սպասեք նախատիպի տևողությանը ՝ հաջորդ նոտան նվագարկելուց առաջ: subir = digitalRead (4); քաղաք = digitalRead (7); ուշացում (նշումՏևողություն); noTone (ազդանշան); if (subir == LOW) {contador = 1; } if (քաղաք == LOW) {contador = 2; } if (contador! = 0) {ընդմիջում; }}} else if (contador == 1) {// Definir el color con el que se se verá song of storms analogWrite (R, 255); analogWrite (G, 0); analogWrite (B, 255); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («ՓՈԹՈՐԿԻ ԵՐԳ»); for (int thisNote = 0; thisNote 0) {// սովորական նշման համար, պարզապես շարունակեք նշումDuration = (wholenote2) / divider; } else if (բաժանարար <0) {noteDuration = (wholenote2) / abs (բաժանարար); նշումՏևողություն *= 1.5; // կետավոր նշումների} տոնայնության տևողությունը կիսով չափ ավելացնում է (ազդանշան, pgm_read_word_near (SongOfStorms_melody2+thisNote), նշումՏևողություն * 0.9); subir = digitalRead (4); քաղաք = digitalRead (7); ուշացում (նշումՏևողություն); noTone (ազդանշան); եթե (subir == LOW) {contador = 2; } if (քաղաք == LOW) {contador = 0; } if (contador! = 1) {ընդմիջում; }}} այլ դեպքում (contador == 2) {// Definir el color con el que se se verá Minuet analogWrite (R, 255); analogWrite (G, 255); analogWrite (B, 0); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («MINUET IN G»); lcd.setCursor (0, 1); lcd.print ("PETZOLD"); համար (int thisNote = 0; thisNote 0) {noteDuration = (wholenote3) / divider; } else if (բաժանարար <0) {noteDuration = (wholenote3) / abs (բաժանարար); նշումՏևողություն *= 1.5; // կետադրված նշումների} տոնայնության տևողությունը կիսով չափ ավելանում է (ազդանշան, Minuet_melody3 [thisNote], noteDuration * 0.9); subir = digitalRead (4); քաղաք = digitalRead (7); ուշացում (նշումՏևողություն); noTone (ազդանշան); if (subir == LOW) {contador = 0; } subir = digitalRead (4); քաղաք = digitalRead (7); if (քաղաք == LOW) {contador = 1; } if (contador! = 2) {ընդմիջում; }}}}

Խորհուրդ ենք տալիս: