Мазмұны:

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 muchas funciones interesantes, a LCD картасы теледидар мен теледидардың ажыратымдылығына байланысты, сонымен қатар RGB -дің түсі де ажыратылады. Түсініксіз, бұл бір кездері канцейлердің камералық камерасы (сонымен қатар, әрине). Бұл жағдайда сіз өзіңізге қол жеткізе аласыз.

1 -қадам: Como Funciona?

2 -қадам: Circuito Armado Y Sus Materiales

Circuito Armado Y Sus материалдары
Circuito Armado Y Sus материалдары

Бұл ең маңызды материалдардың бірі - бұл Rocola funcione!

- Arduino UNO

- Pantalla LCD 16x2 + Interfaz I2C

- Protoboard + Mini Protoboard

- LED RGB

- Пассивті дыбыстық сигнал

- Para Protoboard секіргіштері

- 2 Pulsadores Eléctricos

- Элементтер үшін

3 -қадам: 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, бұл Rocola -ның ешқандай айырмашылығы жоқ. Сіз Rocola funcione бағдарламасына кіруге рұқсат етпедіңіз.

- «2 -қадам» бойынша материалдарды алу қажет

- Бұл «Arduino UNO» бағдарламасына сәйкес келмейді, бұл бағдарламалық жасақтаманың негізгі функциялары.

- «2 -қадам» кезеңінің тізбегі.

- Бағдарламалық жасақтаманың негізгі нұсқасы.

- Бұл жағдайда сіз критерийлерге сәйкес, ең бастысы, ең маңыздысы болып табыласыз.

5 -қадам: Кодиго Де Ла Рокола

// Creado порты: Хорхе Арагон

// I2C интерфейсінің LCD -кітапханалары бар кітапханалар #қосу 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 bajarish; ////////////////////////////// MELODIAS //////////////////// ///////////define NOTE_B0 31 #анықтау NOTE_C1 33 #de NOTine NOTE_CS1 35 #deinefine NOTE_D1 37 #define NOTE_DS1 39 #deinine NOTE_E1 41 #devetine NOTE_F1 44 #devetine NOTE_FS1 46 #deferine NOTE_G1 49 #define 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 87 #Анықтау NOTE_Fse2 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 175 #Анықтау Анықтамау 185 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 #анықтаңыз A4 440 #Анықтау NOTE_AS4 466 #Анықтау NOTE_B4 494 #Анықтау NOTE_C5 523 #Анықтау NOTE_CS5 554 #Анықтау NOTE_D5 587 #Анықтау NOTE_DS5 622 #Анықтау NOTE_E5 659 #Анықтау NOTE_F5 698 #Анықтау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_Fine_6 Анықтау 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_FS7 297 NOT7in #анықтау NOTE_B7 3951 #анықтау NOTE_C8 4186 #анықтау NOTE_CS8 4435 #анықтау NOTE_D8 4699 #анықтау NOTE_DS8 4978 #демалысты анықтау 0 /////////////////////// Waker тақырыбы ///////////////////////////// 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}; /////////////////////////// Дауыл әні ///////////////////// /////// 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}; ////////////////////////// Минуэт 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_ES, 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 notes3 = sizeof (Minuet_melody3) / sizeof (Minuet_melody3 [0]) / 2; int temp = 120; int temp22 = 160; int tempo3 = 140; int wholenote = (60000 * 4) / қарқын; int wholenote2 = (60000 * 4) / temp22; int wholenote3 = (60000 * 4) / tempo3; int divider = 0, noteDuration = 0; // Ботонды тазарту, LCD панелін құру, RGB жарамсыздығын реттеу () {Wire.begin (); lcd.begin (16, 2); lcd.clear (); lcd.backlight (); pinMode (дыбыстық сигнал, OUTPUT); pinMode (4, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); pinMode (R, OUTPUT); pinMode (G, OUTPUT); pinMode (B, OUTPUT); } void loop () {if (contador == 0) {// colorWin жасаушының analogWrite (R, 0) түсін анықтаңыз; analogWrite (G, 255); analogWrite (B, 255); lcd.clear (); lcd.setCursor (0, 0); lcd.print («ЖЕЛДІ ЖАСАУШЫ»); for (int thisNote = 0; thisNote 0) {noteDuration = (wholenote) / бөлгіш; } else if (бөлгіш <0) {// нүктелі жазбалар теріс ұзақтықпен берілген !! noteDuration = (толық) / abs (бөлгіш); noteDuration *= 1,5; // нүктелі жазбалар үшін} ұзақтығын екі есе арттырады} тонусы (дыбыстық сигнал, WindWaker_melody1 [thisNote], noteDuration*0.9); // Келесі жазбаны ойнатпас бұрын спецификалық ұзақтығын күтіңіз. subir = digitalRead (4); орындалған = digitalRead (7); кешіктіру (noteDuration); noTone (дыбыстық сигнал); if (subir == LOW) {contador = 1; } if (bajar == LOW) {contador = 2; } if (contador! = 0) {break; }}} else if (contador == 1) {// дауысты дауысты әннің analogWrite (R, 255) түсін анықтайды; analogWrite (G, 0); analogWrite (B, 255); lcd.clear (); lcd.setCursor (0, 0); lcd.print («ДАУЫРЛАР ӘНІ»); for (int thisNote = 0; thisNote 0) {// тұрақты ескерту, жай ғана noteDuration = (wholenote2) / divider; } else if (бөлгіш <0) {noteDuration = (wholenote2) / abs (бөлгіш); noteDuration *= 1,5; // нүктелі жазбалар үшін} ұзақтығын екі есе арттырады} тонусы (дыбыстық сигнал, pgm_read_word_near (SongOfStorms_melody2+thisNote), noteDuration * 0.9); subir = digitalRead (4); орындалған = digitalRead (7); кешіктіру (noteDuration); noTone (дыбыстық сигнал); if (subir == LOW) {contador = 2; } if (bajar == LOW) {contador = 0; } if (contador! = 1) {break; }}} else if (contador == 2) {// Minuet analogWrite түсін анықтаңыз (R, 255); analogWrite (G, 255); analogWrite (B, 0); lcd.clear (); 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 (бөлгіш); noteDuration *= 1,5; // нүктелі жазбалар үшін} ұзақтығын екі есе арттырады} тонусы (дыбыстық сигнал, Minuet_melody3 [thisNote], noteDuration * 0.9); subir = digitalRead (4); орындалған = digitalRead (7); кешіктіру (noteDuration); noTone (дыбыстық сигнал); if (subir == LOW) {contador = 0; } subir = digitalRead (4); орындалған = digitalRead (7); if (орындалған == LOW) {contador = 1; } if (contador! = 2) {break; }}}}

Ұсынылған: