Skip to content

Instantly share code, notes, and snippets.

@xeecos
Last active March 31, 2021 02:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xeecos/06cd24610ae4a6662740924e402252d2 to your computer and use it in GitHub Desktop.
Save xeecos/06cd24610ae4a6662740924e402252d2 to your computer and use it in GitHub Desktop.
#include "MeMegaPi.h"
#include <SoftwareSerial.h>
Me7SegmentDisplay disp(PORT_8);
MeInfraredReceiver infraredReceiverDecode(PORT_7);
MeStepperOnBoard stepper(SLOT_1);
int i = 0;
void setup()
{
infraredReceiverDecode.begin();
pinMode(A0,OUTPUT);
pinMode(10,OUTPUT);
analogWrite(A0,0);
analogWrite(10,0);
stepper.setAcceleration(40000);
stepper.setMicroStep(16);
stepper.setSpeed(10000);
stepper.setMaxSpeed(10000);
stepper.disableOutputs();
}
static uint8_t PreCode = 0;
uint8_t codes[4] = {0,0,0,0};
uint16_t steps = 0;
void loop()
{
uint8_t ReceiverCode;
uint8_t buttonState;
buttonState = infraredReceiverDecode.buttonState();
if(buttonState)
{
if(infraredReceiverDecode.available())
{
ReceiverCode = infraredReceiverDecode.read();
if(PreCode != ReceiverCode&&ReceiverCode<255)
{
PreCode = ReceiverCode;
if(ReceiverCode==IR_BUTTON_A)
{
codes[1] = 1;
codes[3] = 0;
disp.display(codes);
analogWrite(A0,255);
}
else if(ReceiverCode==IR_BUTTON_C)
{
codes[1] = 0;
codes[3] = 1;
disp.display(codes);
analogWrite(10,255);
}
else if(ReceiverCode==IR_BUTTON_RIGHT)
{
stepper.enableOutputs();
// stepper.setSpeed(1);
stepper.move(10);
steps+=1;
disp.display(steps);
}
else if(ReceiverCode==IR_BUTTON_LEFT)
{
stepper.enableOutputs();
// stepper.setSpeed(-1);
stepper.move(-10);
steps-=1;
disp.display(steps);
}
else if(ReceiverCode==IR_BUTTON_SETTING)
{
steps = 0;stepper.disableOutputs();
}
else if(ReceiverCode==IR_BUTTON_9)
{
stepper.setSpeed(9000);
stepper.setMaxSpeed(8000);
}
else if(ReceiverCode==IR_BUTTON_8)
{
stepper.setSpeed(9000);
stepper.setMaxSpeed(5000);
}
else if(ReceiverCode==IR_BUTTON_7)
{
stepper.setSpeed(4000);
stepper.setMaxSpeed(4000);
}
else if(ReceiverCode==IR_BUTTON_6)
{
stepper.setSpeed(3000);
stepper.setMaxSpeed(3000);
}
else if(ReceiverCode==IR_BUTTON_5)
{
stepper.setSpeed(2000);
stepper.setMaxSpeed(2000);
}
else if(ReceiverCode==IR_BUTTON_4)
{
stepper.setSpeed(1200);
stepper.setMaxSpeed(1000);
}
else if(ReceiverCode==IR_BUTTON_3)
{
stepper.setSpeed(1200);
stepper.setMaxSpeed(600);
}
else if(ReceiverCode==IR_BUTTON_2)
{
stepper.setSpeed(1200);
stepper.setMaxSpeed(400);
}
else if(ReceiverCode==IR_BUTTON_1)
{
stepper.setSpeed(1000);
stepper.setMaxSpeed(200);
}
else if(ReceiverCode==IR_BUTTON_0)
{
stepper.setSpeed(900);
stepper.setMaxSpeed(100);
}
}
}
}
else
{
codes[0] = 0;
codes[1] = 0;
codes[2] = 0;
codes[3] = 0;
if(steps!=0)
{
disp.display(steps);
}
else
{
disp.display(codes);
}
// stepper.disableOutputs();
analogWrite(A0,0);
analogWrite(10,0);
}
stepper.run();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment