//Lottery Final M5STACK
//by Kim Grossa
//How to use
//1 Press the A button
//2 Five leds start to light on and ligtt off
//3 Long press the A button again
//4 One led is on at random
//Thanks to ymoriblog
#include <M5Stack.h>
int GreenLed=3;
int YellowLed=16;
int RedLed=17;
int BlueLed=2;
int WhiteLed=5;
int t1=50;
int val1=0;
int oldval1=0;
int state1=-1;
long number=0;
String str11="Lottery";
String str12="by Kim Grossa";
String str13="Press btnC";
String str14="Rotation starts";
String str15="Long press btnC ";
String str16="Rotation stops";
String str17="Enjoy!";
void setup()
{
M5.begin();
M5.Power.begin();
pinMode(GreenLed,OUTPUT);
pinMode(YellowLed,OUTPUT);
pinMode(RedLed,OUTPUT);
pinMode(BlueLed,OUTPUT);
pinMode(WhiteLed,OUTPUT);
M5.Lcd.setTextSize(3);
M5.Lcd.setCursor(0,0);
M5.Lcd.fillScreen(BLACK);
M5.Lcd.println(str11);
M5.Lcd.println(str12);
M5.Lcd.println("");
M5.Lcd.println(str13);
M5.Lcd.println(str14);
M5.Lcd.println(str15);
M5.Lcd.println(str16);
M5.Lcd.println("");
M5.Lcd.println(str17);
digitalWrite(GreenLed,LOW);
digitalWrite(YellowLed,LOW);
digitalWrite(RedLed,LOW);
digitalWrite(BlueLed,LOW);
digitalWrite(WhiteLed,LOW);
}
void loop()
{
M5.update();
if((M5.BtnC.wasPressed())&&(!oldval1))
{
if(state1==1)
{
state1=0;
}
else
{
state1=1;
}
delay(10);
oldval1=val1;
number =random(1,6);
}
if(state1==1)
{
startrotate();
}
else if(state1==-1)
{
alloff();
}
else
{
bingo();
}
}
void startrotate()
{
digitalWrite(GreenLed,HIGH);
delay(t1);
digitalWrite(GreenLed,LOW);
delay(t1);
digitalWrite(YellowLed,HIGH);
delay(t1);
digitalWrite(YellowLed,LOW);
delay(t1);
digitalWrite(RedLed,HIGH);
delay(t1);
digitalWrite(RedLed,LOW);
delay(t1);
digitalWrite(BlueLed,HIGH);
delay(t1);
digitalWrite(BlueLed,LOW);
delay(t1);
digitalWrite(WhiteLed,HIGH);
delay(t1);
digitalWrite(WhiteLed,LOW);
delay(t1);
}
void alloff()
{
digitalWrite(GreenLed,LOW);
digitalWrite(YellowLed,LOW);
digitalWrite(RedLed,LOW);
digitalWrite(BlueLed,LOW);
digitalWrite(WhiteLed,LOW);
}
void bingo()
{
switch(number)
{
case 1:
digitalWrite(GreenLed,HIGH);
break;
case 2:
digitalWrite(YellowLed,HIGH);
break;
case 3:
digitalWrite(RedLed,HIGH);
break;
case 4:
digitalWrite(BlueLed,HIGH);
break;
case 5:
digitalWrite(WhiteLed,HIGH);
break;
}
}
0 件のコメント:
コメントを投稿