Найти в Дзене
Сергей Захаров

Немного о программировании, DS18B20, AVR и Proteus

В этой статье хочу рассказать о программировании микроконтроллеров, без них сегодня электроники почти невозможна, применение микроконтроллеров упрощает конструкцию изделия и расширяет его функционал, начну, пожалуй, с самых простых микроконтроллеров AVR у них простая периферия и освоить их начинающим легче чем ARM или например TMS320, для начала подключим датчик температуры DS18B20 к atmega128, найти даташит на этот датчик в интернете не сложно, Вы можете это сделать сами, я лишь укажу некоторые моменты, которые следует учесть и покажу как проверить это в программе симулирования Proteus. Производитель датчика Dallas Semiconductor, прежде всего нужно помнить что это цифровой датчик и на его выходе сигнал в цифре с разрешением 9, 10, 11, 12 разрядов, и число разрядов нужно задавать, а это зависит от точности изме

В этой статье хочу рассказать о программировании микроконтроллеров, без них сегодня электроники почти невозможна, применение микроконтроллеров упрощает конструкцию изделия и расширяет его функционал, начну, пожалуй, с самых простых микроконтроллеров AVR у них простая периферия и освоить их начинающим легче чем ARM или например TMS320, для начала подключим датчик температуры DS18B20 к atmega128, найти даташит на этот датчик в интернете не сложно, Вы можете это сделать сами, я лишь укажу некоторые моменты, которые следует учесть и покажу как проверить это в программе симулирования Proteus.

  температурный  датчик  DS18B20
температурный датчик DS18B20

Производитель датчика Dallas Semiconductor, прежде всего нужно помнить что это цифровой датчик и на его выходе сигнал в цифре с разрешением 9, 10, 11, 12 разрядов, и число разрядов нужно задавать, а это зависит от точности измерений которая Вам нужна. Эти параметры задаются пользователем и сохраняются в энергонезависимой памяти, результат измерения представляется как 16-разрядное число, эти 2 байта выглядят следующим образом.

два  байта  данных   датчика  DS18B20.
два байта данных датчика DS18B20.

И соответствие этих байтов и температуры можно представить примерно так:

Соответствие   аналоговых  значений  температуры  и  цифрового  кода   в виде двух  байт.
Соответствие аналоговых значений температуры и цифрового кода в виде двух байт.

Обратите внимание, у этой микросхемы всего три вывода, два из них это питание и третий это вывод данных, ( не забывайте подтянуть его к питанию через резистор ).

Подключается к микроконтроллеру по интерфейсу 1-WIRE, каждый датчик имеет свой уникальный серийный код длинной 64 разряда, а значит есть возможность подключения нескольких датчиков на одну линию связи, микроконтроллер будет опрашивать каждый из них, напряжение питания микросхемы 3.0-5.5 вольт, и диапазон измерения температуры -55/+125 градусов, также есть возможность программирования тревожного сигнала датчика, у которого температура вышла за заданные пределы. Карту памяти и систему команд описывать не буду это легко найдет в интернете любой желающий. Укажу лишь схему подключения.

DS18B20 и  Atmega128  в  Proteus
DS18B20 и Atmega128 в Proteus

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

проверка в Proteus сборки AVR и DS18B20.

В следующем видео Вы увидите подключение другого датчика температуры, ТС72, к микроконтроллеру atmega128 по интерфейсу SPI, это высокоскоростной интерфейс передача по которому идет на частоте обычно выше 1Мгц, датчик DS18B20 работает на частоте около 1 гц.

проверка в Proteus atmega128 и TC72 по SPI

Eсли нужны проекты в Atmel Studio на atmega128 пишите, я Вам скину.