Нейтан Теннис

  Создаете ли вы операционную систему, микропрограммы или даже драйверы, от того, как вы напишете программное обеспечение, будет зависеть энергопотребление  конечного устройства. 
 
   Более века назад американский инженер Артур Веллингтон придумал шуточное и ёмкое определение нашей профессии: «Инженерия - это искусство качественно выполнить за один доллар ту работу, которую плохой работник может сделать за два доллара...» Другими словами, инженерия - это поиск баланса между качеством и эффективностью.

  
  Управление с помощью компьютера  исполнительным механизмом или иным устройством не всегда удобно. Первые два дня это, конечно, интересно, но потом начинает напрягать, потому что приходится совершать много лишних действий – включать компьютер, запускать программу и т.д. Возникает вопрос, а  не изготовить ли для этих целей автономный управляющий модуль с клавиатурой и дисплеем?
   Так как делается это для себя, то требуется дешевое, но в то же время красивое решение. С выбором дисплея особо не помудришь, дешевле и удобнее символьных LCD с контроллером еще не придумали, а вот при выборе клавиатуры можно хорошенько сэкономить.
   Давно хотел иметь у себя в хозяйстве барометр. Да все никак не получалось -  то дорого, то не попадался, то еще какие-то препятствия. В конце концов решил сделать сам, для чего и приобрел датчики давления MPX4115AP и влажности HIH-4000-004. Оба аналоговые, отсюда следует, что барометр по сути должен представлять из себя двухканальный вольтметр.
  Итак, у вас есть общее представление о том, как происходит обмен данными по 1-Wire шине и можно перейти к следующей части -  как обратиться к DS18B20, как запустить процесс температурного преобразования датчика,  как считать с него температуру, как установить температурное разрешение и т.д. 
 
   Последовательность операций для доступа к DS18B20 следующая:
 
1. Инициализация
2. Подача ROM команды
3. Подача функциональной команды  DS18B20

    
   Все (и в том числе я) называют DS18B20 цифровым датчиком температуры. Однако это не просто датчик, это программируемый цифровой термометр. Он измеряет температуру в диапазоне от –55 до +125 градусов Цельсия, имеет программируемое температурное разрешение от 9 до 12 бит и позволяет задавать верхний и нижний температурные пороги, в случае превышения которых,  устанавливается флаг аварии. 
   Каждый термометр DS18B20 имеет уникальный 64 битный серийный номер, который используется для его адресации на 1-Wire шине. Это позволяет объединять на одной шине несколько независимо работающих термометров и осуществлять между ними и микроконтроллером обмен данными по 1-Wire протоколу. 
   Также особенностью данного термометра является то, что его можно запитывать не только от источника питания, но и от сигнального провода. Это так называемый режим паразитного питания. В этом режиме для подключения DS18B20 требуется всего два провода — сигнальный и возвратный (земляной, GND).
Страница 23 из 37