树莓派用单个LED数码管显示当前环境温度
来源:互联网 发布:js写出乘法表 编辑:程序博客网 时间:2024/04/28 02:16
搞定了单片74HC595驱动单个LED数码管之后冒出了一个想法,之前不是已经搞定了温控了嘛,那能不能把温控得到的数据让数码管显示出来,虽然目前手头只有一个可以用。那只能想粗糙点的办法了,比如说只显示整数部分,然后按位显示一下。比方说27度,那么2显示1秒钟然后暗0.5秒,接着再让7显示1秒钟,然后暗掉。这样大致还是能看清的。
电路部分就比前一篇测试74HC595的时候多加了一个18b20温控管和一个4.7K上拉电阻,温控这块具体可参见之前的文章。
代码比较丑,意思到了就行。
#coding=gbk
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
import sys
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(13,GPIO.OUT) # Serail Data
GPIO.setup(11,GPIO.OUT) # Serail Data Input
GPIO.setup(15,GPIO.OUT) # Output Data
def GetTemp(filename):
lines = open(filename,'r').readlines()
#取第二行
lineWithTemp = lines[1]
#按等于符切分
items = lineWithTemp.split('=')
#获取温度值
tempStr = items[1]
tempVal = float(tempStr) / 1000.0
return tempVal
def GetIntPart(s):
items = str(s).split('.')
return items[0]
def InputBit():
GPIO.output(11,False)
GPIO.output(11,True)
def ShowLED():
GPIO.output(15,False)
GPIO.output(15,True)
def SetData(s):
'''
s: abcdefg.
1 for on
0 for off
'''
for i in range(8):
if s[i] == '1':
GPIO.output(13,False)
else:
GPIO.output(13,True)
InputBit()
def ResetLED():
SetData('00000000')
# Output
ShowLED()
def Show(data):
if data == "1":
SetData('01100000')
if data == "2":
SetData('11011010')
if data == "3":
SetData('11110010')
if data == "4":
SetData('01100110')
if data == "5":
SetData('10110110')
if data == "6":
SetData('10111110')
if data == "7":
SetData('11100000')
if data == "8":
SetData('11111110')
if data == "9":
SetData('11110110')
if data == "0":
SetData('11111100')
if data == ".":
SetData('00000001')
if data == "-":
SetData('00000010')
ShowLED()
def main():
#温度的整型部分
tmp = GetIntPart(GetTemp("/sys/bus/w1/devices/28-0516604aecff/w1_slave"))
#取3位。
tmp = "00" + tmp
tmp = tmp[-3:]
s0 = tmp[0]
s1 = tmp[1]
s2 = tmp[2]
ResetLED()
Show(s0)
time.sleep(1)
ResetLED()
time.sleep(0.6)
Show(s1)
time.sleep(1)
ResetLED()
time.sleep(0.6)
Show(s2)
time.sleep(1)
ResetLED()
if __name__ == "__main__":
main()
- 树莓派用单个LED数码管显示当前环境温度
- Arduino + 四位LED数码管显示当前环境温度
- Arduino + Lcd1602 显示当前环境温度
- LED数码管的显示
- LED数码管显示
- 按键控制单个数码管显示
- LED数码管显示代码生成器
- 仿真LED数码管显示控件
- 单个数码管
- LED数码管
- LED数码管
- 【STM32 .Net MF开发板学习-25】LED数码管显示
- 单片机编程:让led数码管显示数字0到9
- C51单片机学习(一):LED和数码管静态显示
- PLC实验五(LED数码管显示控制)
- LED数码管的学习
- 点亮LED和数码管
- 数码管显示
- 今日开始学习C++
- lucene源码分析---9
- 单链表的翻转
- TCP协议中的三次握手和四次握手
- 关于在浏览器上直接访问工程问题
- 树莓派用单个LED数码管显示当前环境温度
- 内存管理
- 原生Js无缝滚动效果的简单实现
- HDU 1079 Calendar Game(博弈,找规律可解)
- AndroidStudio导入兼容包
- UVA 11626
- 计算机一样思考的大脑是如何练成的
- ajax实现无刷新分页功能
- 监听器(Listener)在开发中的应用