Views: 1479
Настоящий проект создан как обучающий с применением библиотек ds18b20 и LCDHD44780 и компилятора Microchip MPLAB XC8 C Compiler V1.12. Если необходимо иметь информацию по состоянию температуры в помещении или в здании, с количеством до 6 точек (16), то вы сможете использовать этот проект как основу. Для его реализации необходимо приобрести или собрать самостоятельно процессорную плату ILLISSI-4B-09-primum на контроллере PIC18F26K22 (хотя можно выполнить на любом контролере включая и 16 серию). Приобрести любой символьный индикатор, желательно 4 строчный (на драйвере HD44780). и датчики температуры DS18B20 (количество вы определяется самостоятельно для настоящего проекта 6, для вашего не более 16).
Для настоящего проекта необходимо, чтобы организовать возможность индикации температуры, это 4-строчный символьный индикатор на драйвере HD44780, плата ILLISSI-4B, и от 2 до 6 датчиков температуры DS18B20.
Для подключения датчиков, если это квартира, ничего особенного предпринимать для защиты не надо, достаточно трехпроводного провода или кабеля. Если предполагается использовать датчики в зонах повышенных электромагнитных или электростатических полей, то подключение необходимо выполнить прочитав статью Защита датчиков температуры DS18B20 от статического электричества.
Если используется стандартная плата ILLISSI-4B, то на ней необходимо запаять резисторы ка это сделан в статье DS18B20 — удаленный контроль температуры.
Далее подключаем индикатор как описано в Библиотека для работы с LCD индикаторами на драйвере HD44780.
Этот проект позволяет одновременно считывать и выводить на индикатор температуру по 6 точкам. При необходимости можно добавить клавиатуру и изменить проект, для вывода информации до 16 точек (стандартные возможности библиотеки).
Программа работает в режиме постоянного тестового сканирования датчиков, что позволяет производить “горячую” замену датчиков. Библиотека автоматически выполняет все функции по чтению адреса датчика, установки на место отключенного датчика – нового или добавление датчиков.
while(1)
{
if (Test_DT()==0)// это позволит наблюдать, как отключаются и поключаются датчики
{// в динамике
CursorLCD(1,0);
if (ET00==0)
{
StringLCD("Д1-");
BinDec(TEMPDAT[0],1);
SendLCDd(0xEF);
}
else
{
CursorLCD(1,4);
StringLCD("1 err ");
}
CursorLCD(1,11);
if (ET01==0)
{
StringLCD("Д2-");
BinDec(TEMPDAT[1],1);
SendLCDd(0xEF);
}
else
{
CursorLCD(1,14);
StringLCD("2 err ");
}
CursorLCD(2,0);
if (ET02==0)
{
StringLCD("Д3-");
BinDec(TEMPDAT[2],1);
SendLCDd(0xEF);
}
else
{
CursorLCD(2,4);
StringLCD("3 err ");
}
*******
CursorLCD(0,3);
StringLCD("кол. дат: ");
BinDec(naydendatch,0);
StringLCD("шт.");
}
else
{
CursorLCD(0,2);
StringLCD("обрыв линии");
__delay_ms(10);
__delay_ms(10);
__delay_ms(10);
}
CLRWDT(); // сброс сторожевого таймера
}
Если для программы которой необходимо только измерять температуру, до достаточность в место функции Test_DT() использовать функцию Celsio () только для измерения температуры.
Схема подключения LCD.
Схема подключения датчиков температуры DS18B20.
Фото проекта.
Видио проекта.
Схема проекта [wpdm_file id=97 template=”link-template-calltoaction3.php”]Файлы проекта. (Компилятор С, Microchip MPLAB XC8 C Compiler V1.12. MPLAB V8.8)[wpdm_file id=98 template=”link-template-calltoaction3.php”]
Это может быть интересно
Проект с использованием MCC часть 05Views: 2195 Эту часть назовем так как избавься от delay, там где а это реально не надо. Для это нам потребуется научиться использовать прерывания и работать с таймерами. Что такое …
PIC18 – System ArbitrationViews: 741 Системный арбитр. Разрешает доступ к памяти между выборами уровнями системы (т.е. Main, Interrupt Service Routine) и выбором периферийных устройств (т.е. DMA и Scanner) на основе назначенных пользователем приоритетов. Каждый …
MPLAB® Harmony – или как это просто! Часть 4.Views: 2392 Часть четвертая – это может показаться немного сложно. Структура проекта. Для облегчения конфигурирования проекты MPLAB Harmony обычно структурированы таким образом, чтобы изолировать код, необходимый для настройки «системы», от …
PIC18 – модуль DMAViews: 1360 Введение Модуль прямого доступа к памяти (DMA) предназначен для обслуживания передачи данных непосредственно между различными областями памяти без вмешательства процессора. Исключив при этом необходимость в интенсивной обработки …
Часы-кухонный таймерViews: 2904 Каждая кухня должна иметь кухонный таймер, который позволяет напоминать хозяйке когда проходить определенный промежуток времени. Например, печем пирог, варим яйца… , чтобы не смотреть постоянно на часы, установим таймер и …
Униполярный шаговый двигатель – часть 2Views: 1007 В этой части только итог и версия 2.0 универсальной, которая позволяет управлять шаговым двигателем во всех трех режимах и 3.0 специальной библиотеки только для одного полушагового режима. В …
MTouch® Модуль Емкостной Библиотеки для MPLAB®X Code Configurator (MCC)Views: 1412 Введение MTouch ® Модуль Емкостной Библиотеки для MPLAB ® X Code Configurator (MCC) позволяет быстро и легко генерировать решение кода на Cи для емкостной сенсорной кнопки, датчика приближения и слайдера.
Проект с использованием MCC часть 01Views: 2700 Для изучения MCC я выбрал простой контроллер PIC16F1509. Выбор его был обусловлен богатой новой периферией которую можно изучить. Для начала была собрана схема на макетной плате Внешний вид …
CLUBBEST – reasoning on the visualization of music.Views: 329 ВІД ЗАХОДУ ДО СВІТАНКУ АБО ПОБАЧИТИ МУЗИКУ. Час доби, коли почуття людини загострюються, – це час від заходу до світанку. В цей час людина відкрита для …
Модуль CAN в микроконтроллерах PIC18Views: 5953 Введение CAN последовательный интерфейс связи, который эффективно поддерживает распределенное управление в реальном масштабе времени с высокой помехозащищенностью. Протокол связи полностью определен Robert Bosch GmbH, в спецификации требований …









