esp32-s32 ADC读写

1、采集滑动变阻器的模拟(https://wokwi.com/projects/436709906600651777)
①、连接电路图
image
②、编写模拟输入采集

#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); 
}

③、输出采样数据
image

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

②、定义引脚

#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); 
}

③、输出结果
image

posted @ 2025-07-17 17:28  zbl1118  阅读(54)  评论(0)    收藏  举报