本帖最后由 straka 于 2018-7-15 20:31 编辑
由于一个项目中需要采集GPS坐标信息,就想利用已有材料做一个简易的坐标采集装置。手头又正好有太阳能电池板,就索性加上了太阳能充电的功能。 【选型】 由于Arduino比较简单,所以就选择Arduino平台作为主控。20mA/5v。 需要显示的信息也比较少,主要是GPS坐标和时间、航速信息。所以用LCD1602即可,为了编码方便,用的是转成串口输入的LCD模块。20~80mA/5v。 GPS模块先找的最普遍的ublox m6n,定位精度水平5m以内吧,不是太高,所以后续换成了M8N,输出解析上略有区别(下文中均是按照ublox m6n进行解析),但是都是Uart接口,160mA/5v。 TF卡模块,用来存储坐标信息,20mA/5v。 算了下,上面的所有装置电流200mA/5v,户外连续工作十小时计算,需要5V,2000mAh的电能一节3.7V,2600mAh的锂电池差不多满足需求。 这里只是做验证,就把闲置3.6V,380mAh的Li-Ge电池拿来用了,后续只需要调一下电压就可以换别的锂电池了。 太阳能模块是200mA/1.5v的模块,其实阳光好直晒的时候电压更高(测量太阳能电池板输出必须带负载测量,不能空载),带负载能力更强。采用两块串联,提高整体输出电压。 因为太阳能模块输出随光照情况变化大,所以需要能自动升降压的稳压模块,LM2596S模块可以满足,效率在90%以上,于是采用。 另外增加两个按键,主要用于LCD显示内容切换以及记录坐标按钮。 【列下材料】: 太阳能电池板 3v/200mA *2 充电电池 3.7V 380mv LM2596s可调升降压稳压模块 Arduino Ublox M6N模块(GPS信号接收),3.3V/5V,70mA,uart接口。 LCD1602液晶屏,5V,背光开启20mA,无背光时uA级别耗电可忽略,uart接口。 TF卡模块,SPI接口,5V/0.2~200mA,典型工作80mA。 5V升压稳压模块 其他电子耗材 由于不是专业电子出生,电路方面知识欠缺,在设计充放电功能时纠结了很久,主要是电压转换方式的选取,太阳能电池板的输出随光照条件变化,而且不能逆流,所以在太阳能电池无光不工作的时候保证电池不能反向输出至太阳能板,于是在电池的充电端加了整流二极管,副作用是压降0.7v(其实LM2596S模块也带有防逆流功能)。 【电路设计】: 略。。。比较简单就不画电路图了,说下模块连线。 1602LCD为I2C总线: 1602模块的SDA连接arduino的A4 SCL连接arduino的A5 ublox模块为uart总线,因为我们不需要控制ublox模块,只需从ublox模块读取信息,因而只用连接ublox的Tx: ublox的Tx连接到arduino的Rx(引脚D0) TF卡模块为SPI总线: TF卡模块的SS连接Arduino的引脚D10 MOSI------>D11 MISO------>D12 SCLK------->D13 另外用到的两个按键: 记录键----->D8 翻页键----->D9 如下成品效果图: 图1 成品图 图2 经纬度显示 图3 速度、时间显示 代码和详细介绍见原文链接【http://www.straka.cn/blog/solar_gps_recorder/】 |