#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Stepper.h>
#define PASSO_PIN 27
#define DIRECAO_PIN 26
#define LED_R 32
#define LED_G 33
#define LED_B 25
#define POTE_PIN 14
Stepper motor(200, PASSO_PIN, DIRECAO_PIN);
LiquidCrystal_I2C lcd(0x27, 16, 2);
int posicao = 0;
int velocidade = 0;
void setup() {
lcd.init();
lcd.backlight();
motor.setSpeed(60);
lcd.print("Posição:");
pinMode(LED_R, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_B, OUTPUT);
}
void loop() {
velocidade = map(analogRead(POTE_PIN), 0, 1023, 1, 100);
motor.setSpeed(velocidade);
motor.step(1);
posicao++;
lcd.setCursor(9, 0);
lcd.print(posicao);
if (velocidade > 0) {
digitalWrite(LED_R, LOW);
digitalWrite(LED_G, HIGH);
digitalWrite(LED_B, LOW);
} else {
digitalWrite(LED_R, HIGH);
digitalWrite(LED_G, LOW);
digitalWrite(LED_B, LOW);
}
delay(100);
}