ARDUINO教程第三讲.ppt

上传人:wj 文档编号:178394 上传时间:2022-10-05 格式:PPT 页数:98 大小:10.31MB
下载 相关 举报
ARDUINO教程第三讲.ppt_第1页
第1页 / 共98页
ARDUINO教程第三讲.ppt_第2页
第2页 / 共98页
ARDUINO教程第三讲.ppt_第3页
第3页 / 共98页
ARDUINO教程第三讲.ppt_第4页
第4页 / 共98页
ARDUINO教程第三讲.ppt_第5页
第5页 / 共98页
点击查看更多>>
下载资源
资源描述

ARDUINO教程第三讲.ppt

《ARDUINO教程第三讲.ppt》由会员分享,可在线阅读,更多相关《ARDUINO教程第三讲.ppt(98页珍藏版)》请在冰豆网上搜索。

ARDUINO教程第三讲.ppt

Arduino基础教程传感器认识与应用,广州大学实验中心黄文恺,1、按钮开关,信号线S,5V,GND,开关例程,按键开关模块和数字13接口自带LED搭建简单电路,制作按键提示灯利用数字13接口自带的LED,将按键开关传感器接入数字3接口,当按键开关传感器感测到有按键信号时,LED亮,反之则灭.,intLed=13;/定义LED接口intbuttonpin=3;/定义按键开关传感器接口intval;/定义数字变量valvoidsetup()pinMode(Led,OUTPUT);/定义LED为输出接口pinMode(buttonpin,INPUT);/定义按键开关传感器为输入接口voidloop()val=digitalRead(buttonpin);/将数字接口3的值读取赋给valif(val=HIGH)/当按键开关传感器检测有信号时,LED闪烁digitalWrite(Led,HIGH)elsedigitalWrite(Led,LOW),2、无源蜂鸣器,蜂鸣器的作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

这里的“源”不是指电源。

而是指震荡源。

也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。

而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。

必须用2K5K的方波去驱动它。

实验原理,使用数字I/O口,通过高低电平的变换,来实现方波。

第一个例子是持续1毫秒的低电平,和1毫秒的高电平,实现一个500HZ的方波信号,持续80个方波,然后切换为持续2毫秒的低电平,和2毫秒的高电平,实现一个250HZ的方波信号.持续100个方波。

两种声音交替发出。

intbuzzer=8;/设置控制蜂鸣器的数字IO脚voidsetup()pinMode(buzzer,OUTPUT);/设置数字IO脚模式,OUTPUT为输出voidloop()unsignedchari,j;/定义变量for(i=0;i80;i+)/辒出一个频率的声音digitalWrite(buzzer,HIGH);/发声音delay

(1);/延时1msdigitalWrite(buzzer,LOW);/不发声音delay

(1);/延时msfor(i=0;i100;i+)/输出出另一个频率的声音digitalWrite(buzzer,HIGH);/发声音delay

(2);/延时2msdigitalWrite(buzzer,LOW);/不发声音delay

(2);/延时2ms,intbuzzer=8;/设置控制蜂鸣器的数字IO脚voidsetup()pinMode(buzzer,OUTPUT);/设置数字IO脚模式,OUTPUT为辒出voidloop()unsignedchari,j;/定义变量for(i=0;i100;i+)/输出一个频率的声音digitalWrite(buzzer,HIGH);/发声音delayMicroseconds(40);/延时40微秒digitalWrite(buzzer,LOW);/不发声音delayMicroseconds(40);/延时40微秒for(i=0;i250;i+)/辒出另一个频率癿声音digitalWrite(buzzer,HIGH);/发声音delayMicroseconds(120);/延时120微秒digitalWrite(buzzer,LOW);/不发声音delayMicroseconds(120);/延时120微秒,3、有源蜂鸣器,有源蜂鸣器内部带震荡源,所以只要一通电就会叫,只能发出固定频率的声音。

调错顺序,这个才是信号,接地,intspeakerPin=8;/控制喇叭的引脚intvalue=10;/控制喇叭响的时间,可自行更改voidsetup()pinMode(speakerPin,OUTPUT);voidloop()digitalWrite(speakerPin,HIGH);delay(value);/调节喇叭响的时间;digitalWrite(speakerPin,LOW);delay(value);/调节喇叭不响的时间;,4、激光传感器,激光传感器通过S端来开启,可以发射持续的激光,也可以发射脉冲波。

可用于玩具激光枪,或者激光测距等各种用途。

实例程序,voidsetup()pinMode(13,OUTPUT);/定义13脚为数字输出接口voidloop()digitalWrite(13,HIGH);/打开激光头delay(1000);/延时一秒digitalWrite(13,LOW);/关闭激光头delay(1000);/延时一秒,5、光敏传感器,光敏传感器实质是一个光敏电阻,根据光的照射强度会改变其自身的阻值。

编程原理,将光敏电阻的S端接在一个模拟输入口,光强的变化会改变阻值,从而改变S端的输出电压。

将S端的电压读出,使用串口输出到计算机显示结果。

因为AVR是10位的采样精度,输出值从01023.当光照强烈的时候,值减小,光照减弱的时候,值增加。

完全遮挡光线,值最大。

intsensorPin=2;intvalue=0;voidsetup()Serial.begin(9600);/串口波特率为9600voidloop()value=analogRead(sensorPin);/读取模拟2端口Serial.println(value,DEC);/十进制数显示结果并且换行delay(50);/延时50毫秒,6、倾斜开关,用于检测较小的倾斜角度,编程原理,倾斜开关模块和数字13接口自带LED搭建简单电路,制作倾斜提示灯。

利用数字13接口自带的LED,将倾斜开关传感器接入数字3接口,当倾斜开关传感器感测到有倾斜信号时,LED亮,反之则灭。

intLed=13;/定义LED接口intbuttonpin=3;/定义倾斜开关传感器接口intval;/定义数字变量valvoidsetup()pinMode(Led,OUTPUT);/定义LED为输出接口pinMode(buttonpin,INPUT);/定义倾斜开关传感器为输出接口voidloop()val=digitalRead(buttonpin);/将数字接口3的值读取赋给valif(val=HIGH)/当倾斜开关传感器检测有信号时,LED亮digitalWrite(Led,HIGH);elsedigitalWrite(Led,LOW);,7、水银开关传感器,用于检测稍微大的角度,可以用于检测跌倒等。

程序和上个例程通用,intLed=13;/定义LED接口intbuttonpin=3;/定义倾斜开关传感器接口intval;/定义数字变量valvoidsetup()pinMode(Led,OUTPUT);/定义LED为输出接口pinMode(buttonpin,INPUT);/定义倾斜开关传感器为输出接口voidloop()val=digitalRead(buttonpin);/将数字接口3的值读取赋给valif(val=HIGH)/当倾斜开关传感器检测有信号时,LED闪烁digitalWrite(Led,HIGH);elsedigitalWrite(Led,LOW);,8、魔术光杯(一对),水银开关多加了一个独立的LED,两个可以组成魔术光杯,LED控制,信号,原理,将魔术光杯其中一个模块S脚接数字脚7,LED控制接数字脚5(PWM功能),另一个模块S脚接数字脚4,LED控制接数字脚6.现象:

当一个水银开关倾倒时,自己的灯会越来越暗,另一个灯会越来越亮,像心电感应一样。

intLedPinA=5;intLedPinB=6;intButtonPinA=7;intButtonPinB=4;intbuttonStateA=0;intbuttonStateB=0;intbrightness=0;voidsetup()pinMode(LedPinA,OUTPUT);pinMode(LedPinB,OUTPUT);pinMode(ButtonPinA,INPUT);pinMode(ButtonPinB,INPUT);,voidloop()buttonStateA=digitalRead(ButtonPinA);/读取A模块if(buttonStateA=HIGH/两者相加的和为255,亮度此消彼涨的关系,9、震动开关,编程原理,震动模块和数字13接口自带LED搭建简单电路,制作震动闪光器。

利用数字13接口自带的LED,将震动传感器接入数字3接口,当震动传感器感测到有震动信号时,LED闪烁发光。

intLed=13;/定义LED接口intShock=3/定义震动传感器接口intval;/定义数字变量valvoidsetup()pinMode(Led,OUTPUT);/定义LED为输出接口pinMode(Shock,INPUT);/定义震动传感器为输出接口voidloop()val=digitalRead(Shock);/将数字接口3的值读取赋给valif(val=HIGH)/当震动传感器检测有信号时,LED闪烁digitalWrite(Led,LOW);elsedigitalWrite(Led,HIGH);,10、敲击传感器,和振动开关类似,只是能感受较小振幅的振动,更灵敏一些。

余震的时间能维持稍微久一点点,代码可以兼容振动开关,intLed=13;/定义LED接口intShock=3/定义震动传感器接口intval;/定义数字变量valvoidsetup()pinMode(Led,OUTPUT);/定义LED为输出接口pinMode(Shock,INPUT);/定义震动传感器为输出接口voidloop()val=digitalRead(Shock);/将数字接口3的值读取赋给valif(val=HIGH)/当震动传感器检测有信号时,LED闪烁digitalWrite(Led,LOW);elsedigitalWrite(Led,HIGH);,11、双色共阴LED模块,发光颜色:

绿色+红色(左边头大一点的)黄+红(右边头小一点的)产品广泛应用于电子词典、PDA、MP3、耳机、数码相机、VCD、DVD、汽车音响、通讯、计算机、充电器、功放、仪器仪表、礼品、电子玩具及移动电话等诸多领域。

编程原理,通过模拟端口控制LED的亮度,0255表示从0V到5V。

2种颜色的灯混合,让其值总和为255,可以看到,从红色过渡到绿色的现象,中间颜色是混合成的黄色。

intredpin=11;/选择红灯引脚intgreenpin=10;/选择绿灯引脚intval;voidsetup()pinMode(redpin,OUTPUT);pinMode(greenpin,OUTPUT);voidloop()for(val=255;val0;val-)analogWrite(redpin,val);analogWrite(greenpin,255-val);delay(15);for(val=0;val255;val+)analogWrite(redpin,val);analogWrite(greenpin,255-val);delay(15);,12、三色RGB模块(DIP封装),RGBLED模块由一个插件全彩LED制成,通过R、G、B三个引脚的PWM电压输入可以调节三种基色(红/蓝/绿)的强度从而实现全彩的混色效果,intredpin=11;/selectthepinfortheredLEDintbluepin=10;/selectthepinfortheblueLEDi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1