#include <stdio.h>
#include "driver/gpio.h"
#include "driver/adc.h"
#include "esp_adc_cal.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#define pot ADC1_CHANNEL_0
#define ledA 0
#define ledB 4
#define ledC 16
#define ledD 17
#define ledE 5
#define ledF 18
#define ledG 19
int i;
void ativaHexa(){
while (1) {
// Leitura do potenciômetro
int valor_pot = adc1_get_raw(pot);
// Exibe o valor lido
printf("Valor do potenciômetro: %d\n", valor_pot);
vTaskDelay(100 / portTICK_PERIOD_MS); // Delay de 100 ms
// Verificação do valor do potenciômetro e controle dos LEDs
if (valor_pot == 0) {
gpio_set_level(ledA, 1); //aceso 0
gpio_set_level(ledB, 1);
gpio_set_level(ledC, 1);
gpio_set_level(ledD, 1);
gpio_set_level(ledE, 1);
gpio_set_level(ledF, 1);
gpio_set_level(ledG, 0);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot >= 1 && valor_pot <= 292) {
gpio_set_level(ledA, 0); //aceso 1
gpio_set_level(ledB, 1);
gpio_set_level(ledC, 1);
gpio_set_level(ledD, 0);
gpio_set_level(ledE, 0);
gpio_set_level(ledF, 0);
gpio_set_level(ledG, 0);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot >= 293 && valor_pot <= 584) {
gpio_set_level(ledA, 1); //aceso 2
gpio_set_level(ledB, 1);
gpio_set_level(ledC, 0);
gpio_set_level(ledD, 1);
gpio_set_level(ledE, 1);
gpio_set_level(ledF, 0);
gpio_set_level(ledG, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot >= 585 && valor_pot <= 876) {
gpio_set_level(ledA, 1); //aceso 3
gpio_set_level(ledB, 1);
gpio_set_level(ledC, 1);
gpio_set_level(ledD, 1);
gpio_set_level(ledE, 0);
gpio_set_level(ledF, 0);
gpio_set_level(ledG, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot >= 877 && valor_pot <= 1168) {
gpio_set_level(ledA, 0); //aceso 4
gpio_set_level(ledB, 1);
gpio_set_level(ledC, 1);
gpio_set_level(ledD, 0);
gpio_set_level(ledE, 0);
gpio_set_level(ledF, 1);
gpio_set_level(ledG, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot >= 1169 && valor_pot <= 1460) {
gpio_set_level(ledA, 1); //aceso 5
gpio_set_level(ledB, 0);
gpio_set_level(ledC, 1);
gpio_set_level(ledD, 1);
gpio_set_level(ledE, 0);
gpio_set_level(ledF, 1);
gpio_set_level(ledG, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot >= 1461 && valor_pot <= 1752) {
gpio_set_level(ledA, 1); //aceso 6
gpio_set_level(ledB, 0);
gpio_set_level(ledC, 1);
gpio_set_level(ledD, 1);
gpio_set_level(ledE, 1);
gpio_set_level(ledF, 1);
gpio_set_level(ledG, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot >= 1753 && valor_pot <= 2044) {
gpio_set_level(ledA, 1); //aceso 7
gpio_set_level(ledB, 1);
gpio_set_level(ledC, 1);
gpio_set_level(ledD, 0);
gpio_set_level(ledE, 0);
gpio_set_level(ledF, 0);
gpio_set_level(ledG, 0);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot >= 2045 && valor_pot <= 2336) {
gpio_set_level(ledA, 1); //aceso 8
gpio_set_level(ledB, 1);
gpio_set_level(ledC, 1);
gpio_set_level(ledD, 1);
gpio_set_level(ledE, 1);
gpio_set_level(ledF, 1);
gpio_set_level(ledG, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot >= 2337 && valor_pot <= 2628) {
gpio_set_level(ledA, 1); //aceso 9
gpio_set_level(ledB, 1);
gpio_set_level(ledC, 1);
gpio_set_level(ledD, 1);
gpio_set_level(ledE, 0);
gpio_set_level(ledF, 1);
gpio_set_level(ledG, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot >= 2629 && valor_pot <= 2920) {
gpio_set_level(ledA, 1); //aceso A
gpio_set_level(ledB, 1);
gpio_set_level(ledC, 1);
gpio_set_level(ledD, 0);
gpio_set_level(ledE, 1);
gpio_set_level(ledF, 1);
gpio_set_level(ledG, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot >= 2921 && valor_pot <= 3212) {
gpio_set_level(ledA, 0); //aceso B
gpio_set_level(ledB, 0);
gpio_set_level(ledC, 1);
gpio_set_level(ledD, 1);
gpio_set_level(ledE, 1);
gpio_set_level(ledF, 1);
gpio_set_level(ledG, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot >= 3232 && valor_pot <= 3504) {
gpio_set_level(ledA, 1); //aceso C
gpio_set_level(ledB, 0);
gpio_set_level(ledC, 0);
gpio_set_level(ledD, 1);
gpio_set_level(ledE, 1);
gpio_set_level(ledF, 1);
gpio_set_level(ledG, 0);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot >= 3505 && valor_pot <= 3796) {
gpio_set_level(ledA, 0); //aceso D
gpio_set_level(ledB, 1);
gpio_set_level(ledC, 1);
gpio_set_level(ledD, 1);
gpio_set_level(ledE, 1);
gpio_set_level(ledF, 0);
gpio_set_level(ledG, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot >= 3797 && valor_pot <= 4094) {
gpio_set_level(ledA, 1); //aceso E
gpio_set_level(ledB, 0);
gpio_set_level(ledC, 0);
gpio_set_level(ledD, 1);
gpio_set_level(ledE, 1);
gpio_set_level(ledF, 1);
gpio_set_level(ledG, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
if (valor_pot == 4095) {
gpio_set_level(ledA, 1); //aceso F
gpio_set_level(ledB, 0);
gpio_set_level(ledC, 0);
gpio_set_level(ledD, 0);
gpio_set_level(ledE, 1);
gpio_set_level(ledF, 1);
gpio_set_level(ledG, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}
}
void app_main() {
gpio_set_direction (ledA, GPIO_MODE_OUTPUT);
gpio_set_direction (ledB, GPIO_MODE_OUTPUT);
gpio_set_direction (ledC, GPIO_MODE_OUTPUT);
gpio_set_direction (ledD, GPIO_MODE_OUTPUT);
gpio_set_direction (ledE, GPIO_MODE_OUTPUT);
gpio_set_direction (ledF, GPIO_MODE_OUTPUT);
gpio_set_direction (ledG, GPIO_MODE_OUTPUT);
adc1_config_width(ADC_WIDTH_BIT_12); // Resolução de 12 bits
adc1_config_channel_atten(pot, ADC_ATTEN_DB_11);
while(true){
ativaHexa();
}
//ativaHexa();
}