zoukankan      html  css  js  c++  java
  • Arduino 数码管LED屏驱动

    今天測试数码管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);
    }



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

  • 相关阅读:
    loadNibNamed 的使用
    重写UIPageControl实现自定义按钮(转)
    乔布斯办公室语录
    学ACM算法题有用吗?
    基于文法分析的表达式计算器的实现
    我的程序员之路(5)——工作一年
    XCode实用快捷键,谁用谁知道
    LR(1)语法分析表生成
    九大定律,四大原则
    汉字为何不能用笔画编码信息论系列
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4041422.html
Copyright © 2011-2022 走看看