四位数码管SH5461AS的问题,arduino学习实测.
arduino入门教程到第16课遇到些问题.效果一直是混乱的状态.
琢磨了半天发现一些问题,和大家分享下
1)接线图,原图没有问题,只是比较含糊,线比较多不好看. 我用红色数字标示数码管的12个脚,并且用蓝色数字标示出对应arduino的脚

2)程序问题(这个问题比较离谱)
刚开始按照示例怎么都没办法出效果,突发奇想,将所有的高低电平兑换.然后一切都和谐了,后来查了共阴共阳的原理图发现原来的代码可能是共阳的.
下面是我的代码:
int y[8] = {1,2,3,4,5,6,7,8};
int d[4] = {12,11,10,9};
int digital[10][8] = {{6,y[0],y[1],y[2],y[3],y[4],y[5]},{2,y[1],y[2]},{5,y[0],y[1],y[3],y[4],y[6]},{5,y[0],y[1],y[2],y[3],y[6]},{4,y[1],y[2],y[5],y[6]},{5,y[0],y[2],y[3],y[5],y[6]},{6,y[0],y[2],y[3],y[4],y[5],y[6]},{3,y[0],y[1],y[2]},{7,y[0],y[1],y[2],y[3],y[4],y[5],y[6]},{6,y[0],y[1],y[2],y[3],y[5],y[6]}};
long n=0;
int x=100;
int del=55;
void setup(){
for(int i=0;i<8;i++)
pinMode(y[i],OUTPUT);
for(int i=0;i<4;i++)
pinMode(d[i],OUTPUT);
}
void clearLEDs(){
for(int i=0;i<8;i++)
digitalWrite(y[i],LOW);
}
void pickDigit(int x){
for(int i=0;i<4;i++)
digitalWrite(d[i],HIGH);
if(x>4) x=4;
digitalWrite(d[x-1],LOW);
}
void showDigital(int x){
for(int i=1;i<=digital[x][0];i++)
digitalWrite(digital[x][i], HIGH);
}
void disp(int x){
digitalWrite(y[7],HIGH);
}
void loop(){
clearLEDs();
pickDigit(1);
showDigital((n/x/1000)%10);
delayMicroseconds(del);
clearLEDs();
pickDigit(2);
showDigital((n/x/100)%10);
delayMicroseconds(del);
clearLEDs();
pickDigit(3);
disp(3);
showDigital((n/x/10)%10);
delayMicroseconds(del);
clearLEDs();
pickDigit(4);
showDigital(n/x%10);
delayMicroseconds(del);
n++;
if(digitalRead(13) == LOW){
n=0;
}
}
最后是效果图和效果视频

四位数码管SH5461AS的问题,arduino学习实测.的更多相关文章
- Arduino学习笔记① 初识Arduino
1.前言 近段时间,博主陆续更新了ESP8266学习笔记,主要开发平台是Arduino.但是,对于很多无基础的初学者来说,甚至不了解Arduino是什么.因此,博主决定加入一个Arduino学 ...
- 在树莓派Zero上使用C#+Mono驱动TM1637四位数码管
最近闲着无聊,买了个树莓派Zero,准备在上面跑.Net Core,来驱动各种传感器 就是上面这货.之前手上已经有一个树莓派3B+,但是介于3B+已经被我挂在路由器旁边当做服务器用,不是很方便拿来研究 ...
- Arduino学习经验(一)之解决舵机库和pwm输出冲突
一.前言 最近在公司学习Arduino uno ,用它实现小车超声波避障功能.实现的功能很简单,就是在小车前方挂一个超声波模块,当碰到障碍物时,会通过舵机进行摆头,判断两边的距离,进行左右转弯.但是碰 ...
- Arduino学习笔记⑤ 模拟IO实验
1.前言 还记得前几个我们都是在讲解数字IO,而其实我们生活中大多数信号都是模拟信号,如声音以及温度变化.在Arduino中,常用0~5v的电压来表示模拟信号. 1.1 模拟输入功能 ...
- Arduino学习笔记② Arduino语言基础
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- Arduino—学习笔记—基础语法
图解 函数具体讲解 pinMode(工作接脚,模式) 工作接脚 工作接脚编号(0--13与A0--A5) 模式 工作模式:INPUT或OUTPUT 例子 将8接口设置为输出模式 pinMode(8,O ...
- 基于Proteus仿真的Arduino学习(2)——LED点阵探究A(LED点阵基础)
一.前言: 随着LED的普及,以LED点阵为基础的显示设置层出不穷.例如,公交车的线路提示牌.高速公路的信息提示牌,安装在大楼上的广告屏幕等.下面,我们将由简单到复杂地探索各种LED点阵的使用方法,同 ...
- 基于Proteus仿真的Arduino学习(1)——Arduino Uno最小系统及LED的简单使用
一.前言: A.Arduino简介 Arduino是由一个欧洲开发团队于2005年冬季开发.其成员包括Massimo Banzi.David Cuartielles.Tom Igoe.Gianluc ...
- Arduino学习笔记二:修改LED点灯程序
看了开源社区的LED控制程序,开始上手代码编写,修改,下载以及调试,原文地址:http://www.arduino.cn/thread-1072-1-1.html,这个帖子写的比较通俗易懂. 自己移植 ...
随机推荐
- linux centos各种问题解决汇总
1. Linux终端启动图形化程序界面时报错: No protocol specified问题: 这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图 ...
- C Primer
如果主函数使用void main(),由于它不是当前标准强制的一个选项,因此在有些系统上不能工作,为了使代码变得简单,main函数中可以没有返回语句. 先声明变量是为了防止拼写错误导致定义一个新的变量
- 3. Android框架和工具之 xUtils(ViewUtils )
1. ViewUtils 作用: 完全注解方式就可以进行UI绑定和事件绑定. 无需findViewById和setClickListener等. 2. UI绑定 和 事件绑定 (1)UI绑定 下面我們 ...
- iOS - UI - UIActivityIndicatorView
1.UIActivityIndicatorView HUD 指示器 UIActivityIndicatorView * indicatorView = [[UIActivityIndicatorVie ...
- [Android]Handler的消息机制
最经面试中,技术面试中有一个是Handler的消息机制,细细想想,我经常用到的Handler无非是在主线程(或者说Activity)新建一个Handler对象,另外一个Thread是异步加载数据,同时 ...
- Objective-C 高级编程:iOS与OS X多线程和内存管理
<Objective-C 高级编程:iOS与OS X多线程和内存管理> 基本信息 原书名: Pro Multithreading and Memory Management for iOS ...
- XHTML文档基本结构
1.什么是XHTML 即是通常所说的DIV+CSS XHTML (可扩展文本标签语言)英文表示(eXtensiblet HeperText Markup Language) (XHTML是一个扮演着H ...
- JavaScript实现XML与JSON互转代码(转载)
下面来分享一个关于JavaScript实现XML与JSON互转例子,这里面介绍了国外的三款xml转json的例子,希望这些例子能给你带来帮助. 最近在开发在线XML编辑器,打算使用JSON做为中间格式 ...
- HDU 1598 find the most comfortable road (MST)
find the most comfortable road Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d ...
- 一.CSS工作原理
CSS全称层叠样式表,它是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言.是能够真正做到网页表现与内容分离的一种样式设计语言,能够对网页 ...