Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 19.03.2014, 13:18  
123ksn
Вид на жительство
 
Аватар для 123ksn
 
Регистрация: 09.10.2012
Сообщений: 327
Сказал спасибо: 124
Сказали Спасибо 71 раз(а) в 38 сообщении(ях)
123ksn на пути к лучшему
По умолчанию Re: Заставить работать библиотеку ds18b20.c

Для тех у кого в запасниках есть PIC16F84A выкладываю печатную плату(.lay) пятиканального (5шин 1-wire с одним датчиком DS18b20 на каждой шине) термометра с выводом информации на компьютер через COM-порт. У этой конструкции есть несколько отличительных особенностей:
1)Использование часовой микросхемы DS1307, которую без проблем можно не ставить.
2)Термометр только передает информацию в ПК, но ничего из него не принимает.
3)Для увеличения "дальнобойности" UART(RS232) я установил преобразователь в RS485. Подчеркиваю, не протокол RS485, а только преобразователь UART-RS485. Это значит, что информация UART (тайминги) передается в виде электрических сигналов протокола RS485. И не более! Соответственно на принимающей стороне (возле компьютера) должен быть обратный преобразователь RS485-UART. По функциональному смыслу такую схему надо назвать "удлинитель UART(RS232)".
4)Если "дальнобойность" не требуется, на плате собран транзисторный преобразователь UART-RS232.
5)Разъем для подключения питания не установлен, так как на момент разработки все эксперименты проводились рядом с компьютером и питание бралось из COM-порта.
6)В принципе, можно одновременно подключаться к разъемам RS232 и RS485. Конфликта не будет. Единственное, хватит ли мощности COM-порта для такой нагрузки? И если питание от отдельного источника, то подумать о правильном подключении.
7)Плата сделана размером для установки в монтажную коробку.
8 )Если используется DS1307, то термометр показывает время своей непрерывной работы, что для меня важно. Если запустить схему в полночь, то будет показывать реальное время
9)Внимание. Я не развел на плате разъем для подключения программатора.

У новичков может возникнуть несколько вопросов
1)Почему не подключить датчики на одну шину? Действительно, таких разработок подавляющее большинство. Но представьте себе ситуацию, что требуется измерять температуру в четырех углах самолетного ангара(он огромный) и в центре. Если проложить кабель по периметру, то это не одна сотня метров кабеля +гемморой. А в этой схеме 5 лучей и сразу видно где проблема с сигналом. Теперь можете уменьшить масштабы до своей квартиры или дома.
2)Почему не используется USB? На самом деле история эта давняя и мне требовалось загонять данные о температуре в 1С7.7 бухгалтерию, которая очень хорошо умеет работать с COM-портом.

Нажмите на изображение для увеличения
Название: Печатка 16F84A+ DS1307DIP +CR2032+MAX488.JPG
Просмотров: 48
Размер:	359.8 Кб
ID:	61004
Вложения:
Реклама:

Последний раз редактировалось 123ksn; 20.03.2014 в 01:00.
123ksn вне форума  
Непрочитано 19.03.2014, 13:46  
mimuh64
Прописка
 
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
mimuh64 на пути к лучшему
По умолчанию Re: Заставить работать библиотеку ds18b20.c

Сообщение от 123ksn Посмотреть сообщение
Время отображается вопросами.
Странно... Я изменил конфигурацию и паузу... Связь с 1307 не нарушена? Посмотри вот эти прошивки (3 сек и 300 сек).
Если период отображения 5 мин, зачем тебе отображать секунды? Может убрать их?
Вложения:
Тип файла: rar 5_18b20_232_hex_3.rar (2.0 Кб, 34 просмотров)
Тип файла: rar 5_18b20_232_hex_300.rar (2.0 Кб, 35 просмотров)
mimuh64 вне форума  
Сказали "Спасибо" mimuh64
123ksn (19.03.2014)
Непрочитано 19.03.2014, 14:14  
123ksn
Вид на жительство
 
Аватар для 123ksn
 
Регистрация: 09.10.2012
Сообщений: 327
Сказал спасибо: 124
Сказали Спасибо 71 раз(а) в 38 сообщении(ях)
123ksn на пути к лучшему
По умолчанию Re: Заставить работать библиотеку ds18b20.c

Сообщение от mimuh64 Посмотреть сообщение
Странно... Я изменил конфигурацию и паузу... Связь с 1307 не нарушена? Посмотри вот эти прошивки (3 сек и 300 сек).
Если период отображения 5 мин, зачем тебе отображать секунды? Может убрать их?
Проверил. Работает правильно и 3сек и 300сек. СПАСИБО
Нажмите на изображение для увеличения
Название: 5 channel 3 & 300sec.jpg
Просмотров: 56
Размер:	59.7 Кб
ID:	61010
123ksn вне форума  
Непрочитано 15.03.2015, 10:08  
mimuh64
Прописка
 
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
mimuh64 на пути к лучшему
По умолчанию Re: Заставить работать библиотеку ds18b20.c

Ответ на "личку"...
В файле два теста два примера паузы 20 секунд и 5 минут. Изменить время (часы и минуты) можно в течении пауз - по rs 232 выдать 2 байта. После паузы часы будут переустановлены...
Вложения:
Тип файла: rar RTC.rar (40.6 Кб, 25 просмотров)
mimuh64 вне форума  
Непрочитано 04.04.2015, 02:04  
kolobok0
Частый гость
 
Регистрация: 10.09.2010
Адрес: Резиновая
Сообщений: 45
Сказал спасибо: 3
Сказали Спасибо 14 раз(а) в 12 сообщении(ях)
kolobok0 на пути к лучшему
Счастье Re: Заставить работать библиотеку ds18b20.c

Сообщение от 123ksn Посмотреть сообщение
...3)Для увеличения "дальнобойности" UART(RS232) я установил преобразователь в RS485. Подчеркиваю, не протокол RS485, а только преобразователь UART-RS485....
4)Если "дальнобойность" не требуется...
5)Разъем для подключения питания не установлен, ...питание бралось из COM-порта.
8 )...Если запустить схему в полночь, то будет показывать реальное время
...
1)Почему не подключить датчики на одну шину?...5 лучей и сразу видно где проблема с сигналом....
...
RS485 - есть протокол описывающий электрические сигналы, а не протокольный уровень. Так что у Вас чистый RS485 внизу. Выше ничего нет просто из обычно-стандартного для такого подхода к связи с внешним миром.

RS232 в лёгкую держит метров 15-20 (микросхемы типа 8250 или 82650).

COM порт не имеет питания. Очень рисковано выпускать в свет девайс который запитывается от TTL логики. Бывают порты (см. ноуты) где нагрузочная способность выходных сигналов значительно меньше (частая болезнь девайсов запитанных таким образом). Т.е. можно ожидать большого кол-ва рекламаций.

По поводу в "полночь запустить" - это творчески. Почему-то напомнило тему фильма ВИЙ А если серьёзно - Вам пол-шажка до удачного девайса, если прикрутите модбас. Немного побарахтаться с временными задержками согласно протоколу ну и сам протокол поддержать. Думаю в последствии спрос может существенно вырасти на такой функционал.

По поводу подключения не в одну шину. Сильно актуально для быстрой локализации проблемы на объекте. Любой мало-мальски грамотный монтажник (умеющий воткнуть разъём папу в маму) быстро сможет вычислить что сдохло или глючит: достаточно переткнуть местами термодатчики. Если беда ушла - почистить разъёмы от окислов. Если глюк остался - сдох канал либо софт хандрит. Если глюк перебежал на другой датчик - под замену сам датчик(для этого тупо поверх бросается дубль и система успешно работает далее). С шиной Вы такого не получите. Как минимум надо решать проблемы с адресацией+не контакт+а жив ли датчик. Больше не известных - больше гимора на объекте. Больше подходит для садо-мазо...

ЗЫ
Но говоря про лучи - надо не забывать, что чем больше протяжённость проводов (для 1-Wire на ура несколько десятков метров по пром зоне) - тем серъёзнее надо подходить к защите таких лучей и строгости протокола, согласно даташиту. Как правило тут приходится всё делать самому. Всякие халявные детсадовские библиотеки тут сливают...
kolobok0 вне форума  
Непрочитано 04.04.2015, 09:40  
123ksn
Вид на жительство
 
Аватар для 123ksn
 
Регистрация: 09.10.2012
Сообщений: 327
Сказал спасибо: 124
Сказали Спасибо 71 раз(а) в 38 сообщении(ях)
123ksn на пути к лучшему
По умолчанию Re: Заставить работать библиотеку ds18b20.c

Сообщение от kolobok0 Посмотреть сообщение
Думаю в последствии спрос может существенно вырасти на такой функционал.
Со всеми Вашими словами согласен, кроме вышеприведенного предложения. Я использую это устройство в личных целях. Если хотите, то "допиливайте", и используйте для бизнеса. У меня работает пару лет и пережило все грозы. Но еще раз подчеркиваю, что с Вами я согласен и никому не рекомендую использовать сей девайс без опторазвязки в промышленных установках.
123ksn вне форума  
Непрочитано 04.04.2015, 20:31  
mimuh64
Прописка
 
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
mimuh64 на пути к лучшему
По умолчанию Re: Заставить работать библиотеку ds18b20.c

Крайняя версия...
Вложения:
Тип файла: rar RTC.rar (40.6 Кб, 21 просмотров)
mimuh64 вне форума  
Непрочитано 16.04.2015, 02:40  
123ksn
Вид на жительство
 
Аватар для 123ksn
 
Регистрация: 09.10.2012
Сообщений: 327
Сказал спасибо: 124
Сказали Спасибо 71 раз(а) в 38 сообщении(ях)
123ksn на пути к лучшему
По умолчанию Re: Заставить работать библиотеку ds18b20.c

Добрым людям доброго времени суток.
mimuh64 по моей просьбе несколько изменил формат информации выдаваемой термометром и внес возможность установки (редактирования) времени в DS1307 командой из терминальной программы. Но вот беда, хоть разговариваем мы с ним на русском языке, но я не могу узреть в его сообщениях как настроить время. Он же наотрез отказывается привести пример команды. Мои же потуги удовлетворительного результата не принесли. С позволения mimuh64 я привожу здесь информацию, которой, как он считает, достаточно, что бы правильно настроить время (часы и минуты):
1)14.03.2015, 21:08 Цитата: Формат для записи часов - два байта - первый часы, второй минуты. Формат смотри по ДШ на DS
2)Я же писал - смотри формат часов - двоично десятичный формат. Выдать нужно два байта "часы", "минуты"...

Полученную информацию я понял следующим образом: надо набрать в терминальной программе без пробела, запятой и т.п. некое число, разложение которого даст 4 тетрады. Две старшие тетрады будут содержать часы, а две младшие - минуты. Например, число 27 - это 0001. 0111 (один байт) соответствует 1.7 (семнадцати) часам. Макс количество часов в сутках 24, значит код такой: 0010.0100, что соответсвует десятичному числу 44. Чтобы ввести время, например, 10час10мин я должен ввести код 0001.0000 0001.0000, что соответсвует десятичному числу 10020.
Когда я ввожу это число(10020), то получаю время 31(час) 0=(мин) именно с равно.
Может кто подскажет как правильно устанавливать время? Протеус с hex прилагается.
Вложения:

Последний раз редактировалось 123ksn; 16.04.2015 в 02:43.
123ksn вне форума  
 

Закладки

Метки
ds18b20, pic16f84, proteus, многоканальный термометр
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить себя работать?! Sukhanov Отвлекитесь, эмбеддеры! 152 09.04.2009 08:08
Как заставить работать "Страж-SMS 4x4" в Беларуси milt Делимся опытом 2 05.11.2008 11:27
Как заставить COM-порт работать со своим устройством? LazarenkoAS2 Коллекция глюков 0 20.09.2008 20:25
[Решено] В какой обстановке Вам наиболее комфортно работать? Don_Ambrosio Отвлекитесь, эмбеддеры! 66 27.05.2008 14:02
Как заставить работать индикатор по I2C zevs Микроконтроллеры, АЦП, память и т.д 1 11.01.2005 22:44


Часовой пояс GMT +4, время: 17:33.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot