Micropython通用控制


1 . pyb

import pyb 

pyb.delay(50)        #延時50毫秒
pyb.millis()         #返回開機后運行時間
pyb.repl_uart(pyb.UART(1,9600))    #指定repl到串口1
pyb.wfi()     #暫停cpu等待中斷喚醒
pyb.freq()    #返回cpu的總線頻率
pyb.freq(60000000)    #設置cpu頻率為60MHZ
pyb.stop()         #停止cpu,等待外部中斷喚醒

2. LED控制

from pyb import LED

led = LED(1)    #指定紅色led,實例化
led.toggle()    #翻轉led
led.on()      #開led
led.off()      #關led

3. Pins和GPIO的使用

from pyb import Pin

p_out = Pin('X1',Pin.OUT_PP)    #x1設置為輸出
p_out.hight()    #輸出高電平
p_out.low()      #輸出低電平

p_in = Pin('X2',Pin.IN,Pin.PULL_UP)    #x2設置為輸入,並使能內部上拉電阻
p_in.value()    #都取電平

 4. 舵機控制

from pyb import Servo
s1 = Servo(1)      #使用X1控制(x1,VIN,GND)
s1.angle(45)       #轉到45°
s1.angle()              #返回現在的角度數 
s1.angle(-60,150是0)    #1500ms內轉到-60°

s1.speed(90)        #轉動90°角

5. 外部中斷

from pyb import Pin,ExtInt

callback = lambda e :print("interrupt")    #設置回調函數
ext ExtInt(Pin('Y1'),ExtInt.IRQ_RISNG,Pin.PULL_NONE,callback) #設置外中斷

6. 定時器

from pyb import Timer

tim =Timer(1,freq=1000) #定義定時器1,工作頻率是1000hz
tim.counter()    #讀取計數器
tim.freq(0.5)    #設定定時器頻率為0.5hz
tim.callback(lambda t:pyb.LED(1).toggle())  #設置回調函數

7 . PWM

from pyb import Pin,Timer

p = Pin('X1')    #X1是定時器2的ch1
tim = Timer(2,freq=1000)
ch = tim.channel(1,Timer.PWM,pin=p)    #設置pwm引腳
ch.pulse_width_percent(5))             #設置pwm輸出占空比

8 . ADC(模數轉換)

from pyb import Pin,ADC

adc = ADC(Pin('X19'))  #設置ADC輸入引腳
adc.read()    #讀取adc轉換的結果,默認是12為方式,參數范圍0~4095

9. DAC(數模轉換)

from pyb import Pin,DAC

dac = DAC(Pin('X5'))  #設置DAC輸出引腳
dac.write(120)           #設置輸出電壓,默認8位模式,參數0~255

10. UART(串口)

from pyb import UART    

uart = UART(1,9600)    #設置串口號以及波特率
uart.write('hello')         #輸出
uart.read(5)                #最多讀取5個字節

11. SPI總線

from pyb import SPI

spi = SPI(1,SPI.MASTER,baudrate=200000,polarity=1,phase=0)  #設置SPI參數
spi.send('hello')  #發送數據
spi.recv(5)         #讀取5個字節
spi.send_recv('hello')  #發送並接收5個字節

12. I2C總線

from pyb import I2C

i2c = I2C(1,I2C.MASTER,baudrate=100000)  #設置I2C參數
i2c.scan()   #搜索總線上設備
i2c.send('hello',0x42)  #發送5個字節到地址0x42
i2c.recv(5,0x42)        #從地址0x42接收5個字節
i2c.mem_read(2,0x42,0x10)      #從0x42設備中的內存0x010處讀取2個字節
i2c.mem_write('xy',0x42,0x10)  #寫入2個字節到設備0x42的內存地址0x10

 13. 加速度傳感器

from pyb import Accel,delay
acc = Accel()
acc.x()  #讀取x軸參數
while True:
    print(acc.x(),acc.y(),acc.z())  #打印三軸的數據
    delay(500)

14. 驅動oled

from machine import I2C
i2c=machine.I2C(1)
from ssd1306 import SSD1306_I2C
oled = SSD1306_I2C(128,64,i2c)
oled.text("hello world!",0,0)
oled.show()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM