本帖最后由 维博哥哥 于 2016-5-30 22:11 编辑
闲来无事,用arduino写了个小游戏。如图,游戏很简单,简单的计数,按钮每按一次,计数一次,在小液晶上显示,计时十秒,时间一到,把最后的结果显示在小液晶上。因为程序粘贴在这文本中比较乱,所以最后附上程序源码压缩文件。
[pre lang="arduino" line="1" file="count"]#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);
}
}
}
[/code]
|