#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define BUTTON_PIN 2 // Пин для кнопки
#define VOLTAGE_PIN A0 // Аналоговый пин для измерения напряжения
LiquidCrystal_I2C lcd(0x27, 16, 2); // Инициализация LCD-дисплея
unsigned long startTime = 0; // Начальное время
bool measuring = false; // Флаг для измерений
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP); // Кнопка с подтягивающим резистором
lcd.begin(16,2); // Инициализация дисплея
lcd.backlight(); // Включение подсветки
lcd.print("Voltage: --"); // Начальное сообщение
lcd.setCursor(0, 1);
lcd.print("Time: 0s"); // Начальное сообщение
}
void loop() {
// Проверка нажатия кнопки
if (digitalRead(BUTTON_PIN) == LOW) {
if (!measuring) {
startTime = millis(); // Сохранить текущее время
measuring = true; // Начать измерение
}
}
// Измерение времени
if (measuring) {
unsigned long elapsedTime = (millis() - startTime) / 1000; // Время в секундах
lcd.setCursor(0, 1);
lcd.print("Time: ");
lcd.print(elapsedTime); // Отображение времени
lcd.print("s "); // Дополнительные пробелы для очистки
// Измерение напряжения
float voltage = analogRead(VOLTAGE_PIN) * (5.0 / 1023.0) * 2; // Измерение напряжения, корректируемое делителем
lcd.setCursor(0, 0);
lcd.print("Voltage: ");
lcd.print(voltage); // Отображение напряжения
lcd.print("V "); // Дополнительные пробелы для очистки
}
}