#include <stdio.h>
#include <string.h>
#include "driver/uart.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#define pinMerah GPIO_NUM_33
#define pinKuning GPIO_NUM_32
#define pinHijau GPIO_NUM_25
void app_main()
{
// Inisialisasi GPIO
gpio_set_direction(pinMerah, GPIO_MODE_OUTPUT);
gpio_set_direction(pinKuning, GPIO_MODE_OUTPUT);
gpio_set_direction(pinHijau, GPIO_MODE_OUTPUT);
// Inisialisasi UART
uart_config_t uart_config = {
.baud_rate = 115200,
.data_bits = UART_DATA_8_BITS,
.parity = UART_PARITY_DISABLE,
.stop_bits = UART_STOP_BITS_1,
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
};
uart_param_config(UART_NUM_0, &uart_config);
uart_driver_install(UART_NUM_0, 1024 * 2, 1024 * 2, 0, NULL, 0);
char *data = "Hello, world!\n";
uart_write_bytes(UART_NUM_0, data, strlen(data));
while (true)
{
gpio_set_level(pinMerah, 1);
gpio_set_level(pinKuning, 0);
gpio_set_level(pinHijau, 0);
uart_write_bytes(UART_NUM_0, data, strlen(data));
vTaskDelay(1000 / portTICK_PERIOD_MS);
gpio_set_level(pinMerah, 0);
gpio_set_level(pinKuning, 1);
gpio_set_level(pinHijau, 0);
uart_write_bytes(UART_NUM_0, data, strlen(data));
vTaskDelay(1000 / portTICK_PERIOD_MS);
gpio_set_level(pinMerah, 0);
gpio_set_level(pinKuning, 0);
gpio_set_level(pinHijau, 1);
uart_write_bytes(UART_NUM_0, data, strlen(data));
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}