沈阳网站搜索排名,学php做网站,手机赚钱项目大全网,设计说明英文翻译MicroPython顾名思义就是可以在单片机上跑的Python#xff0c;借助Micro Python#xff0c;用户完全可以通过Python脚本语言实现硬件底层的访问和控制#xff0c;比如说控制LED灯泡、LCD显示器、读取电压、控制电机、访问SD卡等。目前支持MicroPython的开发板有好几种#…MicroPython顾名思义就是可以在单片机上跑的Python借助Micro Python用户完全可以通过Python脚本语言实现硬件底层的访问和控制比如说控制LED灯泡、LCD显示器、读取电压、控制电机、访问SD卡等。目前支持MicroPython的开发板有好几种下面就以TPYBoard为例简单介绍一下简易温度传感器的制作方法。1、实验目的
1. 学习在PC机系统中扩展简单I/O 接口的方法。
2. 进一步学习编制数据输出程序的设计方法。
3. 学习DS18B20的接线方法并利用DS18B20检测当前温度
3. 学习8*8LED点阵接线方法并将当前温度显示
2、所需元器件
TPYBoard板子一块
数据线一条
杜邦线若干
8*8LED点阵一个
DS18B20温度传感器一个
3、学习DS18B20的接线方法检测当前温度先看一下DS18B20针脚含义,如上图
TPYBoard的针脚与DS18B20的针脚对应关系如下
TPYBoard DS18B20
----------------
# 3V3 or any Pin VDD
# any Pin DO
# GND GND
还是看不明白的话直接上针脚编号
TPYBoard LCD5110
----------------------------
3.3v VDD
GND GND
Y10 DO
接线ok后在MicroPython的源码目录中进入drivers\onewire\目录然后将目录下的文件ds18x20.py和onewire.py复制到PYBFLASH磁盘的根目录。复制文件后要安全退出磁盘然后重新接入不然找不到文件即可运行main.py文件了打印温度即可用Putty看到当前的温度。
main.py源代码
#main.py
import pyb
from pyb import Pin
from ds18x20 import DS18X20
Pin(Y11,Pin.OUT_PP).low()#GND
Pin(Y9,Pin.OUT_PP).high()#VCC
pyb.delay(100)
DQDS18X20(Pin(Y10))#DQ
while True:
tem DQ.read_temp()
print(tem)
pyb.delay(1000)
4、点亮8*8LED点阵点阵后面有两排针脚一排以1开头即1-8针脚一排以9开头即9-16针脚上图中〇中的数字对应的即为针脚的对应的数字当ROW 的PIN NO.高电平COL PIN NO.低电平时候我们的LED即全部点亮了为了方便操作行和列我们可以将ROW的8个引脚接到我们TPYBoard的X1-X8COL的8个引脚接到我们TPYBoard的Y1-Y8这样我们控制X引脚Y引脚就可以控制哪个点亮跟灭了想显示任何字都没问题快来试试吧。
5、点将温度显示在8*8LED点阵上
接线成功以后我们将测试出温度通过分割函数将十位个位小数点以及后面的数字显示出来代码如下
import pyb
from pyb import Pin
from ds18x20 import DS18X20
x_PIN [Pin(i, Pin.OUT_PP) for i in [X1,X2,X3,X4,X5,X6,X7,X8]]
y_PIN [Pin(i, Pin.OUT_PP) for i in [Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8]]
temp[0000,0110,0110,0110,0110,0110,0110,0000,1101,1101,1101,1101,1101,1101,1101,1101,
0000,1110,1110,0000,0111,0111,0111,0000,0000,1110,1110,0000,1110,1110,1110,0000,
0101,0101,0101,0000,1101,1101,1101,1101,0000,0111,0111,0000,1110,1110,1110,0000,
0000,0111,0111,0000,0110,0110,0110,0000,0000,1110,1110,1110,1110,1110,1110,1110,
0000,0110,0110,0000,0110,0110,0110,0000,0000,0110,0110,0000,1110,1110,1110,0000]
tempValue0
def show(l_num,r_num):
flag0
for x_ in range(0,8):
for x_ in range(0,8):
if x_!flag:
x_PIN[x_].value(0)
left_ temp[l_num]
left_itemleft_.split(,)
right_ temp[r_num]
right_itemright_.split(,)
li_lleft_item[flag]
li_rright_item[flag]
y_PIN[0].value(int(li_l[:1]))
y_PIN[1].value(int(li_l[1:2]))
y_PIN[2].value(int(li_l[2:3]))
y_PIN[3].value(int(li_l[3:4]))
y_PIN[4].value(int(li_r[:1]))
y_PIN[5].value(int(li_r[1:2]))
y_PIN[6].value(int(li_r[2:3]))
y_PIN[7].value(int(li_r[3:4]))
x_PIN[flag].value(1)
flagflag1
pyb.delay(2)
def display(time_,l_num,r_num):
for x in range(0,time_):
for y in range(0,110):
show(l_num,r_num)
if __name____main__:
#time_tTimer(4,freq5,callbackrandSensor)
DQDS18X20(Pin(Y10))#DQ
while 1:
tempValue int(DQ.read_temp())
print(tempValue)
l_ntempValue//10
r_ntempValue%10
print(l_n)
print(r_n)
display(60,l_n,r_n)
for i in x_PIN:
i.value(0)