单片机光敏电阻控制蜂鸣器_小白求助——如何用光敏电阻控制蜂鸣器开关?(晴天娃娃闹钟)...
本帖最后由 vincentlee 于 2014-7-24 19:51 编辑
经过参考两位官方大神的教程
1.http://www.geek-workshop.com/thread-1340-1-1.html
Arduino入门教程--第十一课--Arduino达文西之灯(光敏实验)
2.http://www.geek-workshop.com/thread-288-1-2.html
Arduino学习心得-简单制作各种歌曲
卤煮看到手边的见光会自动摇脑袋晴天娃娃后,便萌生一个想法,即:想用光敏电阻与蜂鸣器组合成一个有光就会发出优美音乐的小闹钟。
但目前却在技术上遇到了困难,向各位大神求职!
以下是电路图
1404076k777v62w6tpxz3v.png (154.91 KB, 下载次数: 28)
2014-7-24 19:41 上传
就照着Arduino达文西之灯里的电路图直接改的,把LED换成蜂鸣器。
以下是代码(捂脸)
(前面是参照教程2编写的,歌曲是五月天的《拥抱》的前奏)
PS:各位可以暂时忽略后面的备注,没有修改。
#define NOTE_C0 -1
#define NOTE_C1 262
#define NOTE_C2 294
#define NOTE_C3 330
#define NOTE_C4 350
#define NOTE_C5 393
#define NOTE_C6 441
#define NOTE_C7 495
#define NOTE_CL1 131
#define NOTE_CL2 147
#define NOTE_CL3 165
#define NOTE_CL4 175
#define NOTE_CL5 196
#define NOTE_CL6 221
#define NOTE_CL7 248
#define NOTE_CH1 525
#define NOTE_CH2 589
#define NOTE_CH3 661
#define NOTE_CH4 700
#define NOTE_CH5 786
#define NOTE_CH6 882
#define NOTE_CH7 990
//以上部分是定义是把每个音符和频率值对应起来,其实不用打这么多,但是都打上了,后面可以随意编写D调的各种歌,我这里用NOTE_D+数字表示音符,NOTE_DH+数字表示上面有点的那种音符,NOTE_DL+数字表示下面有点的那种音符。这样后面写起来比较好识别。
#define WHOLE 1
#define HALF 0.5
#define QUARTER 0.25
#define EIGHTH 0.25
#define SIXTEENTH 0.625
//这部分是用英文对应了拍子,这样后面也比较好看
int tune[] =
{
NOTE_C4,NOTE_C6,NOTE_CH3,NOTE_CH1,
NOTE_C3,NOTE_C5,NOTE_CH3,NOTE_C7,
NOTE_C2,NOTE_C6,NOTE_CH4,NOTE_CH1,
NOTE_C1,NOTE_C5,NOTE_CH3,NOTE_CH1,
NOTE_C4,NOTE_C6,NOTE_CH3,NOTE_CH1,
NOTE_C3,NOTE_C5,NOTE_CH3,NOTE_C7,
NOTE_C2,NOTE_C6,NOTE_CH4,NOTE_CH1,
NOTE_C1,NOTE_C5,NOTE_CH3,NOTE_CH1,
};//这部分就是整首曲子的音符部分,用了一个序列定义为tune,整数
float duration[]=
{
0.5,0.5,0.5,0.5,
0.5,0.5,0.5,0.5,
0.5,0.5,0.5,0.5,
0.5,0.5,0.5,0.5,
0.5,0.5,0.5,0.5,
0.5,0.5,0.5,0.5,
0.5,0.5,0.5,0.5,
0.5,0.5,0.5,0.5,
1+1+1+1
};//这部分是整首曲子的接拍部分,也定义个序列duration,浮点(数组的个数和前面音符的个数是一样的,一一对应么)
int length;//这里定义一个变量,后面用来表示共有多少个音符
int tonePin=13;//蜂鸣器的pin
int a =100; //此处需是环境基础亮度变量,请查看自己的亮度数值,
//填写到此处数值要略大于所测得的数据但小于灯光下的数据
void setup ()
{
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop()
{
intn = analogRead(A0); //读取模拟口A0数值
Serial.println(n);
if(n>= a ) //对光线强度进行判断,如果比我们的预设值大 就点亮LED否则就关闭
{
for(int x=0;x
{
tone(tonePin,tune[x]);//此函数依次播放tune序列里的数组,即每个音符
delay(1000*duration[x]);//每个音符持续的时间,即节拍duration,400是调整时间的越大,曲子速度越慢,越小曲子速度越快,自己掌握吧
noTone(tonePin);//停止当前音符,进入下一音符
}
delay(2000);//等待2秒后,循环重新开始
}
else
{
digitalWrite(13,LOW);
}
}
最后上传到arduino上代码已经没有问题
捕获.PNG (934 Bytes, 下载次数: 33)
2014-7-24 19:48 上传
但是传输之后,蜂鸣器没有按照我的想法发出声音,几次检查线路、接口什么的都没有问题,但还是不行。
我想是不是我的代码有问题?还是接法有误?请各位看见的大神能指点一下!
小弟感激不尽!!!
单片机光敏电阻控制蜂鸣器_小白求助——如何用光敏电阻控制蜂鸣器开关?(晴天娃娃闹钟)...相关推荐
- vpwm的控制变频_变频V/F和矢量控制你知道区别吗?据说这四种控制没有几人能说清...
一.三相异步感应交流电动机的工作原理 1.旋转磁场 在一个可旋转的马蹄型磁铁中间,放置一只可转动的笼型短路线圈.当转动马蹄形磁铁时,笼型转子就会跟着一起旋转.这是因为当磁铁转动时,其磁感线(磁通)切割 ...
- vpwm的控制变频_变频V/F和矢量控制你知道区别吗?
2.旋转磁场的转速 在以上的分析中,旋转磁场只有一对磁极,即p=1,当电流变化一个周期,旋转磁场正好在空间转过一周.对50Hz工频交流电而言,旋转磁场每秒在空间旋转50周,n1=60f1=60×50r ...
- vpwm的控制变频_变频器常用的10种控制方式
变频调速技术是现代电力传动技术的重要发展方向,而作为变频调速系统的 核心-变频器的性能也越来越成为调速性能优劣的决定因素. 除了变频器本身制造工艺的"先天"条件外,对变频器采用什么 ...
- vpwm的控制变频_变频器常用的几种控制方式
变频器常用的几种控制方式 变频器常用的几种控制方式 变频调速技术就是现代电力传动技术的重要发展方向 , 而作为变频调速系 统的核心-变频器的性能也越来越成为调速性能优劣的决定因素 , 除了变频器本 身 ...
- python控制程控电源_如何对程控电源进行编程控制
代码解读.以上代码示范了如何使用visa API连接并控制仪器读写. line 1~3 包含必须的头文件和库文件 line 8~11 定义变量,ViStatus用来检查仪器初始化及读写状态 ViSes ...
- arduino控制点阵屏与蜂鸣器_数字制造讲义08-Arduino声音应用2
数字制造讲义01-成为数字世界的建造者 数字制造讲义02-Arduino入门 数字制造讲义03-电路基础 数字制造讲义04-负责输入和输出的智能元件 数字制造讲义05-软硬件数据通信 数字制造讲义06 ...
- 蓝桥杯单片机设计与开发_标准模板
蓝桥杯单片机设计与开发_标准模板 一.前言 首先,这篇文章是笔者第一次在 CSDN 上写博文,较为生疏,读者若有任何意见,欢迎大家在评论区交流! 笔者目前为一名大二学生,参加了2021年蓝桥杯单片机设 ...
- 电子音调发生器c语言编程,单片机课程设计(论文)_电子音调发生器.doc
单片机课程设计(论文)_电子音调发生器 电子音调发生器 姓 名 XXX 所在学院 电子信息工程学院 专业班级 通信XXXX 学 号 XXXXX 指导教师 XXXXXX 日 期 2011 年 12月 1 ...
- STM32单片机智能跟随小车_红外遥控(程序+原理图+PCB+论文报告)
本设计: 基于STM32单片机智能跟随小车_红外遥控(程序+原理图+PCB+论文报告) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0021 资料下载 [ ...
最新文章
- cobaltstrike安装_CobaltStrike + Metasploit 组合安装
- linux下安装navicat并生成桌面图标
- python flask快速入门与进阶 百度云_Python Flask快速入门与进阶
- 关于django的模板
- python asyncio tcp server_asyncio异步IO——Streams详解
- 句柄泄漏与应用程序体验查找服务(AELookupSvc)
- 一口气发布11项新升级,免费送出1亿元算力:国产深度学习平台PaddlePaddle大更新...
- scrapy爬取快代理并保存mongo数据库
- Axure 9注册码,亲测可用
- 网络检测之(MTR WinMTR )网络链路追踪公路
- QEMU脏页速率计算原理
- 悲催:一个80后程序员的爱情故事【视频】-但愿我不是那个陈旭阳!55...
- 热温冷冰,数据存储需要全生命周期管理
- pubg:您的客户端将在10秒内关闭,因为一个关键的防作弊进程没有正确运行。通过验证您的游戏文件的完整性来解决此问题....
- golang:context介绍
- PL/SQL破解方法(不需要注册码)
- LeetCode: 627. 变更性别
- 深度学习第一课:极简入门
- 飞秋登录后好友面板出现乱码情况
- QQ空间十亿级视频播放技术优化揭密