#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/pwm.h"
#define STEP_PIN 2
#define DIR_PIN 3
// Función para dar pasos
void step_motor(int pasos, int delay_us) {
for (int i = 0; i < pasos; i++) {
gpio_put(STEP_PIN, 1);
sleep_us(500); // pulso mínimo
gpio_put(STEP_PIN, 0);
sleep_us(delay_us); // controla velocidad
}
}
int main() {
// Inicializar pines
gpio_init(STEP_PIN);
gpio_set_dir(STEP_PIN, GPIO_OUT);
gpio_init(DIR_PIN);
gpio_set_dir(DIR_PIN, GPIO_OUT);
while (true) {
//ADELANTE
gpio_put(DIR_PIN, 1);
step_motor(200, 2000); // pasos, velocidad
sleep_ms(1000);
//REVERSA
gpio_put(DIR_PIN, 0);
step_motor(200, 2000);
sleep_ms(1000);
//ACELERACIÓN
gpio_put(DIR_PIN, 1);
for (int speed = 3000; speed > 500; speed -= 200) {
step_motor(50, speed);
}
sleep_ms(2000);
}
}