日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

micropython仿真器_Micropython教程之TPYBoard DIY超声波测距仪实例演示

發布時間:2023/12/10 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 micropython仿真器_Micropython教程之TPYBoard DIY超声波测距仪实例演示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.實驗目的

1. 學習在PC機系統中擴展簡單I/O?接口的方法。

2. 進一步學習編制數據輸出程序的設計方法。

3. 學習超聲波模塊的測距原理。

4. 學習LCD5110接線方法

5. 學習TPYboard控制超聲波模塊測距。(蘿卜學科編程教育tpyboard。com)

2.所需元器件

超聲波模塊一個

TPYBoard板子一塊

5110LCD顯示屏一個

數據線一條

杜邦線若干

3.超聲波模塊工作原理

(1)采用IO口TRIG觸發測距,給最少10us的高電平信呈。

(2)模塊自動發送 8 個 40khz 的方波,自動檢測是否有信號返回。

(3)有信號返回,通過 IO 口 ECHO 輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間。測試距離=(高電平時間*聲速(340M/S))/2。

如下圖接線,VCC 供 5V電源, GND 為地線,TRIG 觸發控制信號輸入,ECHO 回響信號輸出等四個接口端。。(蘿卜學科編程教育tpyboard。com)

4.控制5110顯示屏顯示6x8字符

先看一下LCD5110針腳含義吧(注意:LCD5110的針腳有些不一樣的)

TPYBoard的針腳與5110的針腳對應關系如下:

TPYBoard LCD5110 memo

————————————————————————————

# any Pin => RST Reset pin (0=reset, 1=normal)

# any Pin => CE Chip Enable (0=listen for input, 1=ignore input)

# any Pin => DC Data/Command (0=commands, 1=data)

# MOSI => DIN data flow (Master out, Slave in)

# SCK => CLK SPI clock

# 3V3 or any Pin => VCC 3.3V logic voltage (0=off, 1=on)

# any Pin => LIGHT Light (0=on, 1=off)

# GND => GND

還是看不明白的話,直接上針腳編號吧

TPYBoard LCD5110 memo

————————————————————————————

Y10 => RST Reset pin (0=reset, 1=normal)

Y11 => CE Chip Enable (0=listen for input, 1=ignore input)

Y9 => DC Data/Command (0=commands, 1=data)

X8 => DIN data flow (Master out, Slave in)

X6 => CLK SPI clock

VCC

Y12 => LIGHT Light (0=on, 1=off)

GND

接線ok后,并且導入font.py文件和upcd8544.py文件,編寫main.py將測到的距離顯示在5110顯示屏上,運行main.py就ok了。(font.py和upcd8544.py可以從官網上下載,最后會告訴下載地址)。。(蘿卜學科編程教育tpyboard。com)

5.源代碼

import pyb

from pyb import Pin

from pyb import Timer

import upcd8544

from machine import SPI,Pin

Trig = Pin('X2',Pin.OUT_PP)

Echo = Pin('X1',Pin.IN)

num=0

flag=0

run=1

def start(t):

global flag

global num

if(flag==0):

num=0

else:

num=num+1

def stop(t):

global run

if(run==0):

run=1

start1=Timer(1,freq=10000,callback=start)

stop1=Timer(4,freq=2,callback=stop)

while True:

if(run==1):

SPI = pyb.SPI(1) #DIN=>X8-MOSI/CLK=>X6-SCK

#DIN =>SPI(1).MOSI 'X8' data flow (Master out, Slave in)

#CLK =>SPI(1).SCK 'X6' SPI clock

RST = pyb.Pin('Y10')

CE = pyb.Pin('Y11')

DC = pyb.Pin('Y9')

LIGHT = pyb.Pin('Y12')

lcd_5110 = upcd8544.PCD8544(SPI, RST, CE, DC, LIGHT)

Trig.value(1)

pyb.udelay(100)

Trig.value(0)

while(Echo.value()==0):

Trig.value(1)

pyb.udelay(100)

Trig.value(0)

flag=0

if(Echo.value()==1):

flag=1

while(Echo.value()==1):

flag=1

if(num!=0):

#print('num:',num)

distance=num/10000*34000/2

print('Distance')

print(distance,'cm')

lcd_5110.lcd_write_string('Distance',0,0)

lcd_5110.lcd_write_string(str(distance),6,1)

lcd_5110.lcd_write_string('cm',58,1)

lcd_5110.lcd_write_string('This is a test of Distance',0,2)

flag=0

run=0

總結

以上是生活随笔為你收集整理的micropython仿真器_Micropython教程之TPYBoard DIY超声波测距仪实例演示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。