• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Делаем градусник из аналогового вольтметра

8 марта, 2018

Для реализации данного проекта нам понадобится:

Arduino uno: http://ali.pub/1th4sk

Датчик температуры ds18b20: http://ali.pub/2c3kv3

Аналоговый вольтметр 0-5v: http://ali.pub/2c3l66

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

Для начала давайте ознакомимся или освежим память о датчике ds18b20.

DS18B20 это интегральный датчик температуры с цифровым последовательным интерфейсом 1-Wire. Датчик с уникальными параметрами и функциональными возможностями. Датчику DS18B20 свойственны:

  • Высокая точностью измерения, погрешность не превышает 0,5 °C. Датчик откалиброван при изготовлении, дополнительной калибровки не требует.
  • Разрешающая способность задается программно и достигает 0,0625 °C при максимальном разрешении 12 бит.
  • Широкий диапазон измерения температуры -55 … + 125 °C.
  • Датчик осуществляет преобразование температуры в цифровой код, т.е. дополнительного АЦП не требует.
  • Передача информации осуществляется по последовательному протоколу 1-Wire, требуется только три провода для подключения термодатчика к микроконтроллеру.

Схема подключения датчика :

Из данной схемы видим, что обязательно нужно подтягивать резистором на 4.7кОм к +5В питания, иначе датчик работать будет неправильно.

Теперь давайте поговорим о Аналоговом вольтметре:

Данный вольтметр имеет низкую стоимость. Он измеряет постоянное напряжение в диапазоне от 0 до 5 В. Он очень прост в использовании, достаточно просто подключить контакты к + и – источника напряжения, и данные будут отображены стрелкой на вольтметре.

Данный вольтметр очень хорошо подходит для работы с arduino. Так как в ардуино осуществлена 5 вольтовая логика. Мы с ардуино можем легко вывести любое напряжение от 0-5В используя ШИМ (PWM) сигнал Ардуино. Таким образом мы можем контролировать положение стрелки на циферблате по желанию. За счет этого мы можем строить различные примеры.  Например показания, температуры как в данном случае, влажности, отображение времени, и тому подобное.

Для того чтобы управлять вольтметром, как я уже описал ранее мы будем использовать шим (PWM) сигнал Arduino. Для передачи данных вольтметру мы используем команду analogWrite и записываем значение от 0 до 255. И так если мы подадим значение 0 то и вольтметр покажет 0В, а если напишем 255 то вольтметр покажет +5В . В итоге если мы хотим чтоб вольтметр показывал стрелкой +2,5В нам нужно подать команду analogWrite(9,128). Где 9 это номер пина, а 128 это размер ШИМ сигнала, тоесть половина 255.

Ну вроде разобрались как это все работает, теперь давайте перейдем к переделки вольтметра в термометр.

Для этого подключим все по данной схеме:

Если будете повторять все также как делал я, то здесь я предоставлю нарисованный диапазон температуры под вольтметр.

Данный размер циферблата нужно будет подогнать в редакторе под размер вольтметра. Размер можно узнать померив циферблат вольтметра линейкой.

После того как установили циферблат и все подключили как по схеме, давайте зальем скетч:

#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

int MIN_TEMP = 16;
int MAX_TEMP = 28;

void setup() {

pinMode(9,OUTPUT);
Serial.begin(9600);
sensors.begin();

}

void loop() {

  float temperature = getTemperature();
  int voltage = temperatureToPWM(temperature);
  analogWrite(9,voltage);
  delay(500);
}

float getTemperature()
{
  float temperature =0;
  sensors.requestTemperatures(); 
  temperature = sensors.getTempCByIndex(0);
  Serial.println(temperature);
  return temperature;
}

int temperatureToPWM(float temperature)
{
  float temp=0;
  float voltage = 0;
  temp = temperature*10;
  voltage = map(temp,MIN_TEMP*10,MAX_TEMP*10,0,250);
  return voltage;
}

Ссылка на скачивание скетча: https://yadi.sk/d/6MuCYwC53T9h3C

Еще нам понадобится библиотеки для работы с датчиком.

Библиотеку OneWire можно скачать в стандартном репозитории.

А вот библиотеку Arduino-Temperature-Control-Library-master  моно будет скачать с github https://github.com/milesburton/Arduino-Temperature-Control-Library

Код очень прост. Сначала мы считываем тепературу с датчика ds18b20. Далее мы передаем значение температуры в функцию temperatureToPWM. Эта функция преобразует температуру в значения ШИМ (PWM) от 0 до 255 с помощью функции map ( иными словами маштабирует). Далее все что нам нужно это записать эти значения ШИМ в вольтметр.

Если хотите поставить другой диапазон измеряемой температуры, нужно всего лишь поменять значения в переменных MIN_TEMP и MAX_TEMP.

Ну думаю на этом все. Визуальная демонстрация работы будет в видео:

Primary Sidebar

Поиск

Новые записи

  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant
  • Транслируем показания с Уличного Bluetooth Датчика температуры по BTHome на дисплей датчика температуры XIaomi LYWSD03MMC
  • Заставляем Bluetooth датчики температуры tuya и xiaomi отправлять данные по Zigbee в Home Assistant.

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·