ARDUINO 升级版入门套件课程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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