Índice:

Bolo de aniversário do Arduino: 4 etapas
Bolo de aniversário do Arduino: 4 etapas

Vídeo: Bolo de aniversário do Arduino: 4 etapas

Vídeo: Bolo de aniversário do Arduino: 4 etapas
Vídeo: Expectativa x realidade. E você lindona, Opção 1 ou 2? 2024, Julho
Anonim

Neste instrutível, farei um projeto arduino muito simples e básico: um bolo de aniversário!

Um bolo de aniversário é exibido no protetor de tela UTFT do arduino e um alto-falante reproduz a música "Feliz aniversário".

Quando você sopra no microfone, as velas se apagam.

Etapa 1: Materiais

Materiais
Materiais
Materiais
Materiais
Materiais
Materiais
Materiais
Materiais

Para este projeto simples, você precisará:

- um arduino MEGA

- um alto-falante ou uma campainha

- um módulo de microfone

- um escudo arduino de tela UTFT

Decidi usar uma placa arduino MEGA para este projeto por dois motivos: ela tem muita memória e muitos pinos.

Você não pode usar um arduino UNO para este projeto, porque quando a tela UTFT é conectada a ele todos os pinos ficam ocultos (não estão mais disponíveis para o microfone e o alto-falante), e ele não tem memória suficiente (a biblioteca UTFT é muito grande).

Etapa 2: Fiação

Fiação
Fiação
Fiação
Fiação
Fiação
Fiação
Fiação
Fiação

O alto-falante se conecta aos pinos D40 e GND do Arduino.

O microfone é conectado aos pinos GND ("G"), 5V ("+") e A10 ("A0").

A tela UTFT se conecta como um escudo normal.

O protetor de tela UTFT não é totalmente compatível com o arduino MEGA: o plugue USB da placa do arduino é muito grande

Para corrigir esse problema, conectei a tela UTFT em um outro escudo do arduino (com pinos mais longos) e, em seguida, conectei os dois no arduino.

Etapa 3: calibrar o microfone

Calibrar o microfone
Calibrar o microfone
Calibrar o microfone
Calibrar o microfone

Para calibrar o microfone, você precisará de uma chave de fenda e do computador.

Primeiro, faça upload do seguinte código para o seu arduino:

int val = 0;

void setup () {Serial.begin (9600); } loop vazio () {val = analogRead (10); Serial.println (val); atraso (100); }

Em seguida, vá ao monitor serial e calibre o microfone girando o potenciômetro com a chave de fenda quando não houver som, o valor deve ser aproximadamente 30 ~ 40.

Quando você sopra no microfone, o valor deve ser superior a 100.

Certifique-se de que o valor seja menor que 100 ao falar (mesmo alto).

Etapa 4: O Código

Aqui está o código do projeto.

Ele exibe um bolo de aniversário com velas no UTFT e reproduz "Parabéns a você" com o alto-falante. O bolo é feito com retângulos.

Este programa requer a biblioteca UTFT.

#incluir

extern uint8_t BigFont ; // altere esses valores de acordo com seu modelo de tela UTFT myGLCD (ITDB28, A5, A4, A3, A2); melodia int = {196, 196, 220, 196, 262, 247, 196, 196, 220, 196, 294, 262, 196, 196, 392, 330, 262, 247, 220, 349, 349, 330, 262, 294, 262}; int noteDurations = {8, 8, 4, 4, 4, 2, 8, 8, 4, 4, 4, 2, 8, 8, 4, 4, 4, 4, 3, 8, 8, 4, 4, 4, 2}; int val = 0; void setup () {myGLCD. InitLCD (); myGLCD.setFont (BigFont); myGLCD.fillScr (20, 200, 150); // fundo azul myGLCD.setColor (200, 125, 50); // bolo marrom myGLCD.fillRect (100, 90, 220, 160); myGLCD.setColor (255, 255, 255); // glacê branco myGLCD.fillRect (100, 90, 220, 105); myGLCD.setColor (255, 50, 50); // linhas vermelhas myGLCD.fillRect (100, 120, 220, 123); myGLCD.fillRect (100, 140, 220, 143); myGLCD.setColor (255, 255, 0); // linha amarela myGLCD.fillRect (100, 130, 220, 133); myGLCD.setColor (255, 170, 255); // velas rosa myGLCD.fillRect (128, 70, 132, 90); myGLCD.fillRect (158, 70, 162, 90); myGLCD.fillRect (188, 70, 192, 90); myGLCD.setColor (255, 255, 0); // fogo das velas myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (0, 255, 0); // mensagem de feliz aniversário myGLCD.print ("FELIZ ANIVERSÁRIO!", CENTRO, 200); para (int thisNote = 0; thisNote 100) {myGLCD.setColor (20, 200, 150); // desliga as velas myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (255, 255, 255); // e exibe a mensagem "parabéns" myGLCD.print ("PARABÉNS !!!", CENTRO, 10); atraso (10000); myGLCD.clrScr (); // limpar a tela após 10s}}

Recomendado: