ASM 板


LINE

看板 ASM  RSS
我买的LED数字显示是用两片74CH595 总共可以显示4个数字 http://i.imgur.com/xp5mHZk.jpg
http://i.imgur.com/QHgEZzB.jpg
爬了一下文发现是用视觉暂留的方法轮流显示数字 现在我要搭配DS18B20水温感测器 我发现几个问题 1. 取DS18B20感测器温度时用的sensors.requestTemperatures(); 似乎会让程式停顿一下 变成前面三位数字很快闪过 只剩下最後一个数字一直亮着 2. 前三个数字变得暗暗的 最後一个数字很明亮 http://i.imgur.com/SmBddP1.jpg
想知道是我哪边写不对吗? 能不能改善这两个情况 谢谢 程式码: #include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS 3 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); const byte dataPin = 7; // 74HC595 序列脚接「数位 7」 //DIO const byte latchPin = 6; // 74HC595 暂存器时脉脚接「数位 6」//RCK const byte clockPin = 5; // 74HC595 序列时脉脚接「数位 5」//SCK int index = 0; // 七段显示器的数字索引 int temp; int first = 0; int second = 0; int third = 0; int fourth = 0; const byte LED[10] = { // 记录0~9的七段数字 B00111111, B00000110, B01011011, B01001111, B01100110, B01101101, B01111101, B00100111, B01111111, B01101111, }; const byte LED_P[10] = { // 记录0~9的七段数字 B10111111, B10000110, B11011011, B11001111, B11100110, B11101101, B11111101, B10100111, B11111111, B11101111, }; void setup() { // put your setup code here, to run once: Serial.begin(115200); Serial.println("Temperature Sensor"); // 初始化 sensors.begin(); pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); } void loop() { sensors.requestTemperatures(); temp = sensors.getTempCByIndex(0) * 100; fourth = temp % 10; temp = temp / 10; third = temp % 10; temp = temp / 10; second = temp % 10; temp = temp / 10; first = temp % 10; digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, LED[first]); shiftOut(dataPin, clockPin, MSBFIRST, 0xFE); digitalWrite(latchPin, HIGH); digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, LED_P[second]); shiftOut(dataPin, clockPin, MSBFIRST, 0xFD); digitalWrite(latchPin, HIGH); digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, LED[third]); shiftOut(dataPin, clockPin, MSBFIRST, 0xFB); digitalWrite(latchPin, HIGH); digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, LED[fourth]); shiftOut(dataPin, clockPin, MSBFIRST, 0xF7); digitalWrite(latchPin, HIGH); } --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.121.71.185
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/ASM/M.1528191163.A.51E.html ※ 编辑: rrr518 (140.121.71.185), 06/05/2018 17:44:32
1F:→ cs8425: 测一下OneWire大概要跑多久 自己规划7段显示的刷新频率 06/05 18:17
2F:→ cs8425: 把执行时间错开 不要直接丢loop硬跑 06/05 18:17
我用了timer 效果好像还是... 有别的错开时间的方法吗?
3F:→ rrr518: 我用了thread也没办法... 06/05 22:32
4F:→ cs8425: 因为是视觉暂留 亮度跟输出的时间有关 06/06 00:08
5F:→ cs8425: 亮度要一样 >> 输出时间要一样 06/06 00:08
6F:→ cs8425: >> 两个latchPin High之间的时间要维持一样 06/06 00:09
7F:→ cs8425: micros() 、millis() 这两个函数请善用 06/06 00:10
8F:→ rrr518: 我研究看看 谢谢你! 06/06 01:17
9F:→ xexexptt: 因为前3位数亮的时间只有到下一位数shift完成 06/06 15:42
10F:→ xexexptt: 而最後一位数亮的时间包含读sensor以及计算的时间 06/06 15:43
11F:→ xexexptt: 因此会最亮 06/06 15:43
12F:→ xexexptt: 你可在每位数shift完之後加一个小小delay 06/06 15:44
13F:→ xexexptt: 最後一位显示完delay之後把显示关掉,这样亮度就会一致 06/06 15:46
我有试过加上小delay 但是效果不是很好 他会变成肉眼就看得见的每个数字独立显示ˊ ˋ
14F:推 nissptt: 爷,你要不要试试TM1637这种?还能当时钟! 不必考虑扫描 06/06 17:50
15F:→ nissptt: ,让cpu闲闲没事做最爽啦!而且只要两只脚,含LED整个模 06/06 17:50
16F:→ nissptt: 组30元上下就有。 06/06 17:50
!! 这个感觉很棒!
17F:→ dsplab: Arduino最大缺点就是没法精确控制时间 06/06 19:15
真的QQ
18F:→ cs8425: 楼上 不是不能精确 而是精度有限 10^-6秒差不多是极限 06/08 17:41
19F:→ art1: 七段显示器最後一位数很亮的原因可能是更新太频繁了 06/09 16:00
20F:推 art1: 不懂为什麽三个七段显示器用LED[],一个用LED_P[] 06/09 16:32
因为我读取的温度在第二位会有小数点 LED_P是有小数点的数字
21F:推 art1: 也看不懂为什麽要送出两次资料,如果第二次的资料是关於不同 06/09 16:46
22F:→ art1: 的七段显示器,那怎麽没有控制七段显示器开启或关闭的程式码 06/09 16:47
23F:→ art1: 视觉暂留的效果是靠着每次只显示一个七段显示器来达成的 06/09 16:48
24F:→ art1: 因此一个开,其他三个就要关 06/09 16:49
25F:推 art1: 好像看懂了,第二笔资料就是用来控制comPin的,一次亮一个 06/09 17:10
对 这个我其实不太懂原理 跟我上网查资料的说法不太一样QQ ※ 编辑: rrr518 (140.121.71.185), 06/11/2018 19:14:04
26F:推 nissptt: 换TM1637吧!四位数只要两条线,也不必管扫描,这样cpu才 06/12 20:10
27F:→ nissptt: 能做各种事情,任意添加新功能啊。 06/12 20:10
28F:→ rrr518: 这个我真的觉得很棒!!XDDD 06/13 16:47







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP