Dice roll

Dependencies:   mbed

main.cpp

Committer:
ARGroenenboom
Date:
2017-11-03
Revision:
2:0432dad1e3ac
Parent:
1:8be4a41833fd

File content as of revision 2:0432dad1e3ac:

#include "mbed.h"

// Led control outputs
DigitalOut ledb(LED_BLUE);
DigitalOut ledr(LED_RED);
DigitalOut ledg(LED_GREEN);

// Motor control outputs
DigitalOut motor1DC(D7);
PwmOut motor1PWM(D6);

// Input signals. Can either be pressing switch2 or EMG control.
DigitalIn   button1(SW2);
AnalogIn EMGDice(A0);

void Roll()
{  
    ledg = 1; // green led off
    ledr = 0; // red led on = rolling
    
    motor1PWM = 1; // motor on -> roll dice
    wait(1.05);
    motor1PWM = 0; // motor off

    motor1DC = abs(motor1DC-1); // rotate other way next time
    
    ledr = 1; // red led off
    ledb = 0; // blue led on -> inidcates wait time to protect motors
}

int main()
{
    // Initialize system
    motor1DC = 1;
    ledb = 1;
    ledr = 1;
    ledg = 0;
    float t = 1.5; // Wait time (s) between rolls to protect motor
    
    // Dice roll code
    while (true) 
    {
        if(button1==0 or EMGDice>0.8) // Roll dice if switch2 is pressed or EMG input is delivered.
        { 
            Roll();
            wait(t); // wait before next roll to protect motors
            ledb = 1; 
            ledg = 0; // green led on = ready to roll
        }     
          
    }
}