#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include <driver/adc.h>
// Definiciones
#define ADC1_CHANNEL ADC1_CHANNEL_0 // Canal ADC1 para la fotoresistencia
#define ADC_WIDTH ADC_WIDTH_BIT_12 // Precisión del ADC (12 bits)
#define ADC_ATTEN ADC_ATTEN_DB_11 // Atenuación del ADC (11 dB)
// Función para configurar el ADC
void configurar_adc()
{
adc1_config_width(ADC_WIDTH); // Configura la precisión a 12 bits
adc1_config_channel_atten(ADC1_CHANNEL, ADC_ATTEN); // Configura la atenuación para el sensor de luz
}
// Función para convertir el valor ADC a voltaje
float adc_to_voltage(int adc_value)
{
// Convertir el valor ADC (0-4095) a voltaje (0-3.3V)
return (float)adc_value * 3.3 / 4095.0;
}
void app_main() {
configurar_adc();
while (true) {
// Leer valor crudo del ADC
int adc_value = adc1_get_raw(ADC1_CHANNEL);
// Convertir el valor ADC a voltaje
float voltage = adc_to_voltage(adc_value);
// Imprimir los valores
printf("Valor ADC: %d, Voltaje: %.2f V\n", adc_value, voltage);
// Esperar 1 segundo
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}