Windmill Mini Golf (2 / 4 steg)
Steg 2: Steg 2: Arduino kod
Jag ingår StepperAK.h, wire.h, LiquidCrystal_I2C.h, IRremote.h, IRremoteInt.h bibliotek i min skiss:
int RECV_PIN = 12; tilldela stift 12 IR-mottagaren
int gearratio = 100; Ange inledande utväxling
IRrecv irrecv(RECV_PIN);
decode_results resultat.
LiquidCrystal_I2C lcd(0x27,16,2);
CONST int stepsPerRevolution = 100; en fullständig revolution skulle vara 2048 men numret är mycket låg så att slingan upprepas snabbt så att IR-mottagaren hela tiden väntar på en ny ingång
Stepper myStepper(stepsPerRevolution,2,3,4,5);
void setup()
{Serial.begin(9600);
LCD.init();
LCD.backlight();
irrecv.enableIRIn (); //start mottagare}
void loop()
{myStepper.setSpeed(0.15*gearratio); / / använda en variabel när du ställer in hastigheten på den motoriska myStepper.step(stepsPerRevolution); / / Detta anger hur mycket motorn roterar varje slinga
om (irrecv.decode (& resultat))
{Serial.println(results.value,HEX); / / visar indatavärdet kommer från IR-fjärrkontroll. Detta kommer att visa vad knappen trycktes
varje "om" uttalande motsvarar de tre knapparna på IR-fjärr som kommer att förändra motor hastighet och LCD-displayen:
om (results.value == 0xFF30CF) / / knappen 1 på fjärrkontrollen
{lcd.clear();
LCD.Print ("Windmill Golf");
lcd.setCursor(1,8); flyttar nästa meddelande till den andra raden av skärmen
LCD.Print ("inställningen: lätt");
gearratio = 300; }
om (results.value == 0xFF18E7) / / knappen 2 på fjärrkontrollen
{lcd.clear();
LCD.Print ("Windmill Golf");
lcd.setCursor(1,7);
LCD.Print ("inställningen: Normal");
gearratio = 800; }
om (results.value == 0xFF7A85) / / knapp 3 på fjärrkontrollen
{lcd.clear();
LCD.Print ("Windmill Golf");
lcd.setCursor(1,8);
LCD.Print ("inställningen: hård");
gearratio = 1200; }
irrecv.Resume (), //receive nästa värde}}