You are on page 1of 1

#include <stdio.

h>
#define portTICK_RATE_MS 1000
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_attr.h"

#include "driver/gpio.h"

// Cổng GPIO
#define GPIO_IN1 16
#define GPIO_IN2 17
// Cổng điều khiển của LN298N
#define IN1 GPIO_NUM_16
#define IN2 GPIO_NUM_17
#define IN3 GPIO_NUM_3
#define IN4 GPIO_NUM_4
#define HIGH 1
#define LOW 0
// Hàm chính
void app_main()
{
// Khởi tạo cổng GPIO
gpio_config_t motor_config = {
.pin_bit_mask = (1 << GPIO_IN1) | (1 << GPIO_IN2) | (1 << IN3) | (1 << IN4),
.mode = GPIO_MODE_OUTPUT,
.pull_up_en = GPIO_PULLUP_DISABLE,
.pull_down_en = GPIO_PULLDOWN_DISABLE,
};
gpio_config(&motor_config);

// Vòng lặp vô hạn


while (true) {
// Xoay thuận
gpio_set_level(IN1, HIGH);
gpio_set_level(IN2, LOW);
gpio_set_level(IN3, HIGH);
gpio_set_level(IN4, LOW);
vTaskDelay(1000 / portTICK_RATE_MS);

// Dừng
gpio_set_level(IN1, LOW);
gpio_set_level(IN2, LOW);
gpio_set_level(IN3, LOW);
gpio_set_level(IN4, LOW);
vTaskDelay(1000 / portTICK_RATE_MS);

// Ngược chiều
gpio_set_level(IN1, LOW);
gpio_set_level(IN2, HIGH);
gpio_set_level(IN3, LOW);
gpio_set_level(IN4, HIGH);
vTaskDelay(1000 / portTICK_RATE_MS);
}
}

You might also like