ARDUINO教程第三讲

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

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

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

资源描述

Arduino基础教程——传感器认识与应用广州大学实验中心黄文恺1、按钮开关信号线S5VGND开关例程按键开关模块和数字13接口自带LED搭建简单电路,制作按键提示灯利用数字13接口自带的LED,将按键开关传感器接入数字3接口,当按键开关传感器感测到有按键信号时,LED亮,反之则灭.intLed=13;//定义LED接口intbuttonpin=3;//定义按键开关传感器接口intval;//定义数字变量valvoidsetup(){pinMode(Led,OUTPUT);//定义LED为输出接口pinMode(buttonpin,INPUT);//定义按键开关传感器为输入接口}voidloop(){val=digitalRead(buttonpin);//将数字接口3的值读取赋给valif(val==HIGH)//当按键开关传感器检测有信号时,LED闪烁{digitalWrite(Led,HIGH)}else{digitalWrite(Led,LOW)}}2、无源蜂鸣器蜂鸣器的作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。这里的“源”不是指电源。而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。实验原理使用数字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);//延时ms}for(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位的采样精度,输出值从0~1023.当光照强烈的时候,值减小,光照减弱的时候,值增加。完全遮挡光线,值最大。intsensorPin=2;intvalue=0;voidsetup(){Serial.begin(9600);//串口波特率为9600}voidloop(){value=analogRead(sensorPin);//读取模拟2端口Serial.println(value,DEC);//十进制数显示结果并且换行delay(50);//延时50毫秒}6、倾斜开关用于检测较小的倾斜角度编程原理倾斜开关模块和数字13接口自带LED搭建简单电路,制作倾斜提示灯。利用数字13接口自带的LED,将倾斜开关传感器接入数字3接口,当倾斜开关传感器感测到有倾斜信号时,LED亮,反之则灭。intLed=13;//定义LED接口intbuttonpin=3;//定义倾斜开关传感器接口intval;//定义数字变量valvoidsetup(){pinMode(Led,OUTPUT);//定义LED为输出接口pinMode(buttonpin,INPUT);//定义倾斜开关传感器为输出接口}voidloop(){val=digitalRead(buttonpin);//将数字接口3的值读取赋给valif(val==HIGH)//当倾斜开关传感器检测有信号时,LED亮{digitalWrite(Led,HIGH);}else{digitalWrite(Led,LOW);}}7、水银开关传感器用于检测稍微大的角度,可以用于检测跌倒等。程序和上个例程通用intLed=13;//定义LED接口intbuttonpin=3;//定义倾斜开关传感器接口intval;//定义数字变量valvoidsetup(){pinMode(Led,OUTPUT);//定义LED为输出接口pinMode(buttonpin,INPUT);//定义倾斜开关传感器为输出接口}voidloop(){val=digitalRead(buttonpin);//将数字接口3的值读取赋给valif(val==HIGH)//当倾斜开关传感器检测有信号时,LED闪烁{digitalWrite(Led,HIGH);}else{digitalWrite(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&&brightness!=255){//当A模块检测到信号,且亮度不是最大时,亮度值增加brightness++;}buttonStateB=digitalRead(ButtonPinB);if(buttonStateB==HIGH&&brightness!=0){//当B模块检测到信号,且亮度不是最小时,亮度值减小brightness--;}analogWrite(LedPinA,brightness);//A慢漸暗analogWrite(LedPinB,255-brightness);//B慢漸亮delay(25);}//两者相加的和为255,亮度此消彼涨的关系9、震动开关编程原理震动模块和数字13接口自带LED搭建简单电路,制作震动闪光器。利用数字13接口自带的LED,将震动传感器接入数字3接口,当震动传感器感测到有震动信号时,LED闪烁发光。intLed=13;//定义LED接口intShock=3//定义震动传感器接口intval;//定义数字变量valvoidsetup(){pinMode(Led,OUTPUT);//定义LED为输出接口pinMode(Shock,INPUT);//定义震动传感器为输出接口}voidloop(){val=digitalRead(Shock);//将数字接口3的值读取赋给valif(val==HIGH)//当震动传感器检测有信号时,LED闪烁{digitalWrite(Led,LOW);}else{digitalWrite(Led,HIGH);}}10、敲击传感器和振动开关类似,只是能感受较小振幅的振动,更灵敏一些。余震的时间能维持稍微久一点点,代码可以兼容振动开关intLed=13;//定义LED接口intShock=3//定义震动传感器接口intval;//定义数字变量valvoidsetup(){pinMode(Led,OUTPUT);//定义LED为输出接口pinMode(Shock,INPUT);//定义震动传感器为输出接口}voidloop(){val=digitalRead(Shock);//将数字接口3的值读取赋给valif(val==HIGH)//当震动传感器检测有信号时,LED闪烁{digitalWrite(Led,LOW);}else{digitalWrite(Led,HIGH);}}11、双色共阴LED模块发光颜色:绿色+红色(左边头大一点的)黄+红(右边头小一点的)产品广泛应用于电子词典、PDA、MP3、耳机、数码相机、VCD、DVD、汽车音响、通讯、计算机、充电器、功放、仪器仪表、礼品、电子玩具及移动电话等诸多领域。编程原理通过模拟端口控制LED的亮度,0~255表示从0V到5V。2种颜色的灯混合,让其值总和为255,可以看到,从红色过渡到绿色的现象,中间颜色是混合成的黄色。intredpin=11;//选择红灯引脚intgreenpin=1

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

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

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

×
保存成功