Сегодня мы решили создать приспособление, которое сможет измерить время (скорость) реакции и для этого нам понадобится Arduino и некоторые компоненты.
Шаг 1: Компоненты
Необходимые детали показаны на картинке и перечислены в списке ниже.
- Arduino UNO
- USB-кабель
- 10k и 220-омные резисторы
- СВЕТОДИОД
- кнопка
- макетная плата
- ЖК-дисплей 16x2
- перемычки
Шаг 2: Подключение светодиода
Каждый светодиод имеет два провода - более короткий и длинный. Более короткий (катод) должен быть подключен к GND (земля) Arduino с использованием 220-омного резистора. Анод (5V) каждого светодиода должен соединить соответствующий цифровой вывод Arduino (мы выбрали 8-й).
Шаг 3: Подключение кнопки
Выберите одну из сторон кнопки. Вы увидите 2 контакта. Тот, который слева, соединяется с землей Arduino с резистором 10k. Подключите другой провод к цифровому контакту 4 Arduino. Штифт в правой части кнопки подключается к 5V.
Шаг 4: Подключение ЖК-дисплея
Здесь необходимо 4 соединения. Они следующие (ЖК-дисплей → Arduino):
GND → GND
VCC → 5V
SDA → A4
SCL → A5
Шаг 5: Код
Ниже приводим код, который нужно загрузить в вашу Arduino.
#include <Wire.h> #include <LiquidCrystal_I2C.h> #define ledPin 8 #define btnPin 4 double number; long sTime; LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); void setup() { Serial.begin(9600); lcd.begin(16,2); lcd.setCursor(0,0); pinMode(btnPin, INPUT); pinMode(ledPin, OUTPUT); } void loop() { number = random(500, 5000); lcd.print("Wait for the LED"); delay(number); lcd.clear(); lcd.print(" PRESS!"); digitalWrite(ledPin, HIGH); sTime = millis(); while (digitalRead(btnPin) == LOW); lcd.clear(); lcd.print(" Reaction time: "); lcd.setCursor(0,1); lcd.print(" "); lcd.print((millis() - sTime) / 1000.0); lcd.print(" s"); delay(2000); lcd.clear(); lcd.setCursor(0,0); lcd.print(" Another test"); lcd.setCursor(0, 1); lcd.print(" in 5 seconds"); delay(5000); lcd.clear(); digitalWrite(8, LOW); }
Не стесняйтесь изменять что-либо в коде, например, номера контактов, задержки, текст и т.п.
Шаг 6: Итоговое видео
Если у вас есть вопросы, не стесняйтесь спрашивать их в комментариях в нашей группе! Ниже - итоговое видео нашего урока!
Отличных вам проектов.
12 августа 2020 в 16:46
Какие нужны библиотеки
12 августа 2020 в 17:15
В начале кода видно:
1. Wire
2. LiquidCrystal_I2C