智能系统中的嵌入式应用-I2C及7段数码管

智能系统中的嵌入式应用-I2C及7段数码管

SYuan03 Lv4

今天的内容主要是I2C的学习和使用

很多地方不太专业,全凭个人胡乱理解

Python异常处理

老规矩还是先讲了会python

这部分没怎么听,虽然不太记得了但感觉可能用处不大

课上讲了个os和给程序传args比较有用


7位数码管的使用

简介

一开始就只有7段,所以叫7位数码管,后来右下角加了个.成了8段了,但已经叫习惯了

如何接线

image-20230425233924548 image-20230425233757865

老师课上画的图

用4根两头孔的线连接,2根电源,1根SDA,1根SCL

VCC接5V/3.3V(5V会好一点

GND接地(树莓派上的GND

SDA->SDA1

SCL->SCL1

树莓派引脚

image-20230428094607658

尽量不要使用GPIO14和GPIO15,为什么我也不知道

VCC尽量选5V的

终端使用注意(写代码前先检测下驱动

1
2
3
4
5
6
7
# 首先安装驱动
modprobe i2c-dev
modprobe i2c-bcm2835
ls /dev/i2c-1
# 显示/dev/i2c-1

i2cdetect -y 1 # 能显示出控制寄存器及对应设备的地址

控制寄存器和对应设备

image-20230509165656273

24所在行就是下一行设备对应的控制器

1.使用方法就是先向控制寄存器输入写入一些内容,就将其开启(或者关闭,还能控制显示亮度)

具体如下:

image-20230509165944792

2.然后就可以向下面他对应的控制的设备写入内容来控制显示什么内容了

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
from smbus2 import SMBus
import time

inputNumber = 0

def getInputNumber():
global inputNumber
inputNumber = int(input("Please input a number: "))

my_table = dict()
my_table['0'] = 0x3f
my_table['1'] = 0x06
my_table['2'] = 0x5b
my_table['3'] = 0x4f
my_table['4'] = 0x66
my_table['5'] = 0x6d
my_table['6'] = 0x7d
my_table['7'] = 0x07
my_table['8'] = 0x7f
my_table['9'] = 0x6f

led = SMBus(bus=1)

# quan liang
led.write_byte(0x24, 0x01)
led.write_byte(0x25, 0x11)
led.write_byte(0x26, 0x21)
led.write_byte(0x27, 0x31)

led.write_byte(0x34, my_table['0'])
led.write_byte(0x35, my_table['5'])
led.write_byte(0x36, my_table['2'])
led.write_byte(0x37, my_table['0'])

getInputNumber()

seconds_left = inputNumber
while True:
# xianshi
min = seconds_left // 60
sec = seconds_left % 60
min_str1 = str(min)
min_str2 = min_str1.zfill(2)

sec_str1 = str(sec)
sec_str2 = sec_str1.zfill(2)

led.write_byte(0x34, my_table[min_str2[0]])
led.write_byte(0x35, my_table[min_str2[1]])
led.write_byte(0x36, my_table[sec_str2[0]])
led.write_byte(0x37, my_table[sec_str2[1]])

time.sleep(1)
seconds_left -= 1
  • 标题: 智能系统中的嵌入式应用-I2C及7段数码管
  • 作者: SYuan03
  • 创建于 : 2023-04-25 23:19:13
  • 更新于 : 2024-03-10 20:04:30
  • 链接: https://bblog.031105.xyz/posts/2023-Summer-Courses-嵌入式开发/智能系统中的嵌入式应用-i2c及7段数码管.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论