拆弹专家【爆改车间主任】学习笔记(2)小结

  • Post author:
  • Post category:其他


小结



摇杆模块



摇杆

用的是两轴五针摇杆

备注接线可用3.3v(但电压要和pcf8591一样    )



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 版权协议,转载请附上原文出处链接和本声明。