本帖最后由 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 上传

但是传输之后,蜂鸣器没有按照我的想法发出声音,几次检查线路、接口什么的都没有问题,但还是不行。

我想是不是我的代码有问题?还是接法有误?请各位看见的大神能指点一下!

小弟感激不尽!!!

单片机光敏电阻控制蜂鸣器_小白求助——如何用光敏电阻控制蜂鸣器开关?(晴天娃娃闹钟)...相关推荐

  1. vpwm的控制变频_变频V/F和矢量控制你知道区别吗?据说这四种控制没有几人能说清...

    一.三相异步感应交流电动机的工作原理 1.旋转磁场 在一个可旋转的马蹄型磁铁中间,放置一只可转动的笼型短路线圈.当转动马蹄形磁铁时,笼型转子就会跟着一起旋转.这是因为当磁铁转动时,其磁感线(磁通)切割 ...

  2. vpwm的控制变频_变频V/F和矢量控制你知道区别吗?

    2.旋转磁场的转速 在以上的分析中,旋转磁场只有一对磁极,即p=1,当电流变化一个周期,旋转磁场正好在空间转过一周.对50Hz工频交流电而言,旋转磁场每秒在空间旋转50周,n1=60f1=60×50r ...

  3. vpwm的控制变频_变频器常用的10种控制方式

    变频调速技术是现代电力传动技术的重要发展方向,而作为变频调速系统的 核心-变频器的性能也越来越成为调速性能优劣的决定因素. 除了变频器本身制造工艺的"先天"条件外,对变频器采用什么 ...

  4. vpwm的控制变频_变频器常用的几种控制方式

    变频器常用的几种控制方式 变频器常用的几种控制方式 变频调速技术就是现代电力传动技术的重要发展方向 , 而作为变频调速系 统的核心-变频器的性能也越来越成为调速性能优劣的决定因素 , 除了变频器本 身 ...

  5. python控制程控电源_如何对程控电源进行编程控制

    代码解读.以上代码示范了如何使用visa API连接并控制仪器读写. line 1~3 包含必须的头文件和库文件 line 8~11 定义变量,ViStatus用来检查仪器初始化及读写状态 ViSes ...

  6. arduino控制点阵屏与蜂鸣器_数字制造讲义08-Arduino声音应用2

    数字制造讲义01-成为数字世界的建造者 数字制造讲义02-Arduino入门 数字制造讲义03-电路基础 数字制造讲义04-负责输入和输出的智能元件 数字制造讲义05-软硬件数据通信 数字制造讲义06 ...

  7. 蓝桥杯单片机设计与开发_标准模板

    蓝桥杯单片机设计与开发_标准模板 一.前言 首先,这篇文章是笔者第一次在 CSDN 上写博文,较为生疏,读者若有任何意见,欢迎大家在评论区交流! 笔者目前为一名大二学生,参加了2021年蓝桥杯单片机设 ...

  8. 电子音调发生器c语言编程,单片机课程设计(论文)_电子音调发生器.doc

    单片机课程设计(论文)_电子音调发生器 电子音调发生器 姓 名 XXX 所在学院 电子信息工程学院 专业班级 通信XXXX 学 号 XXXXX 指导教师 XXXXXX 日 期 2011 年 12月 1 ...

  9. STM32单片机智能跟随小车_红外遥控(程序+原理图+PCB+论文报告)

    本设计: 基于STM32单片机智能跟随小车_红外遥控(程序+原理图+PCB+论文报告) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0021 资料下载 [ ...

最新文章

  1. cobaltstrike安装_CobaltStrike + Metasploit 组合安装
  2. linux下安装navicat并生成桌面图标
  3. python flask快速入门与进阶 百度云_Python Flask快速入门与进阶
  4. 关于django的模板
  5. python asyncio tcp server_asyncio异步IO——Streams详解
  6. 句柄泄漏与应用程序体验查找服务(AELookupSvc)
  7. 一口气发布11项新升级,免费送出1亿元算力:国产深度学习平台PaddlePaddle大更新...
  8. scrapy爬取快代理并保存mongo数据库
  9. Axure 9注册码,亲测可用
  10. 网络检测之(MTR WinMTR )网络链路追踪公路
  11. QEMU脏页速率计算原理
  12. 悲催:一个80后程序员的爱情故事【视频】-但愿我不是那个陈旭阳!55...
  13. 热温冷冰,数据存储需要全生命周期管理
  14. pubg:您的客户端将在10秒内关闭,因为一个关键的防作弊进程没有正确运行。通过验证您的游戏文件的完整性来解决此问题....
  15. golang:context介绍
  16. PL/SQL破解方法(不需要注册码)
  17. LeetCode: 627. 变更性别
  18. 深度学习第一课:极简入门
  19. 飞秋登录后好友面板出现乱码情况
  20. QQ空间十亿级视频播放技术优化揭密

热门文章

  1. R语言︱文件读入、读出一些方法罗列(批量xlsx文件、数据库、文本txt、文件夹)
  2. win10可以联网,但显示无法连接到Internet
  3. 不想Go 错误处理太臃肿,可以参考这个代码设计
  4. 对于load方法的理解
  5. while(1) 什么意思 while(i--)什么意思?
  6. 使用线程模拟倒计时和打印当前系统时间
  7. sqlserver常用查询语句
  8. NODE.JS项目实战
  9. phoronix-test-suit安装与测试
  10. 微信小程序:【应用评测】,最强小程序推荐、测评、收录入口