37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百九十四:mbot主控板 makeblock童心制物mCore V1.5开发板 RJ25接口机器人兼容Arduino
mBot,这款带科技感的、工业级的主控板,它支持积木式电脑编程和Arduino编程,换句话说,它是从Arduino演变而来,由于mBot使用的控制芯片是atmega328p-AU,与Arduino系统中的UNO相同,故它们在某种程序上,具有相似的功能和接口。
1、 atmega328的最小系统
常用的最小系统,由时钟电路(晶振电路),复位电路和电源电路组成,如下图所示,其中晶振使用16M的晶振,复位电路低电平有效,5V电压供电,同时将各控制引脚通过网络标号的形式引出,然后再连接到各功能电路模块中,其中的D13/SCK连接了一个LED灯,因为MISO、MOSI和SCK组成了SPI接口,而SCK提供时钟,所以这个Led应该是显示SPI的工作状态。
时钟电路
在晶振并联一个1M欧姆的电阻,查阅资料发现它的作用是降低Q值,增大阻尼,缩短起振时间。
2、电源电路
mBot上的电压可由3种方式提供,如下图所示,一种是USB供电方式(图中的VBUS),这个主要用来调试程序,因为它既可以提供电压,又可以进行通信,如下载程序等;一种是通过电池的形式供电,电池由P1引入,另一种是由DC适配器电源提供,而且当后两种供电时,通过CMOS三极管的作用,只能有一种起作用。
不管是那种供电方式,最后都由开关S1来控制电压的开断,当S1闭合后,电压输出两路,一路连接到电机的驱动部分进行供电,一路经TP3603芯片转换成5V的电压,为整个系统进行供电。值得一提地是,转换后的5V电压,又经过肖特基二极管和TVS二极管以及电容,进行了进一步的保护,大大增加了系统电压的稳定性,最后通过一个Led灯指示电压的工作状态。
TP3605是TPmicro(TapowerSemiconductor Inc.)推出的一款1MHz固定频率CC(恒流)模式的PWM升压型DC-DC变换器。芯片集成了2.1A/200mΩ主开关,单节锂电池供电能够输出5V高达1A的负载电流,最高输出电压可达12V。它内部已经集成了上、下桥 MOS,在外部只需要加输出电感及整流二极管就可以得到输出电压,效率更是高达94%以上。电流模控制提供了快速的瞬态响应和周期性的峰值电流限制能力。TP3605具有过温保护,关断保护,欠压保护,过流保护等保护机制,增添了系统的稳定性,以确保芯片工作的安全性。TP3605转换效率高,可达到94%以上,特别是在关断模式下只需要不到1uA的工作电流,在同等条件下更省电,使得在手持式产品的应用领域获得更长的待机时间。
充电电路
TP4056是一款锂电池恒压线性充电管理IC,充电电压固定4.2V。
引脚TEMP1:电池温度检测输入,连接到电池的NTC传感器输出端,温度过低或过高引起此引脚电压输出异常,充电暂停,当然了,这里是接地GND的,所以是没有这个功能的。
引脚PROG2:充电电流检测端,一般串一个电阻R来监测电流I
引脚CE:使能端,高电平使能
引脚CHRG:充电状态指示,充电时内部下拉低电平,否则高阻态
引脚STDBY:充电完成指示,内部下拉,否则高阻态
引脚BAT:电池连接端
电源控制管理
TP3605具有过温保护,关断保护,欠压保护,过流保护等保护机制,增添了系统的稳定性,以确保芯片工作的安全性。TP3605转换效率高,可达到94%以上,特别是在关断模式下只需要不到1uA的工作电流,在同等条件下更省电,使得在手持式产品的应用领域获得更长的待机时间。
3 、USB&串口电路
USB的接口电路,如下图所示,首先由USB接口提供5V的电压,由VBUS引入到电源电路中,其次,由USB接口引入的D_N和D_P经CH340芯片,将主控芯片上的TTL串口D0/RXD、D1/TXD转换成USB接口,同时D0/RXD、D1/TXD通过P5与蓝牙模块连接,进行主控芯片与蓝牙、USB与蓝牙的数据通信。另外,蓝牙模块和主控芯片通信P4接口与其电路,共用复位功能。
CH340 是一个USB 总线的转接芯片,实现USB 转串口、USB 转IrDA 红外或者USB 转打印口。在串口方式下,CH340 提供常用的modem联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB 总线;在红外方式下,CH340 外加红外收发器即可构成USB 红外线适配器,实现SIR 红外线通讯。它具有: 全速USB 设备接口,兼容USB v2.0,外围元器件只需要晶体和电容;仿真标准串口,用于升级原串口外围设备,或者通过USB 增加额外串口;计算机端Windows 操作系统下的串口应用程序完全兼容,无需修改;硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps;支持常用的MODEM 联络信号RTS、DTR、DCD、RI、DSR、CTS;通过外加电平转换器件,提供RS232、rs485、RS422 等接口; 支持IrDA 规范SIR 红外线通讯,支持波特率2400bps 到115200bps。
USB转串口电路
CH340G,也需要一个M的起振电路,供电5V(3.3V电压也可以,但是V3引脚必须与VCC相连且必须引入外部3.3V电源,其外部连接电路必须不超过3.3V),芯片内部内置了电源上电复位地电路。
4 、电机驱动电路
控制mBot上的两个驱动电路,如下图所示,由控制芯片ATMega328引出的DIR2_D4+、DIR1_D7控制转动的方向,PWM1_D6、PWM2_D5控制转动的速度,这四个引脚分别连接到驱动芯片TB6612上,最后经过TB6612的处理,转换成真正的控制信号M1+、M1-和M2+、M2-经过P2、P3连接到电机上,来控制电路的转动。
TB6612是东芝半导体公司生产的一款直流电机驱动器件,它具有大电流MOSFET-H桥结构,双通道电路输出,每通道输出最高1.2 A的连续驱动电流,启动峰值电流达2A/3.2 A(连续脉冲/单脉冲),4种电机控制模式:正转/反转/制动/停止,PWM支持频率高达100 kHz,片内低压检测电路与热停机保护电路。由于其基于MOSFET的H桥集成电路,其效率高于晶体管H桥驱动器。相比常用的L298N的热耗性和外围二极管续流电路,它无需外加散热片,外围电路简单,只需外接电源滤波电容 ,就可以直接驱动电机,利于减小系统尺寸。
驱动IC TB6612,大电流双通道电路输出,可同时驱动2个电机!每通道输出最高1.2 A的连续驱动电流,启动峰值电流达2A/3.2 A(连续脉冲/单脉冲);4种电机控制模式:正转/反转/制动/停止,PWM支持频率高达100 KHZ;待机状态;片内低压检测电路与热停机保护电路; 我们知道控制直流电机,一般要3个IO引脚,一个控制输出PWM,还有2个则控制正反转mCore呢,2个电机控制只用了4个IO引脚,真是省了2个IO资源啊!
分析下,三极管9013是NPN型,当DIR2_D4+为高电平时,三极管导通,DIR2_D4-接地低电平,当DIR2_D4+为低电平时,三极管截止,DIR2_D4-接+5V串电阻,为高电平,同样,DIR2_D7+也是一样的。这样设计节省资源IO,但是不能通过同时高或同时低来制动,而只能通过控制PWM速度控制来制动。
5 、板载传感器电路
按键电路
按键电路非常简单,按下低电平,弹上高电平。
6、 RGB控制电路,以及光敏电阻控制电路
光敏传感器电路
光敏传感器的电路也非常简单,主要理解光敏电阻,随着光照强度的增加,其电阻值会逐渐减小这一特性,反应到电路上,就是光照越强,A6端的电压越大。
RGB三色灯电路
mBot的RGB三色灯与以往的三色灯不同,它使用了一个集控制电路与发光电路于一体的智能外控LED光源,即WS1812B。主要弄懂在级联时,每经过1个像素点传输,信号减少24bit。ws2812B是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和可编程定电流控制部分,有效保证了像素点光的颜色高度一致。数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。像素点采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅仅受限信号传输速度要求。具体工作原理,可查看其数据手册。