You are on page 1of 1

FILIERE : MECATRONIQUE Elément de module

2ème ANNEE Cycle Ingénieur PROGRAMMATION C POUR SYSTEMES EMBARQUES

CORRECTION DES TD/TP

CORRECTION TRAVAIL N°2

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/adc.h"
#include "esp_adc_cal.h"

adc1_channel_t adc_ldr = ADC1_CHANNEL_0;


#define LED_PIN 22
#define SEUIL 500
static esp_adc_cal_characteristics_t adc1_chars;
uint32_t voltage;
int lum_value
void app_main(void)
{
gpio_set_direction(LED_PIN, GPIO_MODE_OUTPUT);
esp_adc_cal_characterize(ADC_UNIT_1, ADC_ATTEN_DB_11, ADC_WIDTH_BIT_12Bit, 0, &adc1_chars);
adc1_config_width(ADC_WIDTH_BIT_12Bit);
adc1_config_channel_atten(adc_ldr, ADC_ATTEN_DB_11);
while (1)
{
lum_value = adc1_get_raw(adc_ldr);
printf("ADC Value: %d \n", lum_value);
voltage = esp_adc_cal_raw_to_voltage(lum_value, &adc1_chars);
printf("Voltage: %d mV \n", voltage);

if (lum_value < SEUIL)


{
gpio_set_level(LED_PIN, 1); // turn on LED
}
else
{
gpio_set_level(LED_PIN, 0); // turn off LED
}
vTaskDelay(500/ portTICK_PERIOD_MS);
}
}

ESI2A - HANAFI AHMED 1

You might also like