Sisällysluettelo:

Jukebox + Arduino: 5 vaihetta
Jukebox + Arduino: 5 vaihetta

Video: Jukebox + Arduino: 5 vaihetta

Video: Jukebox + Arduino: 5 vaihetta
Video: Using a Raspberry Pi to upgrade a broken jukebox! 2024, Heinäkuu
Anonim
Jukebox + Arduino
Jukebox + Arduino

Este Proyecto Consistió ja Crea una Rocola Digital ja Arduino -ohjelman ohjelma. 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 a pantalla LCD se muestra el nombre de la canción que se esta reproduciendo, y que para cada canción se muestra and color distinto a través de 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 crear uno de una forma sencilla y creativa.

Vaihe 1: ¿Como Funciona?

Vaihe 2: Circuito Armado Y Sus Materiales

Circuito Armado Y Sus Materiales
Circuito Armado Y Sus Materiales

¡On välttämätöntä que tengas estos materiales para hacer que tu Rocola funcione!

- Arduino UNO

- Pantalla LCD 16x2 + Interfaz I2C

- Protoboard + Mini Protoboard

- Led RGB

- Passiivinen summeri

- Neulepuserot Para Protoboardissa

- 2 Pulsadores Eléctricoa

- Caja para el Circuito

Vaihe 3: Diagrama Esquemático Del Circuito Electrónico

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

Vaihe 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 fi "Vaihe 2"

- Esseario que tengas un "Arduino UNO", alguaali que la aplicación para poder hacer que la programción funcione.

- Crea el circuit físico el cual te muestro fi "Vaihe 2".

- Lue lisää de tener todo armado copia la programció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.

Vaihe 5: Código De La Rocola

// Kirjailija: Jorge Aragón

// Sisällytä liberaalit LCD -paneeliin, jossa on I2C #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); const int summeri = 11; int contador = 0; int R = 6; int G = 9; int B = 10; int subir; int bajar; //////////////////////////////////////////// MELODIAS /////////////////// /////////// #määrittele NOTE_B0 31 #määrittele NOTE_C1 33 #määritä NOTE_CS1 35 #määrittele NOTE_D1 37 #määritä NOTE_DS1 39 #määritä NOTE_E1 41 #määritä EIE_F1 44 #määritä NOTE_FS1 46 #määritä NOTE_G1 49 #määritä 52 #määrittele NOTE_A1 55 #määrittele NOTE_AS1 58 #määrittele NOTE_B1 62 #määritä NOTE_C2 65 #määritä NOTE_CS2 69 #määritä NOTE_D2 73 #määritä NOTE_DS2 78 #määritä EI EI 82 82 määritä NOTE_A2 110 #määrittele NOTE_AS2 117 #määrittele NOTE_B2 123 #määritä NOTE_C3 131 #määritä NOTE_CS3 139 #määritä NOTE_D3 147 #määritä NOTE_DS3 156 #määritä EI 220 #määrittele NOTE_AS3 233 #määrittele EIE_B3 247 #määrittele EIE_C4 262 #määrittele EIE_CS4 277 #määrittele NOTE_D4 294 #määritä NOTE_DS4 311 #määrittele EI EI A4 440 #määrittele EI #määrittele NOTE_AS5 932 #määrittele NOTE_B5 988 #määrittele NOTE_C6 1047 #määrittele NOTE_CS6 1109 #määrittele NOTE_D6 1175 #määrittele NOTE_DS6 1245 #määrittele NOTE_E6 1319 #määrittele NOTE_F6 1397 #määrittele EI NOTE_AS6 1865 #määrittele NOTE_B6 1976 #määrittele NOTE_C7 2093 #määrittele NOTE_CS7 2217 #määrittele NOTE_D7 2349 #määrittele NOTE_DS7 2489 #määrittele EI #define NOTE_B7 3951 #define NOTE_C8 4186 #define NOTE_CS8 4435 #define NOTE_D8 4699 #define NOTE_DS8 4978 #define REST 0 /////////////////////// Waker -teema /////////////////////////// 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}; /////////////////////////// Myrskyn laulu ///////////////////// /////// 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) / tempo; int Wholenote2 = (60000 * 4) / tempo2; int wholenote3 = (60000 * 4) / tempo3; int jakaja = 0, noteDuration = 0; // Inicializacion del boton, pantalla LCD, y led RGB void setup () {Wire.begin (); lcd. alku (16, 2); lcd.clear (); lcd.taustavalo (); pinMode (summeri, OUTPUT); pinMode (4, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); pinMode (R, OUTPUT); pinMode (G, OUTPUT); pinMode (B, OUTPUT); } void loop () {if (contador == 0) {// Määrittele värivirhe tuulimylly 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) / jakaja; } else if (jakaja <0) {// pisteviivat esitetään negatiivisilla kestoilla !! noteDuration = (Wholenote) / abs (jakaja); noteDuration *= 1,5; // pidentää pisteviivojen kestoa puoliksi} sävy (summeri, WindWaker_melody1 [tämäHuomautus], noteDuration*0.9); // Odota näytteen kestoa, ennen kuin soitat seuraavan nuotin. subir = digitalRead (4); bajar = digitalRead (7); viive (huomautusKesto); noTone (summeri); jos (ali = = MATALA) {contador = 1; } jos (bajar == LOW) {contador = 2; } if (contador! = 0) {break; }}} else if (contador == 1) {// Määrittele väri con el que se verá song of storms analogWrite (R, 255); analogWrite (G, 0); analogWrite (B, 255); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("STORMS SONG"); for (int thisNote = 0; thisNote 0) {// tavallinen huomautus, jatka vain noteDuration = (wholenote2) / divider; } else if (jakaja <0) {noteDuration = (wholenote2) / abs (jakaja); noteDuration *= 1,5; // pidentää puoliaikaa pisteviivoille} ääni (summeri, pgm_read_word_near (SongOfStorms_melody2+thisNote), noteDuration * 0.9); subir = digitalRead (4); bajar = digitalRead (7); viive (huomautusKesto); noTone (summeri); jos (ali = = MATALA) {contador = 2; } jos (bajar == LOW) {contador = 0; } if (contador! = 1) {break; }}} else if (contador == 2) {// Määrittele väri värittämällä 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) / jakaja; } else if (jakaja <0) {noteDuration = (wholenote3) / abs (jakaja); noteDuration *= 1,5; // pidentää pisteviivojen kestoa puoliksi} sävy (summeri, Minuet_melody3 [tämäHuomautus], huomautusKesto * 0,9); subir = digitalRead (4); bajar = digitalRead (7); viive (huomautusKesto); noTone (summeri); jos (ali = = LOW) {contador = 0; } subir = digitalRead (4); bajar = digitalRead (7); jos (bajar == LOW) {contador = 1; } if (contador! = 2) {break; }}}}

Suositeltava: