Привет! Для создания спидометра и индикатора заряда батареи на Arduino, вам потребуется несколько компонентов и немного кода. Вот базовый пример того, как это можно сделать:
Компоненты:
Arduino Uno
Дисплей 1602 I2C
Датчик скорости (например, датчик Холла)
Резисторы для измерения напряжения аккумулятора
Схема подключения:
Подключите дисплей 1602 I2C к Arduino (SDA к A4, SCL к A5).
Подключите датчик скорости к цифровому пину (например, D2).
Подключите делитель напряжения к аналоговому пину (например, A0) для измерения напряжения аккумулятора
Пример кода
#include
#include
LiquidCrystal_I2C lcd(0x27,16,2); // Установите I2C адрес на 0x27 для 16-символьного 2-строчного дисплея
const int speedPin = 2; // Пин датчика скорости
volatile int speedCounter = 0; // Счетчик оборотов колеса
unsigned long prevMillis = 0; // Время последнего обновления
void setup()
{
lcd.init(); // Инициализация LCD
lcd.backlight(); // Включение подсветки
attachInterrupt(digitalPinToInterrupt(speedPin), countSpeed, RISING); // Настройка прерывания для датчика скорости
}
void loop()
{
unsigned long currentMillis = millis();
if(currentMillis - prevMillis > 1000) { // Обновление каждую секунду
prevMillis = currentMillis;
float speed = calculateSpeed(); // Расчет скорости
lcd.setCursor(0,0);
lcd.print("Speed: ");
lcd.print(speed);
lcd.print(" km/h");
float batteryVoltage = analogRead(A0) * (5.0 / 1023.0) * 2; // Измерение напряжения батареи
lcd.setCursor(0,1);
lcd.print("Battery: ");
lcd.print(batteryVoltage);
lcd.print(" V");
speedCounter = 0; // Сброс счетчика оборотов колеса
}
}
void countSpeed() {
speedCounter++;
}
float calculateSpeed() {
float wheelDiameter = 0.24; // Диаметр колеса в метрах
float wheelCircumference = wheelDiameter * PI;
float distancePerSecond = wheelCircumference * speedCounter;
float speedKmPerHour = distancePerSecond * 3.6;
return speedKmPerHour;
}
Этот код будет измерять скорость вашего электросамоката и напряжение батареи, а затем отображать эти данные на LCD-дисплее.
Пожалуйста, учтите, что этот код является лишь примером и может потребовать дополнительной настройки или модификации в зависимости от вашей конкретной системы и компонентов.