维博哥哥 发表于 2016-5-30 22:02:10

arduino小游戏

本帖最后由 维博哥哥 于 2016-5-30 22:11 编辑

闲来无事,用arduino写了个小游戏。如图,游戏很简单,简单的计数,按钮每按一次,计数一次,在小液晶上显示,计时十秒,时间一到,把最后的结果显示在小液晶上。因为程序粘贴在这文本中比较乱,所以最后附上程序源码压缩文件。
#include <UTFT.h>

extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];

const int buttonPin = 53;   
const int ledPin =13;
int count=0;
int buttonState = 0;
int t=0;

UTFT myGLCD(ST7735,A2,A1,A5,A4,A3);
void Button();
void Winer();
void setup()
{
myGLCD.InitLCD();
myGLCD.clrScr();
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
}

void loop()
{
myGLCD.setColor(0, 255, 0);
myGLCD.setBackColor(0, 0, 0);
myGLCD.setFont(BigFont);
myGLCD.print(" num is:", CENTER, 10);
while(1) {
    Button();
    myGLCD.printNumI(count, CENTER, 42);
    t = millis()/1000;
    if(t==10)
    {
      Winer();
    }
    else
    {
      myGLCD.print(" time: ", CENTER, 68);
      myGLCD.printNumI(t, CENTER, 98);   
    }   
};
}
void Button()
{
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH)
{
    digitalWrite(ledPin, HIGH);
}
else
{
    digitalWrite(ledPin, LOW);
    delay(10);
    buttonState = digitalRead(buttonPin);
    if (buttonState == LOW){
      count++;
        }
    while(digitalRead(buttonPin)==LOW)
   {
       delay(1);
   }
}
}
void Winer()
{
while(1)
{
   myGLCD.clrScr();
   myGLCD.print(" winer! ", CENTER, 10);
   myGLCD.print(" your ", CENTER, 26);
   myGLCD.print(" score:", CENTER, 42);
   while(1)
      {
      myGLCD.setColor(255, 0, 0);
      myGLCD.printNumI(count, CENTER, 70);
      delay(200);
      myGLCD.setColor(0, 255, 0);
      myGLCD.printNumI(count, CENTER, 70);
      delay(200);
      }
}
}

原野动力 发表于 2016-5-31 00:02:26

这啥主板啊

维博哥哥 发表于 2016-5-31 14:10:23

原野动力 发表于 2016-5-31 00:02 static/image/common/back.gif
这啥主板啊

arduino due

迷你强 发表于 2016-5-31 17:05:13

:lol来个视频
页: [1]
查看完整版本: arduino小游戏