4236| 1
|
[进阶] Arduino“反应计时器” - 我的孩子喜欢玩这个 |
这个项目开机很快 – 只需按下按钮即可。简单而有趣。我们一家都喜欢玩这个游戏。 该项目需要使用硬件清单 LED(通用)*2 SparkFun按钮开关12mm * 2 滑动开关 10kΩ电阻 电池座,3 x AAA Arduino Micro和Genuino Micro 手动工具和制造设备 烙铁(通用) 故事 我上网时在某个网址发现了这些代码并尝试运行。 我们一家都喜欢这个游戏,所以我决定将它组装到一个好玩的盒子里面以便能够常玩。 这项工作目前已经完成,并且我将它送到我的孩子手中。 这是非常基础的项目,但是却包含了所有的重要元素。 这里有一些照片: 我将整个系统缩小到通过一片atmega328p芯片进行编程。以3 AAA的模式运行。 这是它的外观。那个大的是一个按钮,点击小红色顶部即可“开始”。 按下开始运行 代码: [mw_shl_code=applescript,true]#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[/mw_shl_code] |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed