Skip to content

T10.Code for card dealing machine

Shivani S Patil edited this page Jul 28, 2023 · 1 revision
#include <Stepper.h>

const int stepsPerRevolution = 96;
Stepper myStepper(stepsPerRevolution,7,8,9,10);
const int  M1=12, M2=13;  //Motor pins

void setup() {
  myStepper.setSpeed(60);
  Serial1.begin(9600);
  pinMode(M1,OUTPUT);
  pinMode(M2,OUTPUT);
}
void loop() {
  int flag = 1;
  int count = 0;
  int cards = 52; //Can read this with Bluetooth?
  char a;
  a= Serial1.read();

    if(a=='2')
    {
      if(flag== 1)
      {
        myStepper.step();
        delay(2000);
        digitalWrite(M1,LOW);
        digitalWrite(M2,HIGH);
        delay(200);
        digitalWrite(M1,HIGH);
        digitalWrite(M2,LOW);
        delay(50);
        digitalWrite(M1,LOW);
        digitalWrite(M2,LOW);
        flag = -flag;
        cards--;
      }
      else if(flag== -1)
      {
        myStepper.step(-stepsPerRevolution*8/3);
        delay(2000);
        digitalWrite(M1,LOW);
        digitalWrite(M2,HIGH);
        delay(200);
        digitalWrite(M1,HIGH);
        digitalWrite(M2,LOW);
        delay(50);
        digitalWrite(M1,LOW);
        digitalWrite(M2,LOW);
        flag = -flag;
        cards--;
      }
   }
   else if(a=='3')
  {
    if(count==3)
    {
      count=1;
      myStepper.step(-stepsPerRevolution*57/16);
      delay(3000);
      digitalWrite(M1,LOW);
      digitalWrite(M2,HIGH);
      delay(200);
      digitalWrite(M1,HIGH);
      digitalWrite(M2,LOW);
      delay(50);
      digitalWrite(M1,LOW);
      digitalWrite(M2,LOW);
      cards--;
    }
    else
    {
      myStepper.step(stepsPerRevolution*57/32);
      delay(2000);
      digitalWrite(M1,LOW);
      digitalWrite(M2,HIGH);
      delay(200);
      digitalWrite(M1,HIGH);
      digitalWrite(M2,LOW);
      delay(50);
      digitalWrite(M1,LOW);
      digitalWrite(M2,LOW);
      count++;
      cards--;
    }
  }
  else if(a=='4')
  {
    if(count==4)
    {
      count=1;
      myStepper.step(-stepsPerRevolution*16/3);
      delay(4000);
      digitalWrite(M1,LOW);
      digitalWrite(M2,HIGH);
      delay(200);
      digitalWrite(M1,HIGH);
      digitalWrite(M2,LOW);
      delay(50);
      digitalWrite(M1,LOW);
      digitalWrite(M2,LOW);
      cards--;
    }
    else
    {
      myStepper.step(stepsPerRevolution*4/3);
      delay(2000);
      digitalWrite(M1,LOW);
      digitalWrite(M2,HIGH);
      delay(200);
      digitalWrite(M1,HIGH);
      digitalWrite(M2,LOW);
      delay(50);
      digitalWrite(M1,LOW);
      digitalWrite(M2,LOW);
      count++;
      cards--;
    }
  }
}

Clone this wiki locally