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()

猜你喜欢

转载自www.cnblogs.com/iBoundary/p/11262187.html