首页 理论教育Arduino软件编程实例

Arduino软件编程实例

【摘要】:实例程序:5.光敏传感器的例程光敏传感器实质是一个光敏电阻,根据光的照射强度会改变其自身的阻值。程序和倾斜开关的例程通用。编程原理:传感器A0口接Arduino板模拟口的A1口,读取传感器的值。

1.按键开关的例程

按键开关模块和数字13接口自带LED搭建简单电路,制作按键提示灯。利用数字13接口自带的LED,将按键开关接入数字3接口,当按键开关感应到有按键信号时,LED亮,反之则灭。

2.无源蜂鸣器的例程

实验原理:使用数字I/O接口,通过高低电平的变换来实现方波。第一个例子是持续1 ms的低电平和1 ms的高电平,实现一个500 Hz的方波信号,持续80个方波,然后切换为持续2 ms的低电平和2 ms的高电平,实现一个250 Hz的方波信号,持续100个方波。两种声音交替发出。

3.有源蜂鸣器的例程

有源蜂鸣器内部带振荡源,所以只要一通电就会叫,只能发出固定频率的声音。

4.激光传感器的例程

激光传感器通过S端来开启,可以发射持续的激光,也可以发射脉冲波。可用于玩具激光枪或者激光测距等各种用途。

实例程序:

5.光敏传感器的例程

光敏传感器实质是一个光敏电阻,根据光的照射强度会改变其自身的阻值。

编程原理:将光敏电阻的S端接在一个模拟输入口,光强的变化会改变阻值,从而改变S端的输出电压。将S端的电压读出,使用串口输出到计算机显示结果。

因为AVR是10位的采样精度,输出值从0~1 023。当光照强烈的时候,值减小,光照减弱的时候,值增加。完全遮挡光线,值最大。

6.倾斜开关的例程

用于检测较小的倾斜角度。

编程原理:倾斜开关模块和数字13接口自带LED搭建简单电路,制作倾斜提示灯。利用数字13接口自带的LED,将倾斜开关传感器接入数字3接口,当倾斜开关传感器感测到有倾斜信号时,LED亮,反之则灭。

7.水银开关传感器的例程

用于检测稍微大的角度,可以用于检测跌倒等。程序和倾斜开关的例程通用

8.魔术光杯(一对)的例程

水银开关多加了一个独立的LED,两个可以组成魔术光杯。

编程原理:将魔术光杯其中一个模块S脚接数字脚7,LED控制接数字脚5(PWM功能),另一个模块S脚接数字脚4,LED控制接数字脚6。

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

9.振动开关的例程

编程原理:振动模块和数字13接口自带LED搭建简单电路,制作振动闪光器。

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

10.敲击传感器的例程

11.双色共阴LED模块的例程

发光颜色:绿色+红色(左边头大一点儿的),黄+红(右边头小一点儿的)。

产品广泛应用于电子词典、PDA、MP3、耳机数码相机、VCD、DVD、汽车音响通信、计算机、电器、功放、仪器仪表、礼品、电子玩具及移动电话等诸多领域。

编程原理:通过模拟端口控制LED的亮度,0~255表示0~5 V。两种颜色的灯混合,让其值总和为255,可以看到,从红色过渡到绿色的现象,中间颜色是混合成的黄色。

12.三色RGB模块(DIP封装)的例程

RGB LED模块由一个插件全彩LED制成,通过R、G、B三个引脚的PWM电压输入可以调节三种基色(红/蓝/绿)的强度,从而实现全彩的混色效果。

13.三色RGB模块(SMD封装)的例程

这种LED只是封装形式不同,采用贴片封装,亮度较高,例程同上。

14.七彩自动闪烁LED模块的例程

通电之后能自动闪烁其中颜色。使用数字引脚直接连接,可控制其亮灭。

15.金属触摸传感器的例程

金属触摸模块和数字13接口自带LED搭建简单电路,制作触摸提示灯。利用数字13接口自带的LED,将金属触摸传感器接入数字3接口,当金属触摸传感器感测到有按键信号时,LED亮,反之则灭。

16.火焰传感器的例程

通过捕捉火焰中的红外线波长来检测。

编程原理:火焰模块和数字13接口自带LED搭建简单电路,制作火焰提示灯。

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

17.手指测心跳模块的例程

18.红外避障传感器的例程

根据红外线反射的原理来检测前方是否有物体。当前方没有物体时,红外线接收不到信号。前方有物体会遮挡并反射红外光,此时能检测到信号。

编程原理:下面我们利用避障模块和数字13接口自带LED搭建简单电路,制作避障提示灯,将避障传感器接入数字3接口,当避障传感器感测到有障碍物时,输出是低电平(电路是负逻辑)信号时,LED亮,反之没有障碍物时,输出高电平,提示灯则灭。

19.寻线传感器的例程

原理同红外避障传感器,只是发射功率比较小,遇到白色反射红外线,遇到黑色被吸收红外线,以此来寻找地面的黑线。

编程原理:寻线模块和数字13接口自带LED搭建简单电路,制作寻线提示灯。

利用数字13接口自带的LED,将寻线传感器接入数字3接口,当寻线传感器感测到有反射信号时(白色),LED亮,反之(黑线)则灭。

20.光遮断传感器的例程

21.线性霍尔磁力传感器的例程

霍尔磁力传感器能检测到磁场,从而输出检测信号。模拟口能通过输出线性电压的变化来揭示出磁场的强弱。数字输出口是达到某个阈值才会输出高低电平。可调电阻能改变检测的灵敏度。

编程原理:我们选择数字口作为输出,将D接开发板数字引脚3,使用板上的13脚和LED连通,用于观察磁场的有无。当磁铁靠近时,13脚的灯灭,反之则亮。

22.模拟霍尔传感器的例程

和线性霍尔磁力传感器类似,有磁场则输出数值改变。

编程原理:传感器A0口接Arduino板模拟口的A1口,读取传感器的值。当磁铁离传感器近时,数值变大,反之数值变小。

23.大磁环传感器的例程

编程原理:磁环模块和数字13接口自带LED搭建简单电路,制作磁场提示灯。

利用数字13接口自带的LED,将磁环传感器接入数字3接口,当磁环传感器感测到有磁铁靠近时,LED亮,反之则灭。

24.迷你磁环传感器的例程

和大磁环传感器是一类,差异很小,只是灵敏度更弱些。迷你磁环没有模拟输出,直接接数字接口。

25.旋转编码器的例程

编程原理:旋转编码器可通过旋转计数正方向和反方向转动过程中输出脉冲的次数。

26.麦克风声音传感器的例程

模块有两个输出:

(1)AO,模拟量输出,实时输出麦克风的电压信号。

(2)DO,当声音强度到达某个阈值时,输出高低电平信号,阀值-灵敏度可以通过电位器调数字输出。

27.高感度声音传感器的例程

灵敏度高于前面的麦克风声音传感器,例程与前面一致。

28.模拟式温度传感器的例程

该模块是基于热敏电阻(阻值随外界环境温度变化而变化)的工作原理,能够实时感知周边环境温度的变化,我们把数据送到Arduino的模拟I/O接口,接来下我们只要经过简单的编程就能将传感器输出的数据转换为摄氏温度值并加以显示,使用起来方便、有效,因此广泛应用于园艺、家庭警报系统等装置中。

29.数字温度传感器的例程

和前面的模拟式温度传感器一样,只是增加了数字输出,通过可调电阻调节阈值。达到某个值的时候,输出高电平,低于某个值的时候,输出低电平。

编程原理:数字温度模块和数字13接口自带LED搭建简单电路,制作温度提示灯。

利用数字13接口自带的LED,将数字温度传感器接入数字3接口,当数字温度传感器感测到高于某个值时,LED亮,反之则灭。

可以通过调节可调电阻来设定阈值。

30.温湿度传感器的例程

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术。

编程原理:DHT11是一款数字式的温湿度传感器,使用一根信号线传输数据。其读取步骤如下:

(1)将该引脚改为输出模式,先将数据线的电平拉低(将该引脚置LOW),持续时间超过18 ms以上。

(2)再将该引脚置为高电平,持续时间40μs。

(3)再把该引脚设置为读取模式,此时读到低电平后延时80μs,再读到高电平后80μs,开始能接收到有效数据。

(4)数据总共有5B,忽略校验位,有四位是有效数据。第0字节是湿度的整数位,第1字节是湿度的小数位,第2字节是温度的整数位,第3字节是温度的小数位。

31.DS18b20数字温度传感器模块的例程

芯片介绍:DS18x20系列数字温度传感器主要有DS18S20和DS18B20(DS18S20只有9位一种工作模式,分辨率只到0.5℃,DS18B20有9、10、11、12位四种工作可编程控制的模式,分辨率最高为0.062 5℃),都是由美国Dallas半导体公司(现在改名叫Maxim)生产的。

DS18x20系列最大的特点就是采用了Maxim的专利技术1-Wire。顾名思义,1-Wire就是采用单一信号线,但可像I2C、SPI一样,同时传输时钟(clock)又传输数据(data),而且数据传输是双向的。1-Wire使用较低的数据传输速率,通常是用来沟通小型device,如数位温度计。通过1-Wire技术可以在单一信号线的基础上构成传感器网络,Maxim起名“MicroLan”。

编程原理:厂家已经提供可供调用的库函数,只需要把库函数复制下来,放到arduino\libraries下面。这两个库函数分别是DallasTemperature和onewire两个文件夹。

本库函数有两个版本,一个支持arduino0023或以下版本编译通过,另一个支持1.01或更高版本。

32.红外发射的例程

使用单片机产生38K的调制信号来发射。业界通用的标准,只是码的含义不同。同一个码,SONY和JVC厂家的定义就不一样。

编程原理:经提供可供调用的库函数,只需要把库函数复制下来,放到arduino\libraries下面。该函数的文件夹名是Arduino_IRremote,然后调用IRremote.h,实例化一个对象IRsend即可使用其方法。使用Arduino1.04以上版本。

33.红外接收的例程

红外接收头和家用遥控器使用的红外接收头一致,接收38KB的调制信号,通过单片机解码。

编程原理:经提供可供调用的库函数,只需要把库函数复制下来,放到arduino\libraries下面。该函数的文件夹名是Arduino_IRremote。然后调用IRremote.h,实例化一个对象IRrecv即可使用其方法。使用Arduino1.04以上版本。

34.Joystick PS2摇杆的例程

具有(X,Y)两轴模拟输出,(Z)1路按钮数字输出。配合Arduino传感器扩展板可以制作遥控器等互动作品。

编程原理:该操纵杆本身是由两个电位器(可调电阻)加一个按钮开关组成的。拨动电位器,使得阻值发生变化,从而输出电压改变。输出的是模拟量接模拟口。按钮输出的值由于电压低于2.5 V,无法输出高电平,按下后,输出0 V,因此也用模拟口来读取。

35.继电器的例程

继电器适合驱动大功率的电器,如电风扇甚至空调。单片机接继电器可以实现弱电控制强电。

编程原理接一个灯泡并点亮,需要将火线接在公共和常开端(没有控制信号时是断开的),然后S接单片机数字接口3,将按钮接数字接口4。按下按钮则继电器工作,电灯亮起。