Isi kandungan:
- Langkah 1: ¿Como Funciona?
- Langkah 2: Bahan Circuito Armado Y Sus
- Langkah 3: Diagrama Esquemático Del Circuito Electrónico
- Langkah 4: Técnicas Para La Construcción De La Lámpara
- Langkah 5: Código De La Rocola
Video: Jukebox + Arduino: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Este proyecto constió en crear una Rocola Digital través de una programación de Arduino. Su función es muy simple y no es muy difícil de crear. La Rocola tiene mostas 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 esta reproduciendo, y que para cada canción se muestra un 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.
Langkah 1: ¿Como Funciona?
Langkah 2: Bahan Circuito Armado Y Sus
¡Es necesario que tengas estos materiales para hacer que tu Rocola funcione!
- Arduino UNO
- Pantalla LCD 16x2 + Interfaz I2C
- Protoboard + Protoboard Mini
- Mengetuai RGB
- Buzzer Pasif
- Jumpers Para Protoboard
- 2 Pulsadores Eléctricos
- Caja para el Circuito
Langkah 3: Diagrama Esquemático Del Circuito Electrónico
Langkah 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. Saya boleh berani tidak ada kaitannya dengan cara untuk poder hacer que tu Rocola funcione.
- Bahan nada ces consigas es necesario que se muestra en "Langkah 2"
- Es necesario que tengas un "Arduino UNO", al igual que la aplicación para poder hacer que la programación funcione.
- "Langkah 2".
- Luego de tener todo armado copia la programación el cual te mostraré en el ultimo paso.
- Oleh ú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.
Langkah 5: Código De La Rocola
// Creado por: Jorge Aragón
// Incluir 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 bajar; ///////////////////////////// MELODIAS //////////////////// /////////// # tentukan NOTE_B0 31 #tentukan NOTE_C1 33 # tentukan NOTE_CS1 35 # tentukan NOTE_D1 37 # tentukan NOTE_DS1 39 # tentukan NOTE_E1 41 # tentukan NOTE_F1 44 # tentukan NOTE_FS1 46 # tentukan NOTE_G1 52 #tentukan NOTE_A1 55 #tentukan NOTE_AS1 58 #tentukan NOTE_B1 62 #tentukan NOTE_C2 65 #tentukan NOTE_CS2 69 #tentukan NOTE_D2 73 # tentukan NOTE_DS2 78 # tentukan NOTE_E2 82 # tentukan NOTE_F2 87 #tentukan #NYA_NYA_NYA # 104_tentukan definisikan NOTE_A2 110 #tentukan NOTE_AS2 117 #tentukan NOTE_B2 123 #tentukan NOTE_C3 131 #tentukan NOTE_CS3 139 #tentukan NOTE_D3 147 #tentukan NOTE_DS3 156 #tentukan NOTE_E3 165 #tentukan NOTE_F3 175_tentukan_Berminat_f3 175_tentukan_fine 185Berikan_fine 220 #tentukan NOTE_AS3 233 # tentukan NOTE_B3 247 # tentukan NOTE_C4 262 #tentukan NOTE_CS4 277 #tentukan NOTE_D4 294 #tentukan NOTE_DS4 311 # tentukan NOTE_E4 330 # tentukan NOTE_F4 349 #tentukan_Berminat_4_4_4_4_tentukan_4_4_4_4_tentukan A4 440 # tentukan NOTE_AS4 466 # tentukan NOTE_B4 494 # tentukan NOTE_C5 523 # tentukan NOTE_CS5 554 # tentukan NOTE_D5 587 # tentukan NOTE_DS5 622 # tentukan NOTE_E5 659 # tentukan CATATAN_F5 698 #tentukan_Berminat_f5Berminkan_f8_betulkan #tentukan NOTE_AS5 932 #tentukan NOTE_B5 988 #tentukan NOTE_C6 1047 #tentukan NOTE_CS6 1109 #tentukan NOTE_D6 1175 #tentukan NOTE_DS6 1245 # tentukan NOTE_E6 1319 # tentukan NOTE_E6 1319 # tentukan NOTE_F6 1397 # tentukan_Berminat_fine 16Fine_fine_fine NOTE_AS6 1865 # tentukan NOTE_B6 1976 # tentukan NOTE_C7 2093 # tentukan NOTE_CS7 2217 #tentukan NOTE_D7 2349 # tentukan NOTE_DS7 2489 # tentukan NOTE_E7 2637 # tentukan NOTE_E7 2637 # tentukan NOTE_F7 2794 # tentukan NOTE_Fine7Betulkan_357_betulkankanlah #define NOTE_B7 3951 #define NOTE_C8 4186 #define NOTE_CS8 4435 #define NOTE_D8 4699 #define NOTE_DS8 4978 #define REST 0 ///////////////////////// Angin Tema Waker /////////////////////////// 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_C6, 8, 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, NOTE_F6, 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_G5, 4, NOTE_G5, 4, 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}; ////////////////////////// Lagu Badai ///////////////////// /////// 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_F5, 12, NOT_5, 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 di 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_D 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_C5, 8, NOTE_C5, 8, 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, NOT_B4, 8, 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, 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_FS 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_D5, 8, NOT_5 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_F_5, 8, CATATAN, 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, NOT_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_FS, NOTE_G4, -2,}; // Tempo de las pembatalan int note = sizeof (WindWaker_melody1) / sizeof (WindWaker_melody1 [0]) / 2; int note2 = sizeof (SongOfStorms_melody2) / sizeof (SongOfStorms_melody2 [0]) / 2; int note3 = 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 divider = 0, noteDuration = 0; // Inicializacion del boton, pantalla LCD, setup LED void RGB () {Wire.begin (); lcd.begin (16, 2); lcd.clear (); lcd.backlight (); pinMode (buzzer, OUTPUT); pinMode (4, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); pinMode (R, OUTPUT); pinMode (G, OUTPUT); pinMode (B, OUTPUT); } gelung void () {if (contador == 0) {// Definir el color con el que se verá pembuat angin analogWrite (R, 0); analogWrite (G, 255); analogWrite (B, 255); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("WIND MAKER"); untuk (int thisNote = 0; thisNote 0) {noteDuration = (wholenote) / pembahagi; } lain jika (pembahagi <0) {// nota bertitik diwakili dengan jangka masa negatif !! noteDuration = (wholenote) / abs (pembahagi); noteDuration * = 1.5; // meningkatkan tempoh pada separuh untuk nota bertitik} nada (buzzer, WindWaker_melody1 [thisNote], noteDuration * 0.9); // Tunggu tempoh kepastian sebelum memainkan nota seterusnya. subir = digitalRead (4); bajar = digitalRead (7); kelewatan (noteDuration); noTone (bel); jika (subir == RENDAH) {contador = 1; } jika (bajar == RENDAH) {contador = 2; } jika (contador! = 0) {rehat; }}} lain jika (contador == 1) {// Definir el color 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 ("LAGU KISAH"); untuk (int thisNote = 0; thisNote 0) {// nota biasa, teruskan noteDuration = (wholenote2) / pembahagi; } lain jika (pembahagi <0) {noteDuration = (wholenote2) / abs (pembahagi); noteDuration * = 1.5; // meningkatkan tempoh pada separuh untuk nota bertitik} nada (bel, pgm_read_word_near (SongOfStorms_melody2 + thisNote), noteDuration * 0.9); subir = digitalRead (4); bajar = digitalRead (7); kelewatan (noteDuration); noTone (bel); jika (subir == RENDAH) {contador = 2; } jika (bajar == RENDAH) {contador = 0; } jika (contador! = 1) {rehat; }}} lain jika (contador == 2) {// Definir el color con el que se verá Minuet analogWrite (R, 255); analogWrite (G, 255); analogWrite (B, 0); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("MINUET DALAM G"); lcd.setCursor (0, 1); lcd.print ("PETZOLD"); untuk (int thisNote = 0; thisNote 0) {noteDuration = (wholenote3) / pembahagi; } lain jika (pembahagi <0) {noteDuration = (wholenote3) / abs (pembahagi); noteDuration * = 1.5; // meningkatkan tempoh pada separuh untuk nota bertitik} nada (buzzer, Minuet_melody3 [thisNote], noteDuration * 0.9); subir = digitalRead (4); bajar = digitalRead (7); kelewatan (noteDuration); noTone (bel); jika (subir == RENDAH) {contador = 0; } subir = digitalRead (4); bajar = digitalRead (7); jika (bajar == RENDAH) {contador = 1; } jika (contador! = 2) {rehat; }}}}
Disyorkan:
Sistem Makluman Tempat Letak Balik Kereta Arduino - Langkah demi Langkah: 4 Langkah
Sistem Makluman Tempat Letak Balik Kereta Arduino | Langkah demi Langkah: Dalam projek ini, saya akan merancang Litar Sensor Tempat Letak Kereta Berbalik Arduino yang ringkas menggunakan Sensor Ultrasonik Arduino UNO dan HC-SR04. Sistem amaran Car Reverse berasaskan Arduino ini dapat digunakan untuk Navigasi Autonomi, Robot Ranging dan rangkaian lain
Arduino Jukebox / Rocola: 3 Langkah
Arduino Jukebox / Rocola: El siguiente proyecto es uno que nos membenarkan pembatalan pembiakan utilizando un soft buzzer en la plataforma Arduino. Se utilizaron varios komponenes untuk poder controlar que canción se estaba reproduciendo. Tiene como función alternatif entre tres c
Pengangkatan Akustik Dengan Arduino Uno Langkah demi Langkah (8-langkah): 8 Langkah
Acoustic Levitation With Arduino Uno Step-by Step (8-step): transduser suara ultrasonik L298N Dc power adaptor wanita dengan pin dc lelaki Arduino UNOBreadboardBagaimana ini berfungsi: Pertama, anda memuat naik kod ke Arduino Uno (ia adalah mikrokontroler yang dilengkapi dengan digital dan port analog untuk menukar kod (C ++)
Robot Jejak RC Menggunakan Arduino - Langkah demi Langkah: 3 Langkah
Robot Jejak RC Menggunakan Arduino - Langkah demi Langkah: Hai kawan, saya kembali dengan casis Robot keren lain dari BangGood. Harap anda berjaya melalui projek kami yang lalu - Spinel Crux V1 - Robot Terkawal Gerak isyarat, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms dan The Badland Braw
Jukebox di Arduino: 4 Langkah
Jukebox in Arduino: Projek ini adalah untuk kelas pada tahun pertama karier kami di University of the Valley, ini adalah jukebox yang dapat menunjukkan nama lagu dan dapat mencari lagu sebelumnya dan berikutnya. Lagu-lagu yang dapat anda tampilkan adalah terhad dan