第一步:
在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);
}
- 检查IIC总线和供电线是否连接正确
使用该链接中的程序 ESP8266获取外设IIC地址 检查PCF8591的IIC地址,并把
if (!pcf.begin()) { Serial.println("# Adafruit PCF8591 not found!");
替换成:
if (!pcf.begin(0x48)) { Serial.println("# Adafruit PCF8591 not found!"); //0x48是通过查询IIC地址的程序查询出的PCF8591IIC地址
使用Wire.h库修改ESP8266的模拟IIC串口为其他GPIO
#include <Wire.h>//导入Wire.h函数库 void setup() { //在上述程序的setup函数中添加Wire.begin(0,2);使用GPIO0和GPIO2作为IIC通信串口 Serial.begin(115200); while (!Serial) delay(10); Wire.begin(0,2);
本文共 175 个字数,平均阅读时长 ≈ 1分钟
评论 (0)