本帖最后由 egomy 于 2014-5-2 19:10 编辑
免责及笔记一地址: 因为一些有的没的原因,本来第二篇笔记想弄温度显示,觉得有一点循序渐进的意思,但是始终没有弄的太明白。SO。本篇改为GPS时钟显示。Arduino的应用实现真心让我这个做软件的觉得很舒服。更多得到的是成就感。嘻嘻。开始搭建三板斧: 三板斧步骤一:硬件的准备
Arduino zion开发板一枚 T口USB数据线一根 电脑一只 杜邦线若干(是叫这个名吧?) VFD202屏一只(找熊买→_→)(感谢只看不说前辈的VFD外壳,瞬间屌丝升级3.0) Ublox5a模块一只(同上) GPS天线一只(似乎接一根导线出来也是可以的) 上图
硬件准备
三板斧步骤二:软件环境的配置和程序 ZION的驱动以及与电脑的连接 ARDUINO IDE的下载和使用 ARDUINO的GPS支持库,找到一枚老外的 http://www.maartenlamers.com/nmea/ 修改后可以在ARDUINO1.05中使用 翠花,上代码 - // This example illustates access to all sentence types,
- // using the NMEA library. It assumes that a GPS receiver
- // is connected to serial port 'Serial1' at 4800 bps.
- #include <nmea.h>
- NMEA gps(ALL); // GPS data connection to all sentence types
- //清屏
- unsigned char clr=0x1F;
- //设置屏幕为非滚动状态
- unsigned char set_normal=0x11;
- //设置光标到第一行第一个位置
- unsigned char set_front[2]={0x10,0x06};
- //设置VFD光标到第二行第一个位置
- unsigned char set_sec[2]={0x10,0x14};
- float set_utc=0.0;
- void setup() {
- //使用串口0
- Serial.begin(9600);
- //使用串口1
- Serial1.begin(9600);
- Serial.write(set_normal);
- }
- void loop() {
- if (Serial1.available() > 0 ) {
- // read incoming character from GPS and feed it to NMEA type object
- //使用GPS库方法从串口1读入GPS时间
- if (gps.decode(Serial1.read())) {
- // full sentence received
- //取得UTC时间
- set_utc=gps.gprmc_utc();
- //以下为输出到VFD
- Serial.write(set_front,2);
- Serial.print (GetHour()+":"+GetMinute()+":"+GetSecond());
- Serial.write(set_sec,2);
- Serial.print ("_-_-|_GPS TIME_|-_-_");
- }
- }
- }
- String GetHour()
- {
- int hour=(int)(set_utc/10000);
- hour=hour+8>24?hour+8-24:hour+8;
- return hour<10?"0"+(String)(hour):(String)(hour);
- }
- String GetMinute()
- {
- int minute=(int)(set_utc/100)-(int)(set_utc/10000)*100;
- return minute<10?"0"+(String)(minute):(String)(minute);
- }
- String GetSecond()
- {
- int second=(int)(set_utc-((int)(set_utc/100))*100);
- return second<10?"0"+(String)(second):(String)(second);
- }
复制代码
三板斧步骤三:硬件连接运行调试 断开开发板 , 1.将VFD的 RX与ZION 33号引脚(TX0)连接,从Zion 核心附近区域的 v50 引脚和 GND分别接入VFD的正负极。为VFD屏幕供电,,参考笔记一中的连线。 2.UBLOX的RX TX分别与 PORTD 区的 TX1和RX1连接。 3.UBLOX天线自行接好。 4.UBLOX正负极分别接入VCC和GND(我的Zion电源跳线那给的是5V)。 硬件准备完毕
最终运行效果
存在若干问题:
1.GPS时间取得前,得到的都是0,所以初始会显示8:00
2.偶尔会在启动过程中存在乱码。因为我没有对其他格子进行刷新。SO .会一直存在。
3.谁要是能看懂接线。就发个电路连接图吧。俺真心不会弄。
|