#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"// Se incluye el archivo de GPIOS, por si quieren utilizarlas.
#define Motor 2
#define Relleno 4
#define Tapado 5
const int BM = 15;
void Avance (void *pvParameters) {
while(1) {
if(digitalRead(BM)== LOW){
digitalWrite(Motor, HIGH);
digitalWrite(Relleno, LOW);
digitalWrite(Tapado, LOW);
vTaskDelay(2000 / portTICK_PERIOD_MS);
digitalWrite(Motor, LOW);
digitalWrite(Relleno, HIGH);
digitalWrite(Tapado, LOW);
vTaskDelay(2000 / portTICK_PERIOD_MS);
digitalWrite(Motor, HIGH);
digitalWrite(Tapado, LOW);
digitalWrite(Relleno, LOW);
vTaskDelay(2000 / portTICK_PERIOD_MS);
digitalWrite(Tapado, HIGH);
digitalWrite(Motor, LOW);
digitalWrite(Relleno, LOW);
vTaskDelay(2000 / portTICK_PERIOD_MS);
}
}
}
void Pare (void *pvParameters) {
while(1) {
if(digitalRead(BM) == HIGH){
digitalWrite(Relleno, LOW);
digitalWrite(Motor, LOW);
digitalWrite(Tapado, LOW);
vTaskDelay(2000 / portTICK_PERIOD_MS);
}
}
}
void setup() {
pinMode(Motor, OUTPUT);
pinMode(Relleno, OUTPUT);
pinMode(Tapado, OUTPUT);
pinMode(BM, INPUT);
xTaskCreate(Avance, "Avance", 2000, NULL, tskIDLE_PRIORITY , NULL); // o pueden incrementar tskIDLE_PRIORITY
xTaskCreate(Pare, "Pare", 2000, NULL, tskIDLE_PRIORITY , NULL);
}
void loop() {
// put your main code here, to run repeatedly:
}