Arduino“反应计时器” - 我的孩子喜欢玩这个
这个项目开机很快 – 只需按下按钮即可。简单而有趣。我们一家都喜欢玩这个游戏。该项目需要使用硬件清单LED(通用)*2SparkFun按钮开关12mm * 2DFRobot I2C 16x2 Arduino LCD显示模块滑动开关10kΩ电阻电池座,3 x AAAArduino Micro和Genuino Micro手动工具和制造设备烙铁(通用)
故事我上网时在某个网址发现了这些代码并尝试运行。我们一家都喜欢这个游戏,所以我决定将它组装到一个好玩的盒子里面以便能够常玩。这项工作目前已经完成,并且我将它送到我的孩子手中。这是非常基础的项目,但是却包含了所有的重要元素。 这里有一些照片:
我将整个系统缩小到通过一片atmega328p芯片进行编程。以3 AAA的模式运行。
这是它的外观。那个大的是一个按钮,点击小红色顶部即可“开始”。
按下开始运行
代码:#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define btnSTART 5
#define btnHIT 7
#define ledTrigger 9
LiquidCrystal_I2C lcd(0x23,20,4);
void setup() {
lcd.init();
lcd.backlight();
pinMode(btnSTART, INPUT_PULLUP);
pinMode(btnHIT, INPUT_PULLUP);
pinMode(ledTrigger, OUTPUT);
digitalWrite(ledTrigger, LOW);
lcd.print("Salut Famille!");
delay(2000);
lcd.clear();
randomSeed(analogRead(0));
}
void loop() {
long timeReaction;
long timeTotal = 0;
lcd.print("Press START!");
while (digitalRead(btnSTART)) {}
delay(10);
while (!digitalRead(btnSTART)) {}
lcd.clear();
lcd.print("Jouez!!!");
delay(1000);
for (int i = 0; i < 5; i++) {
delay(random(500, 5000));
timeReaction = millis();
digitalWrite(ledTrigger, HIGH);
while (digitalRead(btnHIT)) {}
timeReaction = millis() - timeReaction;
timeTotal += timeReaction;
delay(10);
while (!digitalRead(btnHIT)) {}
digitalWrite(ledTrigger, LOW);
lcd.clear();
lcd.print(i + 1);
lcd.print(": ");
lcd.print(timeReaction);
delay(1000);
}
lcd.clear();
lcd.print("Moyenne = ");
lcd.print(timeTotal/5);
delay(10000);
lcd.clear();
}
Credits
原文翻译转载自:https://www.dfrobot.com/blog-1247.html
有趣,研究一下
页:
[1]