今天測试数码管LED屏驱动,用某产品的一个共阴极的LED屏,依据电路图做数码管LED屏的检測。

代码写得有些冗长,有好几种驱动的方法,这里仅仅是当中一种最直接的方案,抽出时间要做个更有效率的调用和驱动的方案。

//设置阴极接口
int d1 = 1;
int d2 = 2;
int d3 = 3;
int d4 = 4;
int d5 = 5;
int d6 = 6;
int d7 = 7;
//设置阳极接口
int a = 8;
int b = 9;
int c = 10;
int d = 11;
int e = 12;
int f = 13;
int g = A0;
int h = A1;void setup()
{
pinMode(d1, OUTPUT);
pinMode(d2, OUTPUT);
pinMode(d3, OUTPUT);
pinMode(d4, OUTPUT);
pinMode(d5, OUTPUT);
pinMode(d6, OUTPUT);
pinMode(d7, OUTPUT);
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(h, OUTPUT);
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(h, LOW);
digitalWrite(d1, HIGH);
digitalWrite(d2, HIGH);
digitalWrite(d3, HIGH);
digitalWrite(d4, HIGH);
digitalWrite(d5, HIGH);
digitalWrite(d6, HIGH);
digitalWrite(d7, HIGH);
}void loop()
{
//缺水
digitalWrite(d7, LOW);
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
delay(500);
//低水位
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
delay(500);
//定时关机
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
delay(500);
//温度十位8
digitalWrite(d7, HIGH);
digitalWrite(d1, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(a, HIGH);
delay(300);
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
delay(300);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
delay(300);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
delay(300);
digitalWrite(d, LOW);
digitalWrite(e, HIGH);
delay(300);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
delay(300);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
delay(300);
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
delay(300);
//温度个位8
digitalWrite(d1, HIGH);
digitalWrite(d2, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(a, HIGH);
delay(300);
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
delay(300);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
delay(300);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
delay(300);
digitalWrite(d, LOW);
digitalWrite(e, HIGH);
delay(300);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
delay(300);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
delay(300);
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
delay(300);
//温符号度
digitalWrite(d2, HIGH);
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(h, HIGH);
digitalWrite(d1, LOW);
delay(500);
//睡眠符号
digitalWrite(d1, HIGH);
digitalWrite(d2, LOW);
delay(500);
//小时十位8
digitalWrite(d2, HIGH);
digitalWrite(d3, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(a, HIGH);
delay(300);
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
delay(300);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
delay(300);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
delay(300);
digitalWrite(d, LOW);
digitalWrite(e, HIGH);
delay(300);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
delay(300);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
delay(300);
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
delay(300);
//小时个位8
digitalWrite(d3, HIGH);
digitalWrite(d4, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(h, LOW);
digitalWrite(a, HIGH);
delay(300);
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
delay(300);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
delay(300);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
delay(300);
digitalWrite(d, LOW);
digitalWrite(e, HIGH);
delay(300);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
delay(300);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
delay(300);
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
delay(300);
//冒号
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(h, HIGH);
delay(500);
//分钟十位8
digitalWrite(d4, HIGH);
digitalWrite(d5, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(a, HIGH);
delay(300);
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
delay(300);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
delay(300);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
delay(300);
digitalWrite(d, LOW);
digitalWrite(e, HIGH);
delay(300);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
delay(300);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
delay(300);
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
delay(300);
//分钟个位8
digitalWrite(d5, HIGH);
digitalWrite(d6, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(a, HIGH);
delay(300);
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
delay(300);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
delay(300);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
delay(300);
digitalWrite(d, LOW);
digitalWrite(e, HIGH);
delay(300);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
delay(300);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
delay(300);
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
delay(300);
//全亮
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(h, HIGH);
digitalWrite(d1, LOW);
digitalWrite(d2, LOW);
digitalWrite(d3, LOW);
digitalWrite(d4, LOW);
digitalWrite(d5, LOW);
digitalWrite(d6, LOW);
digitalWrite(d7, LOW);
delay(500);
//全灭
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(h, LOW);
digitalWrite(d1, HIGH);
digitalWrite(d2, HIGH);
digitalWrite(d3, HIGH);
digitalWrite(d4, HIGH);
digitalWrite(d5, HIGH);
digitalWrite(d6, HIGH);
digitalWrite(d7, HIGH);
delay(500);
}

计划採用机器视觉来检測,自己主动鉴别出断笔,笔段亮度差异较大等质量检验问题。

转载于:https://www.cnblogs.com/lcchuguo/p/4041422.html

Arduino 数码管LED屏驱动相关推荐

  1. LED数显驱动芯片VK16K33A/B/C內建显示记忆体及RC振荡电路,LED数码管显示驱动芯片/LED屏驱动IC

    品牌:永嘉微电/VINKA 工程服务,技术支持 型号:VK16K33 封装:SOP28/24/20 年份:新年份 概述: VK16K33是一个内存映射和多功能LED控制器驱动程序.VK16K33有28 ...

  2. Arduino 数码管LED驱动 读位法 16进制

    区别与上两个驱动的方法,用bitRead()读取位数,代码简洁一点. //设置阴极接口 int d1 = 1; int d2 = 2; int d3 = 3; int d4 = 4; int d5 = ...

  3. stm32全彩LED屏显示

    由于项目需要,使用全彩LED屏显示,单块的控制卡成本过高,所以自己设计了一个控制卡.由于没有驱动IC的资料,此程序不适用所有LED屏. 硬件:stm32f103ret6 屏参:128*64 2.5全彩 ...

  4. 小型LED屏/数字闹钟显示屏/LED广告牌/温度数字显示器等LED数码管显示驱动IC-VK1640/1640B SOP28/SSOP24封装

    品牌:永嘉微电/VINKA 产品:VK1640B 封装:SSOP24 年份:新年份 概述 : VK1640B 是一款 LED(发光二极管显示器)驱动控制专用电路,内部集成有 MCU 数字接口.数据锁存 ...

  5. K_A02_005 基于单片机驱动数码管 LED 按键模块(TM1638) 流水灯 0-7 按键值显示

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.通信协议说明 1.写数据 时序: 程序: 2.读数据 时序: 程序: 四.部分代码说明 1.接线说明 1.1.STC89C52RC+按键数 ...

  6. LED屏显示驱动简述与类型

    LED屏显示驱动是一种半导体集成电路,它提供微处理器.微控制器.通用外设接口和特定类型的显示设备(如 LED)之间的接口功能.LED屏显示驱动程序通常使用行业标准的通用串行或并行接口来接受命令和数据. ...

  7. Arduino 数码管和+LED灯设计 (红绿灯)

    Arduino 数码管和+LED灯设计 (红绿灯) 写在前面 这里用到的是一位共阴极数码管,管脚图在之前的一位数码管设计文章里面发过,其实在网上也很容易找到引脚图的. 说正经的 这次依旧是没有什么技术 ...

  8. LED数码管显示驱动芯片-VK1668,LED驱动控制电路,内部集成有MCU数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路

    产品型号:VK1668 产品品牌:VINKA/永嘉微电 封装形式:SOP24/SSOP24 产品年份:新年份 概述 VK1668 是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部 ...

  9. 【资料】VK6932是LED显示屏驱动芯片/LED数显驱动芯片/LED数码管驱动IC,集成MCU数字接口,数据锁存器,采用CMOS,多用于LED显示屏驱动

    产品型号:VK6932 产品品牌:VINKA/永嘉微电 封装形式:SOP32 产品年份:新年份 概述 VK6932 是一款LED(发光二极管显示器)驱动控制专用电路,内部集成有MCU 数字接口. 数据 ...

最新文章

  1. Ubuntu“无法获得锁\加锁”解决方案
  2. 大数据DDos检测——DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然! 和一个句子的分词算法CRF没有区别!...
  3. Allegro跨分割检查
  4. asp.net 调用苹果摄像头扫描条码_苹果刚刚发布了近两年最值得买的 iPhone
  5. tensorflow与keras的关系
  6. C#中窗口关闭时没有取消事件订阅导致事件重复执行的解决方法
  7. javascript 调用C++函数
  8. DQL 学习3 -- Administration Methods
  9. 人工智能?你需要了解的内容和AI学习路线
  10. Axure 基础教程
  11. 解决TS中“Cannot find module ‘path‘ or its corresponding type declarations.”
  12. C++初步之核心编程篇五:多态与虚函数类
  13. realme Q2Pro和红米x10哪个好
  14. 【MAX7800羽毛板更新固件及下载bug修复】
  15. 基于python获取雅虎金融股票数据及相关可视化操作
  16. FileZilla Server报错Could not load TLS libraries 的解决方法
  17. Android中的自定义View(一)
  18. 传输线的物理基础(七):传输线的一阶模型
  19. Spring data JPA 笔记
  20. C++ QT开发人机象棋(剪枝算法)

热门文章

  1. 【ACL2021】ChineseBERT:香侬科技提出融合字形与拼音信息的中文预训练模型
  2. BCI系统的ITR(信息传输率)函数python+matlab代码
  3. mapv一些比较容易被使用到的api
  4. itr/salesforce账号激活
  5. snprintf用法解析
  6. 微信小游戏如何自己插入广告
  7. 广义相对论-学习记录11-第五章-引力辐射1
  8. 找到专业的软件外包开发公司
  9. STM32下载出错:flash timeout.reset the target and try it again
  10. 基于C51的扩展系统结构的篮球记分器【包含IIC运用,DS1307,LCM12864】的课设作业