esp32-s32 ADC读写
1、采集滑动变阻器的模拟(https://wokwi.com/projects/436709906600651777)
①、连接电路图

②、编写模拟输入采集
#define ANAL_SIG_PIN 14
void setup(){
Serial.begin(115200);
pinMode(ANAL_SIG_PIN, INPUT);
}
void loop(){
unsigned int adc_val = 0;
float volt_val = 0.0;
adc_val = analogRead(ANAL_SIG_PIN);
volt_val = adc_val / 4095.0 * 3.3;
Serial.printf("ADC value: %d, \t Voltage: %0.2fV\r\n", adc_val, volt_val);
delay(1000);
}
③、输出采样数据

2、PWM输出模拟量
①、连接电路

②、定义引脚
#define ANAL_SIG_PIN 1
#define LED_PWN_PIN 14
#define PWM_FREQ 1000
#define PWM_BIT 12
#define PWM_CHAN 0
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32-S3!");
pinMode(ANAL_SIG_PIN, INPUT);
ledcAttachChannel(LED_PWN_PIN, PWM_FREQ, PWM_BIT, PWM_CHAN);
}
void loop() {
unsigned int adc_val = 0;
float volt_val = 0.0;
unsigned int pwm_val = 0;
adc_val = analogRead(ANAL_SIG_PIN);
volt_val = adc_val / 4095.0 * 3.3;
Serial.printf("ADC value: %d, \t Voltage: %0.2fV\r\n", adc_val, volt_val);
pwm_val = adc_val;
ledcWrite(LED_PWN_PIN, pwm_val);
delay(1000);
}
③、输出结果


浙公网安备 33010602011771号