İçindekiler:

Rocola Luis Hernández E Ignacio Casado: 7 Adım
Rocola Luis Hernández E Ignacio Casado: 7 Adım

Video: Rocola Luis Hernández E Ignacio Casado: 7 Adım

Video: Rocola Luis Hernández E Ignacio Casado: 7 Adım
Video: El Puma Dice Que No Le Importa Sus Hijas #shorts #viral 2024, Kasım
Anonim
Rocola Luis Hernández E Ignacio Casado
Rocola Luis Hernández E Ignacio Casado

Harry Potter ve Luis Fonsi'nin En İyi Yaşamı

Adım 1: Malzemeler

1 Protokol

1 Arduino UNO

kablolar jumper maço-hembra y maço-maço

1 pantalla LCD 16x2

2 Buzzer pasif

2 Buton

Arduino için 1 kablo USB

1 fuente de poder externa

2. Adım: Programlama

Programcılık
Programcılık
Programcılık
Programcılık

Primero, saman que, la biblioteca del LCD en el programa y configurarlo con los pines a los que esta conectado dahil. Luego, hay que instanciar las değişkenleri que determinaran la cancion, los pines de los 2 botones, değişken "anti-derrames" ve el pin para el buzzer.

#Dahil etmek

// librería para manejar pantallas LCD

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

int aday = 0;

const int botonI = 10; const int botonD = 9; int antiderrames=0; //esta değişken va bir sunucu para evitar que el LCD muestre 3 cosas al mismo tiempo int buzzer_pin = 6;

Después de eso, hay que nombrar a las funciones que van a:

  1. El tono a tocar'ı tanımlayın (según el pin del buzzer, la nota y la duración de la misma).
  2. Definir las notas (en letras), dándoles un valor único de Hz.
  3. Tanımlama la estructura de las notas (nota, yarı nota, vb.).

Y por ultimo, milisegundos'ta tanımlı el tempo

void setTone(int pin, int not, int süre) { ton(pin, not, süre); gecikme(süre); noTone(pin); } yapı 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; }Müzik; struct LengthStruct { kayan yarı = 0,5; yüzer bir = 1.0; float one_half = 1.5; iki yüzer = 2.0; float iki_half = 2.5; }Uzunluk;

int tempo = 400; //velocidad de la kompozisyon

Yapılacak işlerin tanımı, yapılması gerekenler, ön hazırlıklar.

Primero, hay que:

  • Seri izle
  • Definir los modos de los pines de los botones ve zil sesi
  • Encender el LCD y poner el imleç en la posición ilk

geçersiz kurulum() { Serial.begin(9600); pinMode(botonI, INPUT_PULLUP); pinMode(botonD, INPUT_PULLUP);

//Sección de pantalla LCD

lcd.başla(16, 2); //Enciende lcd lcd.clear(); lcd.setCursor(0, 0);//El proximo mensaje apracecera en la cordenada 0, 0 pinMode(buzzer_pin, OUTPUT);

}

Luego, gerekli olan las funciones de las funciones, que van a dar el orden, tono, tiempo de las 2 canciones que vamos a tener en este proyecto (Harry Potter'ın ana teması).

Usaremos 2 formas de tocar canciones en este proyecto:

  1. Usando la función setTone, que definimos antes (Harry Potter)
  2. Usando la función tone del buzzer del Arduino (Despacito)

Nota del autor: La función para despacito solo toca los primeros 12 segundos de la canción, orijinalmente el código dönemi 856 satır

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 * Uzunluk.half); setTone(buzzer_pin, Music. F, tempo * Uzunluk.one); setTone(buzzer_pin, Music. E, tempo * Uzunluk.iki); setTone(buzzer_pin, Music. B2, tempo * Length.one); setTone(buzzer_pin, Music. A2, tempo * Uzunluk.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 * Uzunluk.half); setTone(buzzer_pin, Music. F, tempo * Uzunluk.one); setTone(buzzer_pin, Music. Ds, tempo * Length.two); setTone(buzzer_pin, Music. F, tempo * Uzunluk.one); setTone(buzzer_pin, Music. B, tempo * Length.two_half);} void Despacito() { tone(buzzer_pin, 587, 709.720327982); gecikme(788.578142202); gecikme (10.3082110092); ton(buzzer_pin, 554, 709.720327982); gecikme(788.578142202); gecikme(5.15410550459); ton(buzzer_pin, 493, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 369, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 440, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 391, 412.843850917); gecikme (458.715389908); gecikme(5.15410550459); ton(buzzer_pin, 391, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 391, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 391, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 391, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 391, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 554, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 587, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 440, 412.843850917); gecikme (458.715389908); gecikme(5.15410550459); ton(buzzer_pin, 440, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 440, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 440, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 440, 41.7482545872); gecikme(46.3869495413); gecikme(36.0787385321); ton(buzzer_pin, 440, 37.109559633); gecikme(41.2328440367); gecikme(30.9246330275); ton(buzzer_pin, 440, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 587, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 587, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 587, 46.3869495413); gecikme(51.5410550459); gecikme(30.9246330275); ton(buzzer_pin, 587, 46.3869495413); gecikme(51.5410550459); gecikme(20.6164220183); ton(buzzer_pin, 587, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 659, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 659, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 554, 691.165548165); gecikme(767.961720183); gecikme (314.40043578); ton(buzzer_pin, 587, 552.004699541); gecikme(613.338555046); gecikme(5.15410550459); ton(buzzer_pin, 554, 552.004699541); gecikme(613.338555046); gecikme(5.15410550459); ton(buzzer_pin, 493, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 369, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 46.3869495413); gecikme(51.5410550459); gecikme(30.9246330275); ton(buzzer_pin, 493, 46.3869495413); gecikme(51.5410550459); gecikme(20.6164220183); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 440, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); }

Arduino'nun en önemli programlarından biri…el Loop()

Primero, llamado leibel (muhteşem isim, lo sé), para que lleve al inicio del loop() cuando termine cada canción'un tanımını yapar. Después, hay que darle valor a la değişken anti-derrames que instanciamos anteriormente, para evitar que el LCD muestre çoklu letras en el mismo lugar y deniz anlaşılmaz.

Luego, hay que poner que cada vez que se oprima un botón se cambie el valor que tanımla 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 veya 2"); }else{ if(digitalRead(botonI)==0){ gecikme(400); lcd.clear(); if (cantidad == 0){ cantidad = 1; } antiderrameler++; } if(digitalRead(botonD)==0){ gecikme(400); lcd.clear(); if (cantidad == 1){ cantidad = 0; } antiderrameler++; } if (cantidad == 0){ lcd.setCursor(0, 0); lcd.print("Harry Potter");//CAMBIA el ikono lcd.setCursor(0, 1); lcd.print("Tema"); jarri(); antiderramlar=0; lcd.clear(); leibel'e git; //volvemos al inicio

}

else if (cantidad == 1);{

lcd.setCursor(0, 0); lcd.print("Despacito");//CAMBIA el icono lcd.setCursor(0, 1); lcd.print("Luis Fonsi"); Despacito(); antiderrameler=0; lcd.clear(); leibel'e git; //volvemos al inicio } }}

Junto con la programación, también se probó la funcionalidad de la pantalla LCD 16x2, para después guardar el programa ve así unirlo ve los demás para el programa final.

Adım 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

Buscaron 2 canciones para programarlas ve así incluirlas para la rocola. Harry Potter'ın "Despacito" ve Luis Fonsi'nin en özel temaları.

Adım 4: Unir Programları

Üniversite Programları
Üniversite Programları

Después de tener la programacion de los botones, la pantalla ve las canciones; se unieron para así probar si eran uyumluluğu y si hayır, modificarlos en tinkercad.

Adım 5: Convertirlo En Físico

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

En iyi işlevler için karşılaştırmalar, en la página de tinkercad, se, donanımla ilgili tüm sonuçları kopyalayın. Günah ambargosu, uygunsuz bir şekilde, elverişsiz bir şekilde, elverişsiz bir şekilde kullanılmaz. En esto en esto en la sunum son solo, los botones ve el buzzer dahil.

Adım 6: Máquinas Utilizadas

Máquinas Utilizadas
Máquinas Utilizadas

Maker-Space'i en iyi şekilde kullanabilirsiniz.

Se utilizó la cortadora de vinilo para hacer sticker y decorar la carcasa

Arduino için utilizo el taladro de pedestal del Maker-space para hacer los agujeros para el buzzer ve el kablosu del Arduino

7. Adım: Öneriler

Tavsiyeler
Tavsiyeler

Algunas, aşağıdaki sonuçların alınmasını tavsiye eder:

- Tinkercad para ver cómo funciona en la página de página de probar previamente el programa. Así como doğrulayıcı los kabloados ve conexiones giriş protoboard ve el arduino.

- Al soldar, doğrulayıcı que ningún entre los estaños se toquen, así se podrá evitar que se queme algún componente.

- Tinkercad'in donanım ve donanımını çoğaltmak, yapılacak işler için hiçbir şey yapmamak ve doğrulamak için hiçbir şey yapmamak.

- En büyük boyutlar para la caja, así se podrá evitar quede demasiado grande o muy pequeña.

Önerilen: