Мазмуну:

Jukebox + Arduino: 5 кадам
Jukebox + Arduino: 5 кадам

Video: Jukebox + Arduino: 5 кадам

Video: Jukebox + Arduino: 5 кадам
Video: Wurlitzer model 412 Jukebox 2024, Ноябрь
Anonim
Jukebox + Arduino
Jukebox + Arduino

Бул Rocola Digital жана Arduino программаларынын бири болуп саналат. Эң негизгиси, жөнөкөй эле нерсе жок. La Rocola tiene muchas funciones interesantes, y una de ellas es que a través de una pantalla LCD LCD di de can canón de la canción que se esta reproduciendo, y que para cada canción se muestra un color distinto a través de un led RGB. Түшүнбөстүк менен, бул дагы бир жолу, бул камеранын камерасы (дагы бир жолу). Активдүү каттарды жаратуу үчүн эң сонун вариант.

1 -кадам: Como Funciona?

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

Circuito Armado Y Sus Materiales
Circuito Armado Y Sus Materiales

Бул эң керектүү материалдардын бири болуп саналат!

- Arduino UNO

- Pantalla LCD 16x2 + Interfaz I2C

- Protoboard + Mini Protoboard

- LED RGB

- Passive Buzzer

- Para Protoboard джамперлери

- 2 Pulsadores Eléctricos

- Эл аралык Circuito үчүн

3 -кадам: Diagrama Esquemático Del Circuito Electrónico

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

4 -кадам: Tecicas Para La Construcción De La Lámpara

Como te comentaba, el crear una Rocola no es tan difícil como aparenta. Сиз бул жерде Rocola funcione программасын иштетүү үчүн эч кандай аракет кыла албайсыз.

- Эң негизгиси, "2 -кадам" материалдары

- Бул "Arduino UNO" үчүн зарыл болгон нерселердин бири, бул программанын функциясы.

- "2 -кадам" боюнча түзүлгөн схемалар.

- Тендер куралдарын көчүрүү программасы.

- Туура эмес болсоңуз, анда сиз критерийлерге ээ болосуз жана эч кимге жардам бербейсиз.

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

// Creado por: Хорхе Арагон

// 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 bajar; ////////////////////////////// MELODIAS //////////////////// ///////////define NOTE_B0 31 #аныктоо NOTE_C1 33 #аныктоо NOTE_CS1 35 #аныктоо NOTE_D1 37 #аныктоо NOTE_DS1 39 #аныктоо NOTE_E1 41 #аныктоо NOTE_F1 44 #аныктоо NOTE_FS1 46 #аныктоо NOTE_G1 49 #аныктоо 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 #аныктоо NOTFEFF22 # NOTE_A2 110 #аныктоо NOTE_AS2 117 #аныктоо NOTE_B2 123 #аныктоо NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTEFine 220 #аныктоо NOTE_AS3 233 #аныктоо NOTE_B3 247 #аныктоо NOTE_C4 262 #аныктоо NOTE_CS4 277 #аныктоо NOTE_D4 294 #аныктоо NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NotifyFotify_444 A4 440 #аныктоо NOTE_AS4 466 #аныктоо NOTE_B4 494 #аныктоо NOTE_C5 523 #аныктоо NOTE_CS5 554 #аныктоо NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define8585555 #аныктоо NOTE_AS5 932 #аныктоо NOTE_B5 988 #аныктоо NOTE_C6 1047 #аныктоо NOTE_CS6 1109 #аныктоо NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_F6 1397 #define 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 NOT7efe #аныктоо NOTE_B7 3951 #аныктоо NOTE_C8 4186 #аныктоо NOTE_CS8 4435 #аныктоо NOTE_D8 4699 #аныктоо NOTE_DS8 4978 #аныктоо REST 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}; /////////////////////////// Minuet in 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 notes3 = sizeof (Minuet_melody3) / sizeof (Minuet_melody3 [0]) / 2; int tempo = 120; int tempo2 = 160; int tempo3 = 140; int wholenote = (60000 * 4) / темп; int wholenote2 = (60000 * 4) / tempo2; int wholenote3 = (60000 * 4) / tempo3; int divider = 0, noteDuration = 0; // Ботон, LCD панели, RGB боштугун орнотуу () {Wire.begin (); lcd.begin (16, 2); lcd.clear (); lcd.backlight (); pinMode (ызы -чуу, ЧЫГУУ); pinMode (4, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); pinMode (R, OUTPUT); pinMode (G, OUTPUT); pinMode (B, OUTPUT); } void loop () {if (contador == 0) {// Түшүндүрөт, шамал жасоочу 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) / бөлүүчү; } else if (divider <0) {// чекит ноталар терс узактыктар менен берилген !! noteDuration = (wholenote) / abs (бөлүүчү); noteDuration *= 1.5; // чекит ноталардын} узактыгын эки эсе көбөйтөт} тон (ызылдак, WindWaker_melody1 [thisNote], noteDuration*0.9); // Кийинки нотаны ойнотуудан мурун, анын узактыгын күтө туруңуз. subir = digitalRead (4); аткар = digitalRead (7); кечиктирүү (noteDuration); noTone (ызы -чуу); if (subir == LOW) {contador = 1; } if (аткарылган == 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 (аткарылган == 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) / divider; } 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; }}}}

Сунушталууда: