Cuprins:

Rocola Luis Hernández E Ignacio Casado: 7 pași
Rocola Luis Hernández E Ignacio Casado: 7 pași

Video: Rocola Luis Hernández E Ignacio Casado: 7 pași

Video: Rocola Luis Hernández E Ignacio Casado: 7 pași
Video: Por Un Error Del Pasado🙏😱😳| Caso Cerrado | Telemundo 2024, Iulie
Anonim
Rocola Luis Hernández E Ignacio Casado
Rocola Luis Hernández E Ignacio Casado

Esta es una rocola que cuenta con dos canciones, el tema de Harry Potter y la canción de Despacito de Luis Fonsi

Pasul 1: Materiale

1 Protoboard

1 Arduino UNO

cabluri jumper macho-hembra y macho-macho

1 ecran LCD 16x2

2 Buzzer pasivo

2 Apăsați butonul

1 cablu USB pentru Arduino

1 fuente de poder externa

Pasul 2: Programare

Programare
Programare
Programare
Programare

Primero, hay que include la biblioteca del LCD en el programa y configurarlo con los pines a los que este conectado. Luego, hay que instanciar las variables that determinean the cancion, the pines of the 2 botones, una variable "anti-derrames" și pinul pentru buzzer.

#include

// librería para manejar pantallas LCD

LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // Indica que pines se estan using

int cantitate = 0;

const int botonI = 10; const int botonD = 9; int antiderrames = 0; // esta variable va a servir pentru a evita că el LCD muestre 3 lucruri în același timp în buzzer_pin = 6;

După aceea, sunt numite funcțiile pe care le-am a:

  1. Definir el tono a tocar (după el pin del buzzer, nota și durarea de la aceeași).
  2. Definir las notas (en letras), dándoles un valor único de Hz.
  3. Definiți structura notelor (nota, semi-nota, etc).

Y por ultimo, definir el tempo en milisegundos

void setTone (pin int, int nota, int durata) {ton (pin, nota, durata); întârziere (durata); noTone (pin); } struct MusicStruct {int A = 550; int As = 582; int B = 617; int C = 654; int Cs = 693; int D = 734; int Ds = 777; int E = 824; int F = 873; int Fs = 925; int G = 980; int Gs = 1003; int A2 = 1100; int A2s = 1165; int B2 = 1234; int C3 = 1308; int C3s = 1385; int D3 = 1555; }Muzică; struct LengthStruct {float half = 0,5; float one = 1,0; float one_half = 1,5; float two = 2.0; float two_half = 2,5; }Lungime;

int tempo = 400; // velocidad de la composicion

După ce a definit totul, putem începe la o parte interesantă a programului.

Primero, hay que:

  • Monitorizează seria
  • Definir los modos de los pines de los botones y el buzzer
  • Encender el LCD y poner el cursor in the initial position

void setup () {Serial.begin (9600); pinMode (botonI, INPUT_PULLUP); pinMode (botonD, INPUT_PULLUP);

// Secțiune de ecran LCD

lcd.inceput (16, 2); // Enciende lcd lcd.clear (); lcd.setCursor (0, 0); // El proximo mensaje apracecera in the cordenada 0, 0 pinMode (buzzer_pin, OUTPUT);

}

Luego, necesită instanțierea funcțiilor funcțiilor, care vor da dar ordinea, tonul, timpul de 2 canții pe care le avem în acest proiect (despăcut și tema principală a lui Harry Potter).

Folosiți 2 forme de a atinge canțiuni în acest proiect:

  1. Folosind funcția setTone, ce definim înainte (Harry Potter)
  2. Folosind funcția tonului buzzer-ului Arduino (Despacito)

Nota del autor: La funcția pentru despăcut solo toca los primeros 12 segundos de la canción, originalmente el código era de 856 lineas

void jarri () {setTone (buzzer_pin, Music. B, tempo * Length.one); setTone (buzzer_pin, Music. E, tempo * Length.one_half); setTone (buzzer_pin, Music. G, tempo * Length.half); setTone (buzzer_pin, Music. F, tempo * Length.one); setTone (buzzer_pin, Music. E, tempo * Length.two); setTone (buzzer_pin, Music. B2, tempo * Length.one); setTone (buzzer_pin, Music. A2, tempo * Length.two_half); setTone (buzzer_pin, Music. Fs, tempo * Length.two_half); setTone (buzzer_pin, Music. E, tempo * Length.one_half); setTone (buzzer_pin, Music. G, tempo * Length.half); setTone (buzzer_pin, Music. F, tempo * Length.one); setTone (buzzer_pin, Music. Ds, tempo * Length.two); setTone (buzzer_pin, Music. F, tempo * Length.one); setTone (buzzer_pin, Music. B, tempo * Length.two_half);} void Despacito () {tone (buzzer_pin, 587, 709.720327982); întârziere (788.578142202); întârziere (10.3082110092); ton (buzzer_pin, 554, 709.720327982); întârziere (788.578142202); întârziere (5.15410550459); ton (buzzer_pin, 493, 273.683002294); întârziere (304.092224771); întârziere (5.15410550459); ton (buzzer_pin, 369, 273.683002294); întârziere (304.092224771); întârziere (5.15410550459); ton (buzzer_pin, 369, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 369, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 369, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 369, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 493, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 493, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 493, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 493, 273.683002294); întârziere (304.092224771); întârziere (5.15410550459); ton (buzzer_pin, 440, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 493, 273.683002294); întârziere (304.092224771); întârziere (5.15410550459); ton (buzzer_pin, 391, 412.843850917); întârziere (458.715389908); întârziere (5.15410550459); ton (buzzer_pin, 391, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 391, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 391, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 391, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 391, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 493, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 493, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 493, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 493, 273.683002294); întârziere (304.092224771); întârziere (5.15410550459); ton (buzzer_pin, 554, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 587, 273.683002294); întârziere (304.092224771); întârziere (5.15410550459); ton (buzzer_pin, 440, 412.843850917); întârziere (458.715389908); întârziere (5.15410550459); ton (buzzer_pin, 440, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 440, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 440, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 440, 41.7482545872); întârziere (46.3869495413); întârziere (36.0787385321); ton (buzzer_pin, 440, 37.109559633); întârziere (41.2328440367); întârziere (30.9246330275); ton (buzzer_pin, 440, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 587, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 587, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 587, 46.3869495413); întârziere (51.5410550459); întârziere (30.9246330275); ton (buzzer_pin, 587, 46.3869495413); întârziere (51.5410550459); întârziere (20.6164220183); ton (buzzer_pin, 587, 273.683002294); întârziere (304.092224771); întârziere (5.15410550459); ton (buzzer_pin, 659, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 659, 273.683002294); întârziere (304.092224771); întârziere (5.15410550459); ton (buzzer_pin, 554, 691.165548165); întârziere (767.961720183); întârziere (314.40043578); ton (buzzer_pin, 587, 552.004699541); întârziere (613.338555046); întârziere (5.15410550459); ton (buzzer_pin, 554, 552.004699541); întârziere (613.338555046); întârziere (5.15410550459); ton (buzzer_pin, 493, 273.683002294); întârziere (304.092224771); întârziere (5.15410550459); ton (buzzer_pin, 369, 273.683002294); întârziere (304.092224771); întârziere (5.15410550459); ton (buzzer_pin, 369, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 369, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 369, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 369, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 369, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 493, 46.3869495413); întârziere (51.5410550459); întârziere (30.9246330275); ton (buzzer_pin, 493, 46.3869495413); întârziere (51.5410550459); întârziere (20.6164220183); ton (buzzer_pin, 493, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 493, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 493, 273.683002294); întârziere (304.092224771); întârziere (5.15410550459); ton (buzzer_pin, 440, 134.52215367); întârziere (149.469059633); întârziere (5.15410550459); ton (buzzer_pin, 493, 273.683002294); întârziere (304.092224771); întârziere (5.15410550459); }

O dată avem totul pentru asta, putem să trecem la o parte mai importantă a programului Arduino … el Loop ()

Primero, definimos un label llamado leibel (spectaculos nume, lo sé), pentru care să ducem la începutul buclei () când termină fiecare canție. After, hay que darle valor a la variable anti-derrames that instanciamos anteriormente, pentru a evita ca LCD-ul să meargă mai multe litere în același loc și sea incomprensible.

Luego, hay que poner que cada vez que se oprima un botón se cambie el valor que define la canción que se toca.

void loop () {leibel: if ((antiderrames == 0) && (digitalRead (botonI) == 1) && (digitalRead (botonD) == 1)) {lcd.setCursor (0, 0); lcd.print ("Elegir cancion"); // CAMBIA el icono lcd.setCursor (0, 1); lcd.print ("1 o 2"); } else {if (digitalRead (botonI) == 0) {delay (400); lcd.clear (); if (cantitate == 0) {cantitate = 1; } antiderrame ++; } if (digitalRead (botonD) == 0) {delay (400); lcd.clear (); if (cantitate == 1) {cantitate = 0; } antiderrame ++; } if (cantitate == 0) {lcd.setCursor (0, 0); lcd.print („Harry Potter”); // CAMBIA el icono lcd.setCursor (0, 1); lcd.print („Tema”); jarri (); antiderrame = 0; lcd.clear (); go leibel; // volvemos al inicio

}

else if (cantitate == 1); {

lcd.setCursor (0, 0); lcd.print ("Despacito"); // CAMBIA el icono lcd.setCursor (0, 1); lcd.print („Luis Fonsi”); Despacito (); antiderrame = 0; lcd.clear (); go leibel; // volvemos al inicio}}}

Junto con la programación, de asemenea, se probează funcționalitatea ecranului LCD 16x2, pentru după ce se va păstra programul și așa se va întoarce la demasurile pentru programul final.

Pasul 3: 4. Escoger Canciones Para Programarla

4. Escoger Canciones Para Programarla
4. Escoger Canciones Para Programarla
4. Escoger Canciones Para Programarla
4. Escoger Canciones Para Programarla

Se caută 2 canțiuni pentru programarea și astfel includerea pentru rocă. În acest caz, acestea ar fi canțiunile de „Despacito” de Luis Fonsi și tema temei filmului Harry Potter.

Pasul 4: Unir Programas

Unir Programas
Unir Programas

După ce ați avut programarea botoanelor, a ecranului și a canțiilor; se unieron para así probar si eran compatibles y si no, modificarlos en tinkercad.

Pasul 5: Convertirlo En Físico

Convertirlo En Físico
Convertirlo En Físico
Convertirlo En Físico
Convertirlo En Físico

După ce a comprobat că funcționează în pagina de tinkercad, se copie hardware-ul pentru a vedea rezultatele. Sin embargo, al tratar de armarlo ocurrió un inconveniente, el cuál nos imposibilitate use the screen ya that this se quemó by un mal contact al soldarlo. Es por esto que en la presentación final solo include los botones y el buzzer.

Pasul 6: Máquinas Utilizadas

Máquinas Utilizadas
Máquinas Utilizadas

Se utilizează cortatorul láser din Maker-Space pentru a crea carcasa unde iriană toate circuitele.

Se utilizează cortatorul de vinil pentru a face sticker și decorarea carcasei

Se folosește taladro de piedestal din Maker-space pentru a face zgomotul pentru buzzer și cablul Arduino

Pasul 7: Recomandări

Recomendări
Recomendări

Unele recomandări dacă se vor repensa sunt cele mai bune rezultate:

- Probar anterior programul în pagina de Tinkercad pentru cum funcționează. Asa cum pot verifica cablurile si conexiunile intre protoboard si arduino.

- Al soldar, verifică că niciun contact între acești ani se toquen, așa se poate evita că se poate vreun element.

- Al replicar el hardware de la página Tinkercad, conectar tot de forma cuidadosa pentru no romper o piesă și verificare că nu se salgan de sus site-uri.

- Meditează dimensiunile pentru cutie, așa se poate evita ca să fie prea mare sau foarte mică.

Recomandat: