切换到宽版
爱科技/爱创意/爱折腾/爱极致;技术知识分享平台,点击进入新版数码之家网站
  • 24387阅读
  • 29回复

[WiFi]vfd wifi时钟  nodemcu 驱动 [复制链接]

上一主题 下一主题
离线rasingsun
 

发帖
175
M币
48
专家
1
粉丝
23
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2018-10-11
年初某宝买了两块vfd板子,做工很牛




一块用店家的驱动板点亮,另一块闲置
一直想用吃灰已久的nodemcu(大学的时候买的)点亮
怎奈一直未能如愿
前几日从藏地回来,找了个硬件调试的工作
遂重新开始此“工程”
先来一张效果图


进入正题
整体思路
nodemcu连入电脑WiFi热点(方便观察)通过ntp获取时间
软件模拟协议驱动pt6312显示时间
驱动程序及软件流程参考了卖家发过来的51程序
先上代码
由于第一次插入,未找到方法,凑合看吧
结尾放全部文件


void setup()
{
  //user code start
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(PT6311_EN, OUTPUT);
  pinMode(PT6311_DATA, OUTPUT);
  pinMode(PT6311_CLK, OUTPUT);
  pinMode(PT6311_STB, OUTPUT);
  //user code end
  Serial.begin(9600);
  while (!Serial) ; // Needed for Leonardo only
  delay(250);
  Serial.println("TimeNTP Example");
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, pass);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  
  Serial.print("IP number assigned by DHCP is ");
  Serial.println(WiFi.localIP());
  Serial.println("Starting UDP");
  Udp.begin(localPort);
  Serial.print("Local port: ");
  Serial.println(Udp.localPort());
  Serial.println("waiting for sync");

  //time download function
  while (!gettime){
  setSyncProvider(getNtpTime);
  }
  digitalWrite(PT6311_EN, HIGH);//kai=1;     //turn on vfd
  if (Debug){
  Serial.println("turn on vfd display");
  }
  PT6311_1();//set dis mode
  PT6311_2(); //set date
  PT6311_3();
        
    for(int i=0;i<20;i++)  
      {
    write_PT6311(0x00);
    write_PT6311(0x00);
     }  
     if (Debug){
       Serial.println("display init finished");  
     }
}



time_t prevDisplay = 0; // when the digital clock was displayed

void loop()
{  
  if (timeStatus() != timeNotSet) {
    if (now() != prevDisplay) { //update the display only if time has changed
      prevDisplay = now();
      dispgenerate();
     // lightset();
      digitalClockDisplay();  
    if (Debug){
      Serial.println("iiff");
    }
    }
    if (Debug){
    Serial.print("if in");
    }
  }
  if (Debug){
   Serial.println("loop finish");
   delay(100);
  }
}



用arduino编程(具体实现方法可度娘)
主要是通过官方的库管理窗口添加ntp相关库
这里说说添加库时遇到的问题:
      1、有些库设置后连不上WiFi
      2、有些连上WiFi后,不能连接ntp服务器(此问题可通过ping www.*.*来获取ip)
再有就是定义引脚号的时候要用gpio号码


const int analogInPin = A0;  // Analog input pin that the potentiometer is attached to
const int PT6311_EN =5;
const int PT6311_DATA =4;
const int PT6311_CLK =0;
const int PT6311_STB =2;


依次用了D1-D4即gpio5、4、0、2(位置在引脚图右上角)




引脚间距非2.54
故这头用杜邦线焊接


通过光敏电阻实现亮度自动调节
vcc
电阻10k
A0采样
光敏电阻
gnd
同样参考了卖家


为便于调试在程序个状态出增加了串口输出信息以顺利实现功能


const bool Debug = 0;




void loop()
{  
  if (timeStatus() != timeNotSet) {
    if (now() != prevDisplay) { //update the display only if time has changed
      prevDisplay = now();
      dispgenerate();
     // lightset();
      digitalClockDisplay();  
    if (Debug){
      Serial.println("iiff");
    }
    }
    if (Debug){
    Serial.print("if in");
    }
  }
  if (Debug){
   Serial.println("loop finish");
   delay(100);
  }
}



最后来个效果图




可以下载
如不能下载可发邮件给我,我发过去
gonghexiong@yeah.net  


完,下班后仓促写的,不太好,请见谅



本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖提到的人: @yeah.net
本帖最近打赏记录:共6条打赏M币+85
2235880905 M币 +30 可以参考下先MARK标记了! 2018-10-13
mousebat04 M币 +8 弄得不错。左边大部分空白没用,让那些图标循环起来,当秒计时吧。 2018-10-12
hongo M币 +9 優秀文章 2018-10-12
2545889167 M币 +20 扶她爸的vfd还是蛮有名的 2018-10-11
听雨亭 M币 +15 謝謝分享 2018-10-11
deyafe M币 +3 謝謝分享 2018-10-11
离线yyglxc

发帖
4659
M币
1528
专家
1
粉丝
39
只看该作者 1楼 发表于: 2018-10-11
请登录后查看
离线2545889167

发帖
13268
M币
20754
专家
302
粉丝
4860
只看该作者 2楼 发表于: 2018-10-11
请登录后查看
离线syskonnect

发帖
1509
M币
2422
专家
0
粉丝
7
只看该作者 3楼 发表于: 2018-10-12
请登录后查看
离线mousebat04

发帖
16458
M币
8980
专家
10
粉丝
92
只看该作者 4楼 发表于: 2018-10-12
请登录后查看
离线ztrdiy

发帖
3687
M币
417
专家
3
粉丝
64
只看该作者 5楼 发表于: 2018-10-12
请登录后查看
离线rasingsun

发帖
175
M币
48
专家
1
粉丝
23
只看该作者 6楼 发表于: 2018-10-12
回 ztrdiy 的帖子
请登录后查看
离线rasingsun

发帖
175
M币
48
专家
1
粉丝
23
只看该作者 7楼 发表于: 2018-10-12
回 mousebat04 的帖子
请登录后查看
离线2235880905

发帖
54
M币
5
专家
0
粉丝
8
只看该作者 8楼 发表于: 2018-10-13
请登录后查看
离线2235880905

发帖
54
M币
5
专家
0
粉丝
8
只看该作者 9楼 发表于: 2018-10-13
请登录后查看
快速回复
限80 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个