Paso 2: Paso 2: código de Arduino
He incluido el StepperAK.h, wire.h, LiquidCrystal_I2C.h, IRremote.h, IRremoteInt.h bibliotecas en mi dibujo:
int RECV_PIN = 12; asignar al receptor IR al pin 12
gearratio int = 100; relación de engranaje inicial
Irrecv(RECV_PIN) de IRrecv;
resultados de la decode_results;
Lcd(0x27,16,2) de LiquidCrystal_I2C;
const int stepsPerRevolution = 100; una revolución completa sería 2048, pero el número se encuentra muy baja para que el bucle se repite rápidamente para que el receptor ir está constantemente en espera de una nueva entrada
MyStepper(stepsPerRevolution,2,3,4,5) paso a paso;
void setup()
{Serial.begin(9600);
LCD.init();
LCD.Backlight();
irrecv.enableIRIn (); //start receptor}
void loop()
{myStepper.setSpeed(0.15*gearratio); / / utilizar una variable cuando la velocidad del motor myStepper.step(stepsPerRevolution); / / esto indica cuánto el motor rotará cada lazo
Si (irrecv.decode (y resultados))
{Serial.println(results.value,HEX); / / muestra el valor de entrada desde el mando a distancia IR. Esto le mostrará qué botón fue presionado
cada instrucción "if" corresponde a los tres botones en el ri remoto que va a cambiar el motor velocidad y pantalla lcd:
Si (results.value == 0xFF30CF) / / botón 1 del mando a distancia
{lcd.clear();
LCD.Print ("molino de viento Golf");
lcd.setCursor(1,8); se mueve el siguiente mensaje a la segunda línea de la pantalla
LCD.Print ("configuración: fácil");
gearratio = 300; }
Si (results.value == 0xFF18E7) / / botón 2 del mando a distancia
{lcd.clear();
LCD.Print ("molino de viento Golf");
lcd.setCursor(1,7);
LCD.Print ("ajuste: Normal");
gearratio = 800; }
Si (results.value == 0xFF7A85) / / botón 3 del mando a distancia
{lcd.clear();
LCD.Print ("molino de viento Golf");
lcd.setCursor(1,8);
LCD.Print ("ajuste: duro");
gearratio = 1200; }
irrecv.resume (); //receive siguiente valor}}