ESP8266连接PCF8591外设的部分问题及解决方法

星星
2023-01-24 / 0 评论 / 188 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年02月05日,已超过654天没有更新,若内容或图片失效,请留言反馈。

第一步:
 在Arduino IDE中点击 工具>管理库>搜索PCF8591,安装Adafruit PCF8591的库包。
第二步:
 连接好PCF8591和ESP8266的IIC通信线。
第三步:
 在Arduino IDE中点击 文件>示例>Adafruit PCF8591 打开PCF8591的示例文件,上传运行即可。

PCF8591示例文件:

#include <Adafruit_PCF8591.h>
// 设置VCC电压为5V,可更改为3.3V
#define ADC_REFERENCE_VOLTAGE 5.0 
Adafruit_PCF8591 pcf = Adafruit_PCF8591();

void setup() {
  Serial.begin(115200);
  while (!Serial)
    delay(10);

  Serial.println("# Adafruit PCF8591 demo");
  if (!pcf.begin()) {
    Serial.println("# Adafruit PCF8591 not found!");
    while (1)
      delay(10);
  }
  Serial.println("# Adafruit PCF8591 found");
  pcf.enableDAC(true);

  Serial.println("AIN0, AIN1, AIN2, AIN3");
}

uint8_t dac_counter = 0;

void loop() {
  // Make a triangle wave on the DAC output
  pcf.analogWrite(dac_counter++);

  Serial.print(int_to_volts(pcf.analogRead(0), 8, ADC_REFERENCE_VOLTAGE));
  Serial.print("V, ");
  Serial.print(int_to_volts(pcf.analogRead(1), 8, ADC_REFERENCE_VOLTAGE));
  Serial.print("V, ");
  Serial.print(int_to_volts(pcf.analogRead(2), 8, ADC_REFERENCE_VOLTAGE));
  Serial.print("V, ");
  Serial.print(int_to_volts(pcf.analogRead(3), 8, ADC_REFERENCE_VOLTAGE));
  Serial.print("V");
  Serial.println("");
  delay(1000);
}

float int_to_volts(uint16_t dac_value, uint8_t bits, float logic_level) {
  return (((float)dac_value / ((1 << bits) - 1)) * logic_level);
}

本文共 175 个字数,平均阅读时长 ≈ 1分钟
3

评论 (0)

取消