Arduino编程,从新手到达人系列(四)

| 浏览次数:

用Arduino 可以完成的互动作品有很多,最常见也最常用的就是声光展示了,前面一直都是在用LED 小灯做实验,本个实验就让大家的电路发出声音,能够发出声音的最常见的元器件就是蜂鸣器和喇叭了,两者相比较蜂鸣器更简单和易用,所以我们本实验采用蜂鸣器。

以下是要准备的元件:

蜂鸣器*1

按键*1

面包板*1

面包板跳线*1 扎

下面为原理图1和图2的连接电路:

连接电路时要注意一点就是蜂鸣器有正负极之分,下面右侧实物图可看到蜂鸣器有红黑两种接线。连接好电路程序这方面就很简单了,与前面按键控制小灯的实验程序类似,因为蜂鸣器的控制接口也是数字接口输出高低电平就可以控制蜂鸣器的鸣响。

参考源程序:

int buzzer=8;//设置控制蜂鸣器的数字IO脚

void setup()

{

pinMode(buzzer,OUTPUT);//设置数字IO脚模式,OUTPUT为辒出

}

void loop()

{

unsigned char i,j;//定义变量

while(1)

{

for(i=0;i<80;i++)//辒出一个频率的声音

{

digitalWrite(buzzer,HIGH);//发声音

delay(1);//延时1ms

digitalWrite(buzzer,LOW);//不发声音

delay(1);//延时1ms

}

for(i=0;i<100;i++)//辒出另一个频率的声音

{

digitalWrite(buzzer,HIGH);//发声音

delay(2);//延时2ms

digitalWrite(buzzer,LOW);//不发声音

delay(2);//延时2ms

}

}

}

下载完程序,蜂鸣器实验就完成了。

本个实验我们来学习一下模拟I/O 接口的使用,Arduino 有模拟0—模拟5,共计6 个模拟接口,这6 个接口也可以算作接口功能复用,除模拟接口功能以外,这6 个接口可作为数字接口使用,编号为数字14—数字19。简单了解以后,下面就来开始我们的实验。电位计是大家比较熟悉的典型的模拟值输出元件,本实验就用它来完成。

所需元器件有:

电位计*1

面包板*1

面包板跳线*1 扎

本實验我们将电位计的阻值转化为模拟值读取出来,然后显示到屏幕上,这也是我们以后完成自己所需的实验功能所必须掌握的实例应用,我们先要按照以下电路图3连接实物图4,我们使用的是模拟0接口:

程序的编写也很简单,一个analogRead();语句就可以读出模拟口的值,Arduino 328是10 位的A/D 采集,所以读取的模拟值范围是0-1023,本个实验的程序里还有一个难点就是显示数值在屏幕这一问题,学习起来也是很简单的。首先我们要在voidsetup()里面设置波特率,显示数值属于Arduino 与PC 机通信,所以Arduino 的波特率应与PC 机软件设置的波特率相同才能显示出正确的数值,否则将会显示乱码或是不显示,在Arduino 软件的监视窗口右下角有一个可以设置波特率的按钮,这里设置的波特率需要跟程序里void setup()里面设置的波特率相同,程序设置波特率的语句为Serial.begin();括号中为波特率的值。其次就是显示数值的语句了,Serial.print();或者Serial.println();都可以,不同的是后者显示完数值后自动回车,前者不是,更多的关于语句的讲解前面有,这里就不再多说了。

下面是参考源程序:

int potpin=0;//定义模拟接口0

int ledpin=13;//定义数字接口13

int val=0;//将定义变量val,并赋初值0

void setup()

{

pinMode(ledpin,OUTPUT);//定义数字接口为输出接口

Serial.begin(9600);//设置波特率为9600

}

void loop()

{

digitalWrite(ledpin,HIGH);//点亮数字接口13 的LED

delay(50);//延时0.05 秒

digitalWrite(ledpin,LOW);//熄灭数字接口13 的LED

delay(50);//延时0.05 秒

val=analogRead(potpin);//读取模拟接口0 的值,并将其赋给val

Serial.println(val);//显示出val 的值

}

参考程序借用了Arduino 数字13 口自带的LED 小灯,每读一次值小灯就会闪烁一下。

实验现象:当旋转电位计旋钮的时候就可以看到屏幕上数值的变化了,读取模拟值这个方法将一直陪伴我们,模拟值读取是我们很常用的功能,因为很多传感器都是模拟值输出,我们读出模拟值后再进行相应的算法处理,就可以应用到我们需要实现的功能里了。

推荐访问: 达人 编程 新手 系列 Arduino

【Arduino编程,从新手到达人系列(四)】相关推荐

工作总结最新推荐

NEW
  • XX委高度重视党校的建设和发展,出台《创建全省一流州市党校(行政学院)实施方案》及系列人才培养政策,为党校人才队伍建设提供了有力的政策支撑。州委党校在省委党校的悉心指导下、州委的正确领导下,深入贯彻落

  • 为推动“不忘初心、牢记使命”主题教育常态化,树牢“清新简约、务本责实、实干兴洛”作风导向,打造忠诚干净担当、敢于善于斗争的执纪执法铁军,经县纪委常委会会议研究,决定在全县纪检监察系统开展“转变作风工作

  • 为进一步发展壮大农村集体经济,增强村级发展活力,按照中共XXX市委抓党建促乡村振兴工作领导小组《关于印发全面抓党建促乡村振兴四个工作计划的通知》要求,工作队与村“两委”结合本村实际,共同研究谋划xx村

  • 今年来,我区围绕“产城融合美丽XX”总体目标,按照“城在林中,水在城中,山水相连,林水相依”以及“城乡一体、景城一体、园城一体”的建设思路,强力推进城市基础设施建设、棚户区改造、房地产开发和城市风貌塑

  • 同志们:新冠疫情发生至今已有近三年时间。三年来,在广大干群的共同努力下,我们坚决打好疫情防控阻击战,集团公司范围内未发生一起确诊病例,疫情防控工作取得了阶段性胜利。当前国际疫情仍在扩散蔓延,国内疫情多

  • 我是毕业于XX大学的定向选调生,当初怀着奉献家乡、服务人民的初心回到XX,在市委的关心关爱下,获得了这个与青年为友的宝贵历练机会。一年感悟如下。一要对党忠诚,做政治坚定的擎旗手。习近平总书记指出,优秀

  • 同志们:今天召开这个会议,主要任务是深入学习贯彻习近平总书记重要指示批示精神,以及李克强总理批示要求,认真落实全国安全生产电视电话会议和全省、全市安全生产电视电话会议精神,研究我县安全生产和安全隐患大

  • 2022年市委政研室机关党的建设工作的总体要求是:坚持以XXX新时代中国特色社会主义思想为指导,全面贯彻党的XX届X中X会和省、市第十二次党代会精神,自觉运用党的百年奋斗历史经验,弘扬伟大建党精神,深

  • 同志们:今天,我们在这里召开市直机关基层党建示范点工作会议,一方面是对各示范点单位进行表彰授牌,另一方面是想通过这种会议交流的方式,给大家提供一个相互学习、取长补短的平台和机会。市直工委历来把创建基层

  • 新冠疫情暴发以来,学校党委坚决贯彻习近平总书记关于疫情防控工作的指示要求和党中央的决策部署,严格执行×××部、×××厅关于疫情防控的系列要求,认真落实驻地防疫部门的工作举措,继承发扬优良传统,以最高标