#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "rom/gpio.h"
#define ld_vm 16
#define ld_vd 4
#define ld_az 0
#define ld_am 2
#define ld_rs 15
#define ch1 34
void config_hardware();
void config_saida();
void app_main() {
bool ch1_value;
config_hardware();
config_saida();
vTaskDelay(1000 / portTICK_PERIOD_MS);
while(true){
ch1_value = gpio_get_level(ch1);
if(ch1_value == 0){
gpio_set_level(ld_vm,1);
gpio_set_level(ld_vd,1);
gpio_set_level(ld_az,1);
gpio_set_level(ld_am,1);
gpio_set_level(ld_rs,1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
gpio_set_level(ld_vm,0);
gpio_set_level(ld_vd,0);
gpio_set_level(ld_az,0);
gpio_set_level(ld_am,0);
gpio_set_level(ld_rs,0);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
else{
gpio_set_level(ld_rs,1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
gpio_set_level(ld_am,1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
gpio_set_level(ld_az,1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
gpio_set_level(ld_vd,1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
gpio_set_level(ld_vm,1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
gpio_set_level(ld_rs,0);
gpio_set_level(ld_am,0);
gpio_set_level(ld_az,0);
gpio_set_level(ld_vd,0);
gpio_set_level(ld_vm,0);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}
}
void config_hardware() {
gpio_pad_select_gpio(ld_vm);
gpio_set_direction(ld_vm, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(ld_vd);
gpio_set_direction(ld_vd, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(ld_az);
gpio_set_direction(ld_az, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(ld_am);
gpio_set_direction(ld_am, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(ld_rs);
gpio_set_direction(ld_rs, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(ch1);
gpio_set_direction(ch1, GPIO_MODE_INPUT);
gpio_pullup_en(ch1);
}
void config_saida() {
gpio_set_level(ld_vm, 0);
gpio_set_level(ld_vd, 0);
gpio_set_level(ld_az, 0);
gpio_set_level(ld_am, 0);
gpio_set_level(ld_rs, 0);
}
CHAVE
Pot1
BTN1
BTN0
LEDS
DISPLAY