Სარჩევი:

Jukebox + Arduino: 5 ნაბიჯი
Jukebox + Arduino: 5 ნაბიჯი

ვიდეო: Jukebox + Arduino: 5 ნაბიჯი

ვიდეო: Jukebox + Arduino: 5 ნაბიჯი
ვიდეო: Using a Raspberry Pi to upgrade a broken jukebox! 2024, ივლისი
Anonim
Jukebox + Arduino
Jukebox + Arduino

ეს არის Rocola Digital- ის შექმნისა და პროგრამის Arduino პროგრამის შემუშავება. ეს არის მარტივი თამაში და არ შემიძლია სხვაგვარად შევცვალო კრეაცია. La Rocola tiene muchasciones funciones, y una de ellas es que a través de una pantalla LCD in the muestra el nombre de la canción que is esta reproduciendo, y para para cada canción se muestra un color distinto a través de un un led RGB. Así mismo, través de dos pulsadores puedes cambiar de canción (de izquierda a derecha o Viceversa). Aqu te mostraré paso a paso en como crea 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 ჩვენ გვჭირდება tengas estos materiales para hacer que tu Rocola funcione!

- არდუინო გაერო

- Pantalla LCD 16x2 + Interfaz I2C

- Protoboard + მინი Protoboard

- ხელმძღვანელობდა RGB

- პასიური ბუზერი

- მხტუნავები Para Protoboard

- 2 Pulsadores Eléctricos

- Caja para el Circuito

ნაბიჯი 3: Diagrama Esquemático Del Circuito Electrónico

დიაგრამა Esquemático Del Circuito Electrónico
დიაგრამა 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 paratiles para poder hacer que tu Rocola funcione.

- ეს არის საჭირო იმის გათვალისწინებით, თუ რა მასალაა მიღებული "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.

- რა თქმა უნდა, 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: კოდიგო დე ლა როკოლა

// Creado por: ხორხე არაგონი

// ჩართეთ librerias para la pantalla LCD con interfaz 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 ქალაქი; ////////////////////////////// MELODIAS /////////////////////////////////////////////////////////////////////////////////////////////////// ////////////definine 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 #განსაზღვრეთ NOTE_F2 87EE2 განსაზღვრეთ 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 NEE3EE3EE3EE3EE3EE3EE3EE3EE3EE3EE3EEE #E3EE3EE3EE3EEE #E3EE3EE3EEE #E3EE3EEE #E3EE3EE3EEE_33 #EE3EE3EEE_33 #EE3EE3EE3EE #E3EEE3EE3EE3EE3 #FEE3EE3E3E3EEE #E3EEEE3EE3EE_FE3EE3EE_F3 175 #deEFE 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 #განსაზღვრეთ NOTE_4 A4 440 #განსაზღვრება NOTE_AS4 466 #განსაზღვრეთ NOTE_B4 494 #განსაზღვრეთ NOTE_C5 523 #განსაზღვრეთ NOTE_CS5 554 #განსაზღვრეთ NOTE_D5 587 #განსაზღვრეთ NOTE_DS5 622 #განსაზღვრეთ NOTE_E5 659 #განსაზღვრეთ NOTE_F5E85_754_85_E4E55_85_E4E55 #E5E_55_85 #არა #განსაზღვრეთ NOTE_AS5 932 #განსაზღვრეთ NOTE_B5 988 #განსაზღვრეთ NOTE_C6 1047 #განსაზღვრეთ NOTE_CS6 1109 #განსაზღვრეთ NOTE_D6 1175 #განსაზღვრეთ NOTE_DS6 1245 #განსაზღვრეთ NOTE_E6 1319 #განსაზღვრეთ NOTE_F6 1397 #განსაზღვრა NOTE_AS6 1865 #განსაზღვრეთ NOTE_B6 1976 #განსაზღვრეთ NOTE_C7 2093 #განსაზღვრეთ NOTE_CS7 2217 #განსაზღვრეთ NOTE_D7 2349 #განსაზღვრეთ NOTE_DS7 2489 #განსაზღვრეთ NOTE_E7 2637 #განსაზღვრეთ #განსაზღვრეთ NOTE_B7 3951 #განსაზღვრეთ NOTE_C8 4186 #განსაზღვრეთ NOTE_CS8 4435 #განსაზღვრეთ NOTE_D8 4699 #განსაზღვრეთ NOTE_DS8 4978 #განსაზღვრეთ REST 0 /////////////////////// ქარი უაკერის თემა /////////////////////////// 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, 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, 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}; //////////////////////// მინუეტი გ პეტსოლდში ///////////////////// // 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, შენიშვნა 5, 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, 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, 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, 8, 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 შენიშვნები 3 = ზომა (Minuet_melody3) / ზომა (Minuet_melody3 [0]) / 2; int ტემპი = 120; int ტემპი 2 = 160; int tempo3 = 140; int wholenote = (60000 * 4) / ტემპი; int wholenote2 = (60000 * 4) / ტემპ2; int wholenote3 = (60000 * 4) / ტემპ 3; 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) {// განსაზღვრეთ ელ ფერი con el que se verá wind maker analogWrite (R, 0); analogWrite (G, 255); analogWrite (B, 255); lcd. წმინდა (); lcd.setCursor (0, 0); lcd.print ("WIND MAKER"); for (int thisNote = 0; thisNote 0) {noteDuration = (wholenote) / გამყოფი; } 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) {შესვენება; }}} სხვაგან თუ (contador == 1) {// განსაზღვრეთ el color con el que se verá სიმღერა storms analogWrite (R, 255); analogWrite (G, 0); analogWrite (B, 255); lcd. წმინდა (); lcd.setCursor (0, 0); lcd.print ("STORMS SONG"); for (int thisNote = 0; thisNote 0) {// რეგულარული შენიშვნა, უბრალოდ გააგრძელე შენიშვნაDuration = (wholenote2) / გამყოფი; } else if (გამყოფი <0) {noteDuration = (wholenote2) / abs (გამყოფი); შენიშვნა ხანგრძლივობა *= 1.5; // ზრდის ხანგრძლივობას ნახევრად წერტილოვანი ჩანაწერებისათვის} ტონი (ზუზუნი, pgm_read_word_near (SongOfStorms_melody2+thisNote), შენიშვნა ხანგრძლივობა * 0.9); subir = digitalRead (4); ქალაქი = digitalRead (7); დაგვიანებით (შენიშვნა ხანგრძლივობა); noTone (ზუზუნი); if (subir == LOW) {contador = 2; } if (ქალაქი == LOW) {contador = 0; } if (contador! = 1) {შესვენება; }}} სხვაგან თუ (contador == 2) {// განსაზღვრეთ el color con el que 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"); for (int thisNote = 0; thisNote 0) {noteDuration = (wholenote3) / გამყოფი; } else if (გამყოფი <0) {noteDuration = (wholenote3) / abs (გამყოფი); შენიშვნა ხანგრძლივობა *= 1.5; // ზრდის ხანგრძლივობას ნახევრად წერტილოვანი ნოტებისათვის} ტონი (ზუზუნი, Minuet_melody3 [ეს შენიშვნა], შენიშვნა ხანგრძლივობა * 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) {შესვენება; }}}}

გირჩევთ: