小结
摇杆模块
摇杆
用的是两轴五针摇杆
pcf8591转换ad接口
备注: 接线用AIN0,AIN1,AIN2
程序
import time
from machine import Pin,I2C
i2c = I2C(scl=Pin(5), sda=Pin(4), freq=100000)
PCF8591 = 0x48
PCF8591_ADC_CH0 = '\x40'
PCF8591_ADC_CH1 = '\x41'
PCF8591_ADC_CH2 = '\x42'
PCF8591_ADC_CH3 = '\x43'
def rocker_x():
i2c.writeto(PCF8591, PCF8591_ADC_CH0)
data_x = i2c.readfrom(PCF8591, 1)
print(data_x)
return str(ord(chr(data[0])))
def rocker_y():
i2c.writeto(PCF8591, PCF8591_ADC_CH1)
data_y = i2c.readfrom(PCF8591, 1)
print(data_y)
return str(ord(chr(data[0])))
def rocker_sw():
i2c.writeto(PCF8591, PCF8591_ADC_CH0)
data_sw = i2c.readfrom(PCF8591, 2)
print(data_sw)
return str(ord(chr(data[0])))
程序原理
因为摇杆是ad信号而esp8266只有d0一路ad接口然后pcf8591把这些改成不同地址的i2c信号来输出
ad信号原理:
给摇杆电压比如向上电压变高向下变低由此来检测大小
显示模块
oled
用四针的要vcc接3.3v
程序
from machine import Pin, I2C
import ssd1306
i2c = I2C(scl=Pin(15), sda=Pin(3), freq=100000)
display = ssd1306.SSD1306_I2C(128, 64, i2c)
def open():
display.fill(1)
def off():
display.fill(0)
def oled_txt(data_txt):
display.fill(0)
display.fill(1)
display.text(data_txt,0,0,1)
display.show()
气泵模块
继电器
继电器要用5v供电就是Vin气泵接常开
电池盒
用的是18650串联的电池盒提供7v电压用来驱动气泵因为esp8266承受不住超过5v的电压所以要用继电器
程序
import time
from machine import Pin
# 就是用引脚十来控制开关
d2 = Pin(1,Pin.OUT)
def air_pump_on():
d2.on()
def air_pump_off():
d2.off()
版权声明:本文为skywalle原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。