3.2光线传感器
光线测量采用光敏电阻(图十二),光敏电阻,是一种特殊的电阻,简称光电阻,又名光导管。它的电阻和光线的强弱有直接关系。光强度增加,则电阻减小;光强度减小,则电阻增大。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。
(图十二)光敏电阻实物图
光敏电阻接入arduino 的电路图如下:
(图十三)光敏电阻接线图
3.3伺服舵机
舵机(英文叫Servo)(图十四):它由直流电机、减速齿轮组、传感器和控
16
制电路组成的一套自动控制系统。通过发送信号,指定输出轴旋转角度。舵机一般而言都有最大旋转角度(比如180度。)与普通直流电机的区别主要在,直流电机是一圈圈转动的,舵机只能在一定角度内转动,不能一圈圈转(数字舵机可以在舵机模式和电机模式中切换,没有这个问题)。普通直流电机无法反馈转动的角度信息,而舵机可以。用途也不同,普通直流电机一般是整圈转动做动力用,舵机是控制某物体转动一定角度用(比如机器人的关节)。
(图十四)舵机实物图
舵机的伺服系统由可变宽度的脉冲来进行控制,控制线是用来传送脉冲的。脉冲的参数有最小值,最大值,和频率。一般而言,舵机的基准信号都是周期为20ms,宽度为1.5ms。这个基准信号定义的位臵为中间位臵。舵机有最大转动角度,中间位臵的定义就是从这个位臵到最大角度与最小角度的量完全一样。最重要的一点是,不同舵机的最大转动角度可能不相同,但是其中间位臵的脉冲宽度是一定的,那就是1.5ms。如图十五:
(图十五)
角度是由来自控制线的持续的脉冲所产生。这种控制方法叫做脉冲调制。脉冲的长短决定舵机转动多大角度。例如:1.5毫秒脉冲会到转动到中间位臵(对于180°舵机来说,就是90°位臵)。当控制系统发出指令,让舵机移动到某一
17
位臵,并让他保持这个角度,这时外力的影响不会让他角度产生变化,但是这个是由上限的,上限就是他的最大扭力。除非控制系统不停的发出脉冲稳定舵机的角度,舵机的角度不会一直不变。当舵机接收到一个小于1.5ms的脉冲,输出轴会以中间位臵为标准,逆时针旋转一定角度。接收到的脉冲大于1.5ms情况相反。不同品牌,甚至同一品牌的不同舵机,都会有不同的最大值和最小值。一般而言,最小脉冲为1ms,最大脉冲为2ms。如下图:
(图十六)
伺服舵机接线图如下:
(图十七)舵机控制电路图
3.4灯光控制
对于控制灯光由暗到亮或由亮到暗,采用的是脉宽PWM法。脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,本文灯光亮度控制通过arduino输出不同占空比(占空比是指脉冲信号的通电时间与通电周期之比)的方波,然后用去触发固态继电器,达到控制灯光亮度的功能;原理图如
18
下:
(图十八)灯光亮度控制电路
4、通讯 4.1串行通讯
串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。由于wifi模块内部自带TCP/IP协议,能够把网络数据通过串口转发出来,所以我们只需考虑如何接收和发送串口数据,大大的降低了开发的难度。
4.2异步通讯
异步方式通信ASYNC(Asynchronous Data Communication),又称起止式异步通信,是计算机通信中最常用的数据信息传输方式。它是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。收、发双方取得同步的方法是采用在字符格式中设臵起始位和停止位。在一个有效字符正式发送前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧。
19
串行异步传输时的数据格式:
⑴ 起始位:起始位必须是持续一个比特时间的逻辑\电平,标志传送一个字符的开始。
⑵ 数据位:数据位为5-8位,它紧跟在起始位之后,是被传送字符的有效数据位。传送时先传送字符的低位,后传送字符的高位。数据位究竟是几位,可由硬件或软件来设定。
⑶ 奇偶位:奇偶校验位仅占一位,用于进行奇校验或偶校验,也可以不设奇偶位。
⑷ 停止位:停止位为1位、1.5位或2位,可有软件设定。它一定是逻辑\电平,标志着传送一个字符的结束。
⑸ 空闲位:空闲位表示线路处于空闲状态,此时线路上为逻辑\电平。空闲位可以没有,此时异步传送的效率为最高。
4.3 Arduino与wifi模块连接
(图十九)通讯连接
4.4 通讯协议
由于数据在传输过程中容易受到干扰和一些错误,造成接收到的数据丢失和不完整,为保证数据的完整性,必须用一种指定的算法对原始数据计算出的一个校验值。接收方用同样的算法计算一次校验值,如果和随数据提供的校验值一样,
20