Arduino生日蛋糕的制作方法

电子说

1.3w人已加入

描述

步骤1:材料

对于这个简单的项目,您需要:

-arduino MEGA

-扬声器或蜂鸣器

-麦克风模块

-UTFT屏幕的arduino防护板

我决定使用arduino MEGA该项目的主板有两个原因:它有很多内存,并且有很多引脚。

您不能在该项目中使用arduino UNO,因为当插入UTFT屏幕时所有的针脚都是隐藏的(麦克风和扬声器不再可用),并且内存不足(UTFT库很大)。

步骤2:接线

豌豆ker插入arduino的D40和GND引脚。

麦克风插入GND(“ G”),5V(“ +”)和A10(“ A0”)引脚。

UTFT屏幕屏蔽层就像普通的屏蔽层。

UTFT屏幕屏蔽层与arduino MEGA并不完全兼容:arduino板的USB插头太大。

为解决此问题,我将UTFT屏幕插入另一个arduino屏蔽罩(具有更长的插针),然后又将其都插入了arduino。

步骤3:校准麦克风

要校准麦克风,您需要一把螺丝起子和一台计算机。

首先,上传以下内容编码到您的arduino:

int val = 0;

void setup() {

Serial.begin(9600);

}

void loop() {

val = analogRead(10);

Serial.println(val);

delay(100);

}

然后在没有声音时转到串行监视器并通过用螺丝刀转动电位计来校准麦克风,该值必须约为30〜40。/p》

吹麦克风时,该值必须大于100。

请确保说话时(即使是很大声)的值小于100。

第4步:代码

这是项目的代码。

它在UTFT上显示带有蜡烛的生日蛋糕,并与扬声器播放“生日快乐” 。蛋糕是用矩形制成的。

该程序需要UTFT库。

#include

extern uint8_t BigFont[];

//change these values according your screen model

UTFT myGLCD(ITDB28,A5,A4,A3,A2);

int melody[]= {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); //blue background

myGLCD.setColor(200, 125, 50); //brown cake

myGLCD.fillRect(100, 90, 220, 160);

myGLCD.setColor(255,255, 255); //white icing

myGLCD.fillRect(100, 90, 220, 105);

myGLCD.setColor(255,50, 50); //red lines

myGLCD.fillRect(100, 120, 220, 123);

myGLCD.fillRect(100, 140, 220, 143);

myGLCD.setColor(255,255, 0); //yellow line

myGLCD.fillRect(100, 130, 220, 133);

myGLCD.setColor(255,170,255); //pink candles

myGLCD.fillRect(128, 70, 132, 90);

myGLCD.fillRect(158, 70, 162, 90);

myGLCD.fillRect(188, 70, 192, 90);

myGLCD.setColor(255,255,0); //fire of the candles

myGLCD.fillCircle(130, 62, 5);

myGLCD.fillCircle(160, 62, 5);

myGLCD.fillCircle(190, 62, 5);

myGLCD.setColor(0,255,0); //happy birthday message

myGLCD.print(“HAPPY BIRTHDAY !”,CENTER, 200);

for (int thisNote = 0; thisNote 《 26; thisNote++) { //plays the melody

int noteDuration = 1000/noteDurations[thisNote];

tone(40, melody[thisNote],noteDuration);

int pauseBetweenNotes = noteDuration * 1.60;

delay(pauseBetweenNotes);

noTone(40);

}

}

void loop() {

val = analogRead(10); //when you blow on the microphone

if (val 》 100) {

myGLCD.setColor(20, 200, 150); //turns off the candles

myGLCD.fillCircle(130, 62, 5);

myGLCD.fillCircle(160, 62, 5);

myGLCD.fillCircle(190, 62, 5);

myGLCD.setColor(255,255,255); //and displays “congratulations” message

myGLCD.print(“CONGRATULATIONS !!!”,CENTER, 10);

delay(10000);

myGLCD.clrScr(); //clear screen after 10s

}

}

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分