ARDUINO 升级版入门套件课程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1页共71页例程1、HelloWorld!首先先来练习一个不需要其他辅助元件,只需要一块Arduino和一根下载线的简单实验,让我们的Arduino说出“HelloWorld!”,这是一个让Arduino和PC机通信的实验,这也是一个入门试验,希望可以带领大家进入Arduino的世界。这个实验我们需要用到的实验硬件有:Arduino控制器USB下载线我们按照上面所讲的将Arduino的驱动安装好后,我们打开Arduino的软件,编写一段程序让Arduino接受到我们发的指令就显示“HelloWorld!”字符串,当然您也可以让Arduino不用接受任何指令就直接不断回显“HelloWorld!”,其实很简单,一条if()语句就可以让你的Arduino听从你的指令了,我们再借用一下Arduino自带的数字13口LED,让Arduino接受到指令时LED闪烁一下,再显示“HelloWorld!”下面给大家一段参考程序。intval;//定义变量valintledpin=13;//定义数字接口13voidsetup(){Serial.begin(9600);//设置波特率为9600,这里要跟软件设置相一致。当接入特定设备(如:蓝牙)时,我们也要跟其他设备的波特率达到一致。pinMode(ledpin,OUTPUT);//设置数字13口为输出接口,Arduino上我们用到的I/O口都要进行类似这样的定义。}voidloop(){val=Serial.read();//读取PC机发送给Arduino的指令或字符,并将该指令或字符赋给val第2页共71页if(val=='R')//判断接收到的指令或字符是否是“R”。{//如果接收到的是“R”字符digitalWrite(ledpin,HIGH);//点亮数字13口LED。delay(500);digitalWrite(ledpin,LOW);//熄灭数字13口LEDdelay(500);Serial.println(HelloWorld!);//显示“HelloWorld!”字符串}}第3页共71页例程2、LED闪烁实验LED小灯实验是比较基础的实验之一,上一个“HelloWorld!”实验里已经利用到了Arduino自带的LED,这次我们利用其他I/O口和外接直插LED灯来完成这个实验,我们需要的实验器材除了每个实验都必须的Arduino控制器和USB下载线以外的其它器件如下:红色M5直插LED*1220Ω直插电阻*1面包板*1面包板跳线*1扎下一步我们按照下面的小灯实验原理图链接实物图,这里我们使用数字10接口。使用发光二极管LED时,要连接限流电阻,这里为220Ω电阻,否则电流过大会烧毁发光二极管。小灯实验原理图第4页共71页实物图第5页共71页按照上图链接好电路后,就可以开始编写程序了,我们还是让LED小灯闪烁,点亮1秒熄灭1秒。这个程序很简单与Arduino自带的例程里的Blink相似只是将13数字接口换做10数字接口。参考程序如下:intledPin=10;//定义数字10接口voidsetup(){pinMode(ledPin,OUTPUT);//定义小灯接口为输出接口}voidloop(){digitalWrite(ledPin,HIGH);//点亮小灯delay(1000);//延时1秒digitalWrite(ledPin,LOW);//熄灭小灯delay(1000);//延时1秒}第6页共71页下载完程序就可以看到我们的10口外接小灯在闪烁了,这样我们的小灯闪烁实验就完成了。例程3、PWM调控灯光亮度实验PulseWidthModulation就是通常所说的PWM,译为脉冲宽度调制,简称脉宽调制。脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法,由于计算机不能输出模拟电压,只能输出0或5V的的数字电压值,我们就通过使用高分辨率计数器,利用方波的占空比被调制的方法来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么是5V(ON),要么是0V(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。输出的电压值是通过通和断的时间进行计算的。输出电压=(接通时间/脉冲时间)*最大电压值PWM被用在许多地方,调光灯具、电机调速、声音的制作等等。下面介绍一下PWM的三个基本参数:1、脉冲宽度变化幅度(最小值/最大值)2、脉冲周期(1秒内脉冲频率个数的倒数)3、电压高度(例如:0V-5V)Arduino控制器有6个PWM接口分别是数字接口3、5、6、9、10、11,前面我们已经做了按第7页共71页键控制小灯的实验,那是数字信号控制数字接口的实验,我们也做过电位计的实验,这次我们就来完成一个用电位计控制小灯的实验。需要的元器件有:电位计模块*1红色M5直插LED*1220Ω直插电阻面包板*1面包板跳线*1扎电位计即为模拟值输入我们接到模拟口,小灯我们接到PWM接口上,这样通过产生不同的PWM信号就可以让小灯有亮度不同的变化。我们先按照下面的原理图连接实物图。第8页共71页在编写程序的过程中,我们会用到模拟写入analogWrite(PWM接口,模拟值)函数,对于模拟写入analogWrite()函数,此函数用法也很简单,我们在本实验中读取电位计的模拟值信号并将其赋给PWM接口使小灯产生相应的亮度变化,再在屏幕上显示出读取的模拟值,大家可以理解为此程序是在模拟值读取的实验程序中多加了将模拟值赋给PWM接口这一部分,下面给大家提供一段参考源程序。参考源程序:intpotpin=0;//定义模拟接口0intledpin=11;//定义数字接口11(PWM输出)intval=0;//暂存来自传感器的变量数值voidsetup(){pinMode(ledpin,OUTPUT);//定义数字接口11为输出Serial.begin(9600);//设置波特率为9600//注意:模拟接口自动设置为输入}voidloop(){val=analogRead(potpin);//读取传感器的模拟值并赋值给valSerial.println(val);//显示val变量analogWrite(ledpin,val/4);//打开LED并设置亮度(PWM输__________出最大值255)delay(10);//延时0.01秒}第9页共71页下载完程序,我们旋转电位计的旋钮不但可以看到屏幕上数值的变化还也可以清楚的看到我们面包板上的LED小灯的亮度也在随之变化。例程4广告灯效果实验1)实验器件Led灯:6个220Ω的电阻:6个多彩面包板实验跳线:若干2)实验连线按照二级管的接线方法,将六个LED灯依次接到数字1~6引脚上。如图:广告灯实验的接线第10页共71页3)实验原理在生活中我们经常会看到一些由各种颜色的led灯组成的广告牌,广告牌上各个位置上癿led灯不断的变话,形成各种效果。本节实验就是利用led灯编程模拟广告灯效果。程式参考:intBASE=2;//第一顆LED接的I/O腳intNUM=6;//LED的總數voidsetup(){for(inti=BASE;iBASE+NUM;i++){pinMode(i,OUTPUT);//設定數字I/O腳為輸出}}voidloop(){for(inti=BASE;iBASE+NUM;i++){digitalWrite(i,LOW);//設定數字I/O腳輸出為低,即逐漸關燈delay(200);//延遲}for(inti=BASE;iBASE+NUM;i++){digitalWrite(i,HIGH);//設定數字I/O腳輸出為低,即逐漸開燈第11页共71页delay(200);//延遲}}例程5.交通灯设计实验上面我们已经完成了单个小灯的控制实验,接下来我们就来做一个稍微复杂一点的交通灯实验,其实聪明的朋友们可以看出来这个实验就是将上面单个小灯的实验扩展成3个颜色的小灯,就可以实现我们模拟交通灯的实验了。我们完成这个实验所需的元件除了Arduino控制器和下载线还需要的硬件如下:红色M5直插LED*1黄色M5直插LED*1绿色M5直插LED*1220Ω电阻*3面包板*1面包板跳线*1扎准备好上述元件我们就可以开工了,我们可以按照上面小灯闪烁的实验举一反三,下面是我们提供参考的原理图,我们使用的分别是数字10、7、4、接口.第12页共71页既然是交通灯模拟实验,红黄绿三色小灯闪烁时间就要模拟真实的交通灯,我们使用Arduino的delay()函数来控制延时时间,相对于C语言就要简单许多了。下面是一段参考程序:intredled=10;//定义数字10接口intyellowled=7;//定义数字7接口intgreenled=4;//定义数字4接口voidsetup(){pinMode(redled,OUTPUT);//定义红色小灯接口为输出接口pinMode(yellowled,OUTPUT);//定义黄色小灯接口为输出接口pinMode(greenled,OUTPUT);//定义绿色小灯接口为输出接口}voidloop(){digitalWrite(redled,HIGH);//点亮红色小灯delay(1000);//延时1秒digitalWrite(redled,LOW);//熄灭红色小灯digitalWrite(yellowled,HIGH);//点亮黄色小灯delay(200);//延时0.2秒digitalWrite(yellowled,LOW);//熄灭黄色小灯digitalWrite(greenled,HIGH);//点亮绿色小灯delay(1000);//延时1秒digitalWrite(greenled,LOW);//熄灭绿色小灯}第13页共71页下载程序完成后就可以看到我们自己设计控制的交通灯了。例程6按键控制LED实验I/O口的意思即为INPUT接口和OUTPUT接口,到目前为止我们设计的小灯实验都还只是应用到Arduino的I/O口的输出功能,这个实验我们来尝试一下使用Arduino的I/O口的输入功能即为读取外接设备的输出值,我们用一个按键和一个LED小灯完成一个输入输出结合使用的实验,让大家能简单了解I/O的作用。按键开关大家都应该比较了解,属于开关量(数字量)元件,按下时为闭合(导通)状态。完成本实验要用到的元件如下:按键开关*1红色M5直插LED*1220Ω电阻*110KΩ电阻*1面包板*1面包板跳线*1扎我们将按键接到数字7接口,红色小灯接到数字11接口(Arduino控制器0-13数字I/O接口都可以用来接按键和小灯,但是尽量不选择0和1接口,0和1接口为接口功能复用,除I/O口功能外也是串口通信接口,下载程序时属于与PC机通信故应保持0和1接口悬空,所以为避免插拔线的麻烦尽量不选用0和1接口),按下面的原理图连接好电路。第14页共71页第15页共71页下面开始编写程序,我们就让按键按下时小灯亮起,根据前面的学习相信这个程序很容易就能编写出来,相对于前面几个实验这个实验的程序中多加了一条条件判断语句,这里我们使用if语句,Arduino的程序便写语句是基于C语言的,所以C的条件判断语句自然也适用于Arduino,像while、swich等等。这里根据个人喜好我们习惯于使用简单易于理解的if语句给大家做演示例程。我们分析电路可知当按键按下时,数字7接口可读出为高电平,这时我们使数字11口输出高电平可使小灯亮起,程序中我们判断数字7口是否为低电平,要为低电平使数字11口输出也为低电平小灯不亮,原理同上。参考源程序:intledpin=11;//定义数字11接口intinpin=7;//定义数字7接口intval;//定义变量valvoidsetup(){pinMode(ledpin,OUT

1 / 71
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功