Эксперимент Маячок


Эксперимент 18. Тестер батареек



бет38/45
Дата13.02.2023
өлшемі1,82 Mb.
#67503
түріЗакон
1   ...   34   35   36   37   38   39   40   41   ...   45
Эксперимент 18. Тестер батареек
← Пантограф | Оглавление | Светильник, управляемый по USB →

В этом эксперименте мы выводим на жидкокристаллический дисплей данные о напряжении, измеренном на батарейке.


Список деталей для эксперимента

  • 1 плата Arduino Uno

  • 1 беспаечная макетная плата

  • резистора номиналом 10 кОм

  • выпрямительный диод

  • 1 текстовый экран

  • 16 проводов «папа-папа»

  • клеммник

Принципиальная схема

Схема на макетке

Обратите внимание

  • Мы подключаем «плюс» батарейки через делитель напряжения с равными плечами (R1 = R2 = 10 кОм), таким образом деля подаваемое напряжение пополам. Поскольку в аналоговый вход Arduino мы можем подавать до 5В, мы можем измерять напряжение до 10В. Не пробуйте измерять большее напряжение, вы можете повредить плату!

  • На принципиальной схеме внутри изображения дисплея подписаны названия его выводов согласно datasheet, а снаружи — номера его ножек.

  • Ножки нашего ЖК-дисплея нумеруются не подряд: 15 и 16 ножки находятся перед 1.

  • Диод пригодится, если пользователь тестера перепутает «+» и «-» батарейки, главное нам самим не забыть про направление, в котором через диод может течь ток, и установить его верно!

Скетч
p180_lcd.ino
// Подключаем библиотеку для работы с жидкокристаллическим
// экраном (англ. Liquid Crystal Display или просто LCD)
#include
// на диоде, защищающем от неверной полярности, падает доля
// напряжения (англ. voltage drop). Необходимо это учитывать
#define DIODE_DROP 0.7
// Объявляем объект, для управления дисплеем. Для его создания
// необходимо указать номера пинов, к которым он подключен в
// порядке: RS E DB4 DB5 DB6 DB7
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
void setup()
{
// начинаем работу с экраном. Сообщаем объекту количество
// строк и столбцов. Опять же, вызывать pinMode не требуется:
// функция begin сделает всё за нас
lcd.begin(16, 2);
// печатаем сообщение на первой строке
lcd.print("Battery voltage:");
}
void loop()
{
// высчитываем напряжение подключенной батарейки
float voltage = analogRead(A0) / 1024.0 * 10.0;
// если напряжение на делителе напряжения было зафиксировано,
// нужно прибавить напряжение на диоде, т.к. оно было съедено
if (voltage > 0.1)
voltage += DIODE_DROP;
// устанавливаем курсор, колонку 0, строку 1. На деле — это
// левый квадрат 2-й строки, т.к. нумерация начинается с нуля
lcd.setCursor(0, 1);
// печатаем напряжение в батарейке с точностью до сотых долей
lcd.print(voltage, 2);
// следом печатаем единицы измерения
lcd.print(" Volts");
}


Достарыңызбен бөлісу:
1   ...   34   35   36   37   38   39   40   41   ...   45




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет