Nrf24L01+ термометр и ещё всяко разно.
|
|
kip96 | Дата: Вторник, 08.04.2014, 14:05 | Сообщение # 101 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Исходник. exersizze, входное сопротивление всё равно большое. Корректировку не проводил, тини13 и так забита, да и опытным путём промерял- всё в пределах 1С. Но корректировку можно провести и на приёмнике.
|
|
| |
LIA060 | Дата: Вторник, 08.04.2014, 15:25 | Сообщение # 102 |
Группа: Пользователи
Сообщений: 3
Статус: Offline
| Цитата kip96 ( ) MMA7361L — 3-осевой, аналоговый датчик ускорения. Можно пример как с ним работать? У меня этот http://www.buyincoins.com/item/10248.html
|
|
| |
kip96 | Дата: Вторник, 08.04.2014, 17:04 | Сообщение # 103 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Дык аналоговый-же. Измеряйте АЦП на каналах X,Y,Z. В зависимости от положения будет свой уровень напряжения на этих выходах. SL- контакт сна. Что-бы разбудить, подать "1". GS- выбор уровня измерения(чувствительность), 0G- будет "1"- когда он в невесомости ( к примеру падает если на земле ). ST-тест какой-то, не знаю, но он нафик не нать.
|
|
| |
noner2012 | Дата: Вторник, 08.04.2014, 21:40 | Сообщение # 104 |
Группа: Пользователи
Сообщений: 7
Статус: Offline
| Цитатаkip96,
Вопрос, зачем два раза выполняется?: W = Getadc(3) Время на инициализацию датчика?
|
|
| |
kip96 | Дата: Четверг, 10.04.2014, 21:07 | Сообщение # 105 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Видимо так. Первое измерение занижается. У меня есть, конечно этому своё объяснение, но тне факт, что оно правильное. Факт, что второе измерение близко к истине. Я с этим вопросом не разбирался.
|
|
| |
noner2012 | Дата: Пятница, 11.04.2014, 10:32 | Сообщение # 106 |
Группа: Пользователи
Сообщений: 7
Статус: Offline
| kip96, Если можно еще пару вопросов. $crystal = 600000 это задается частота? тогда где-то должна быть настройка прескалера. фьюзами же ее не выставищь.
Никогда еще не работал с Watchdog. Его надо включать фьюзами?
Upd. Все. разобрался, 0.6Mhz получаем из 4.8+CKDIV8. WDTON включать надо.
Uupd. Не, не получается прочитать ответ с передатчика. Можно еще посмотреть на исходники приемника?
Может кто даст ссылку на хорошее описание NRF24L01? Даташит для меня сложноват.
Сообщение отредактировал noner2012 - Пятница, 11.04.2014, 16:14 |
|
| |
kip96 | Дата: Пятница, 11.04.2014, 21:34 | Сообщение # 107 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Исходник приёмника.... я там сам уже с трудом разбираюсь, Приёмник в составе метеостанции на М328. В исходнике коментарии иногда старые попадаются. Точнее они не соответствуют(просто некогда было корректировать)Посмотрите в настройках приёмника- D_bytes(1) = Write_reg + Rf_setup D_bytes(2) = &H07. Приёмник должен быть настроен на 1мБ., В даташите смотрите карту регистров. Всё там легко переводится и понятно, что можно переключить на свой лад.
|
|
| |
noner2012 | Дата: Пятница, 11.04.2014, 21:57 | Сообщение # 108 |
Группа: Пользователи
Сообщений: 7
Статус: Offline
| Я правильно понимаю, что здесь адрес передатчика: D_bytes(1) = Write_reg + Rx_addr_p0 'RX адрес для pipe0 D_bytes(2) = 2 D_bytes(3) = &H43 D_bytes(4) = &H10 D_bytes(5) = &H10 D_bytes(6) = 2 Spiout D_bytes(1) , 6
т.е. &Н0243101002 и такой же адрес должен быть в приемнике? И в Rx_addr_p0 и в Tx_addr?
Сообщение отредактировал noner2012 - Пятница, 11.04.2014, 22:18 |
|
| |
kip96 | Дата: Пятница, 11.04.2014, 22:35 | Сообщение # 109 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Да, адреса должны быть одинаковы, адрес для pipe0 в передатчике и приёмнике. Tx_addr для передачи ответа об удачном приёме.
|
|
| |
noner2012 | Дата: Воскресенье, 13.04.2014, 20:49 | Сообщение # 110 |
Группа: Пользователи
Сообщений: 7
Статус: Offline
| А как можно убедиться, что передатчик (который на attiny13) работает? Диод, повешенный на 3-ю ногу, раз в ~8 сек. мигает, но бухта МГТФ-а (~100м) подключенная к осциллографу и лежащая на передатчике в момент моргания диода - ничего не кажет. Или не должОн?
|
|
| |
noner2012 | Дата: Четверг, 17.04.2014, 19:53 | Сообщение # 111 |
Группа: Пользователи
Сообщений: 7
Статус: Offline
| C передатчиком разобрался, работает. Теперь другая проблема. Напряжение батареи - передается все время одно число, при напряжении питания 2-5V Датчик температуры не подключал, но он вроде и не должен мешать/помогать этому.
|
|
| |
kip96 | Дата: Пятница, 18.04.2014, 20:55 | Сообщение # 112 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Для измерения напряжения, термометр нужен. Если посмотрите код, то увидите, что напряжение с термодатчика измеряется при разных опоркаках. Из разницы и вычисляется напряжение батареи. На ножке, должен быть какой-то потенциал. В тини13 нет возможности измерить напряжение внутренним режимом, как например в Меге48. А при помощи этой хитрости, отказываемся от делителя напряжения, чем существенно снижаем энергопотреблениен, точнее доводим его до минимально возможного.
|
|
| |
noner2012 | Дата: Суббота, 19.04.2014, 16:44 | Сообщение # 113 |
Группа: Пользователи
Сообщений: 7
Статус: Offline
| мне показалось, что напряжение батареи определяется вот так: http://www.rlocman.ru/shem/schematics.html?di=73220
|
|
| |
alec220 | Дата: Пятница, 25.07.2014, 23:51 | Сообщение # 114 |
Группа: Свой человек
Сообщений: 3
Статус: Offline
| а мне как-то с набором аурдино достался аналоговый алко метр, (на ебее их полно) его тоже на настенные часы можно вывести?
|
|
| |
sany2 | Дата: Суббота, 26.07.2014, 09:26 | Сообщение # 115 |
Группа: Проверенные
Сообщений: 107
Статус: Offline
| Это же сколько выпить надо , чтоб откалибровать...
|
|
| |
GSV | Дата: Четверг, 28.08.2014, 19:14 | Сообщение # 116 |
Группа: Друзья
Сообщений: 38
Статус: Offline
| Всем привет. Не попадался ли кому пример работы Nrf24L01 примерно по такому алгоритму: 1-е устройство(пульт ДУ)-только передача 2-е устройство(исполнительное устройство,ИУ)-прием/передача 3-е устройство (устройство мониторинга,УМ)-только прием Нажимаем кнопку на пульте ДУ, код нажатой кнопки попадает на приемник ИУ.ИУ включает,например, реле.По факту включения реле ИУ переключается в режим передачи и отправляет на УМ код,подтверждающий включение реле,после этого ИУ переключается в режим приема и ждет следующую посылку. Буду благодарен за любую информацию.
|
|
| |
kip96 | Дата: Воскресенье, 16.11.2014, 16:02 | Сообщение # 117 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Всем привет! Термометр на nrf24l01 получил развитие. Дело в том, что температуру измеряем относительно опорки, а на контроллере она может быть, если верить Евстифееву, от 1 до 1.2 вольт, Она стабильна, но у каждого мк своя, Поэтому и коэффициент пересчёта разный. Каждый раз пересчитывать и менять прошивку муторно, поэтому сделал такой девайсик. Трансивер, на той же плате с мк Атмега168, кварц 11.0592, скорость 115200 Программа на пурике. В программе выставляется период посылок (время сна между посылками) и номер канала. во общем смотрим видео всё на видео.
|
|
| |
exersizze | Дата: Воскресенье, 16.11.2014, 19:17 | Сообщение # 118 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| kip96, ну что сказать - класс! программой для компа поделишься? или я ее где-то пропустил?
|
|
| |
max | Дата: Воскресенье, 16.11.2014, 19:48 | Сообщение # 119 |
Группа: Друзья
Сообщений: 170
Статус: Offline
| Прикольно.
|
|
| |
Scorpushka | Дата: Воскресенье, 16.11.2014, 21:36 | Сообщение # 120 |
Группа: Свой человек
Сообщений: 33
Статус: Offline
| хотелось бы получить если не исходник по приложению на Пк, то хотя бы ее кусок для повторения
|
|
| |
kip96 | Дата: Понедельник, 17.11.2014, 11:21 | Сообщение # 121 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Да, конечно! Вчера у меня беда с компом случилась.Только видео загрузил, флэшку с видео вытаскиваю, и блым!!! Как специально! Вечером постараюсь победить его и выложу. Если помните, термометр имеет внутренние софтовые часы, и посылки отправляет по секундам. Идея такая - синхронизировать часы всех датчиков и что-бы они отправляли посылки, не мешая друг-другу.
|
|
| |
kip96 | Дата: Понедельник, 17.11.2014, 19:44 | Сообщение # 122 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Выкладываю. В архиве программа для ПК и исходник. Прошивки на термометр и трансивер (пока только прошивки. в исходниках много мусора - не красиво, подчищу- выложу) Пурик начал изучать пару недель назад, так что критикуйте, подсказывайте, исправляйте. Добавил кнопку EXIT для вывода термодатчика из програмного режима с компа, чтоб не дёргать туда-сюда. Вот как сделать что бы при нажатии спрашивал-"ВЫ точно хотите это сделать?" ? З.Ы. Спасибо maxу, добавил пару сообщений, архив обновил
Сообщение отредактировал kip96 - Понедельник, 17.11.2014, 23:39 |
|
| |
max | Дата: Понедельник, 17.11.2014, 20:57 | Сообщение # 123 |
Группа: Друзья
Сообщений: 170
Статус: Offline
| Цитата kip96 ( ) Вот как сделать что бы при нажатии спрашивал-"ВЫ точно хотите это сделать?" ? Как вариант заменить строки 272, 273 на эти: Код Case 15 Select MessageRequester("КОНФИГУРАТОР 24L01+", "ВЫ точно хотите это сделать?", #MB_YESNO|#MB_ICONWARNING|#MB_DEFBUTTON2) Case #IDYES ComOut("R") Case #IDNO EndSelect Да, и в архиве нет файла иконки.
|
|
| |
kip96 | Дата: Понедельник, 17.11.2014, 22:58 | Сообщение # 124 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| , то что доХтор прописал! Пурик рулит! иконку добавил.
Сообщение отредактировал kip96 - Понедельник, 17.11.2014, 23:03 |
|
| |
SVN | Дата: Четверг, 20.11.2014, 10:23 | Сообщение # 125 |
Группа: Пользователи
Сообщений: 2
Статус: Offline
| Интересные идеи и разработки, но... Для какого-то заказчика в перспективе? Вероятность совпадения разработанного девайса с реальной потребностью заказчика практически равна нулю. И вот наконец-то появился долгожданный! Как вы, гениальные энтузиасты, будете с ним работать? Наверняка придёться дорабатывать уже сделанное и всё по памяти или листингу в программе. А комментов минимум или вообще не оствляете... Представте, что я и есть тот самый заказчик. Но не самый "удобный" для начинающих и привыкших к свободе мысли. В настоящей реальности программирование, которое описывается практически на всех форумах, называется кодировкой или переводом текста алгоритма в команды заданного микроконтроллера. Сказанное не простые фантазии, а опыт разработки. Желающие освоить профессиональные методики разработки прошу откликнуться.
|
|
| |
sany2 | Дата: Четверг, 20.11.2014, 23:31 | Сообщение # 126 |
Группа: Проверенные
Сообщений: 107
Статус: Offline
| Желающие найдутся.Но на рыбалку ведь ездят не только за рыбой .А с таким подходом вся рыбалка будет заключаться в походе в магазин за рыбой.
Сообщение отредактировал sany2 - Четверг, 20.11.2014, 23:31 |
|
| |
SVN | Дата: Пятница, 21.11.2014, 07:47 | Сообщение # 127 |
Группа: Пользователи
Сообщений: 2
Статус: Offline
| Большинство на форуме работают независимо и расчитывают, что их результаты работы кому-нибудь пригодятся. Я тоже так работал, пока мне не показали методику работы по Техническому заданию. Перестроиться было сложно. Зачем портить бумагу, когда можно все комментарии и пояснения вносить в листинг программы? Этот метод гарантирует вам неприкосновенность вашего результата от воровства и абсолютную свободу. Но каждому хочется рыбы и не только её. Именно поэтому "желающие найдутся", но придётся решить проблемы психологического или, точнее, этического характера. Следовательно, необходимо сначала познакомиться. Лично я начал именно с этого сайта по причине его малочисленности. "Заболтать" идею просто некому. На "крутом" форуме на одного желающего приходится несколько болтунов или скучающих "имитаторов" преклонного возраста, избавиться от их присутствия практически невозможно.
Сообщение отредактировал SVN - Пятница, 21.11.2014, 07:50 |
|
| |
mvn77 | Дата: Среда, 24.06.2015, 02:44 | Сообщение # 128 |
Группа: Пользователи
Сообщений: 7
Статус: Offline
| В коде используется отключение питаня для реинициализации NRF в виде "U_24l01 = 0 : Waitms 30 : U_24l01 = 1 : Waitms 30 'Выключение nRF24L01" А если NRF запитана на постоянку, как правильно выполнить переход из прима на передачу и наоборот?
Сообщение отредактировал mvn77 - Среда, 24.06.2015, 18:59 |
|
| |
a5020k | Дата: Понедельник, 29.06.2015, 14:36 | Сообщение # 129 |
Группа: Свой человек
Сообщений: 43
Статус: Offline
| Когда приемник
D_bytes(1) = Write_reg + Config_nrf 'Установки CONFIG-> PRX=1(RX_device), PWR_UP=1, CRC 2bytes, D_bytes(2) = &B00001111 ' 00001111(0F) ' - ' - ' - ' - ' - Enable - 1 CRC ' - CRC encoding scheme - 2 bytes ' - POWER - 1 - POWER UP (0-POWER DOWN) ' - RX/TX выбор - 1 RX (0 - TX)
Call W_register(2) 'запись в nrf по SPI
Когда передатчик тоже самое только &B00001110 Переключение должно происходить после перехода через POWER DOWN Отключаете переходите включаете.
|
|
| |
kip96 | Дата: Понедельник, 29.06.2015, 22:16 | Сообщение # 130 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Цитата егоa5020k ( ) Переключение должно происходить после перехода через POWER DOWN Отключаете переходите включаете. это обязательно? у меня четыре приёмника в сети работают как ретрансляторы. Т.е при получении определённого кода, повторяют его в эфир, просто переходя на ипередачу, потом опять на приём. Сбоев не было. Может что в даташите не дочитал
|
|
| |
a5020k | Дата: Вторник, 30.06.2015, 08:53 | Сообщение # 131 |
Группа: Свой человек
Сообщений: 43
Статус: Offline
| Я очень рад за вас и за ваши ретрансляторы. Выложите человеку код и поясните что делать.
|
|
| |
kip96 | Дата: Вторник, 30.06.2015, 21:50 | Сообщение # 132 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Слава Богу, хоть кто то рад за меня! Вы советуете человеку переходить на передачу/приём через POWER DOWN, и я прошу просто разъяснить почему. В целях самообразования.
|
|
| |
Almaz | Дата: Вторник, 04.08.2015, 18:17 | Сообщение # 133 |
Группа: Пользователи
Сообщений: 1
Статус: Offline
| Здравствуйте! Меня тоже интересует вопрос - как можно без выключения питания переходить из режима передачи в режим приема и наоборот. У меня при переключении с режима передачи на прием на выводе IRQ модуля остается лог. 0.
|
|
| |
kestrel | Дата: Вторник, 08.09.2015, 21:34 | Сообщение # 134 |
Группа: Проверенные
Сообщений: 52
Статус: Offline
| datasheet ничего не говорит про выключение питания при переходе с приема на передачу и наоборот, переход осуществляется записью соответствующего бита в регистре config. Ссылка на описание модуля на русском (инженерном!) http://aterlux.ru/index.php?page=article&art=nrf24l01p, мне это помогло разобраться. как это работает:), а то читая комментарии к коду долго не мог понять как он конфигурируется (например, что то типа этого: положи в корыто 5 байт регистрации Pload? ну и т.д.) Kip96 отдельное спасибо за публикацию его работ с модулем.
|
|
| |
kestrel | Дата: Воскресенье, 31.01.2016, 18:48 | Сообщение # 135 |
Группа: Проверенные
Сообщений: 52
Статус: Offline
| пробую nrf24L01 режиме MultiCeiver (пока исп. 3 передатчика), конфигурирую все по datasheet`у. с передатчиками pipe0 и pipe1 все нормально, а вот pipe2 не могу запустить, все упирается в запись Rx_addr_p2 D_bytes(1) = Write_reg + Rx_addr_p0 '(data pipe 0) D_bytes(2) = &H78 D_bytes(3) = &H78 D_bytes(4) = &H78 D_bytes(5) = &H78 D_bytes(6) = &H78 Call W_register(6) '/0x0B-------------------------------------------------------------------------- D_bytes(1) = Write_reg + Rx_addr_p1 '(data pipe 1) D_bytes(2) = &HB3 D_bytes(3) = &HB4 D_bytes(4) = &HB5 D_bytes(5) = &HB6 D_bytes(6) = &HF1 Call W_register(6) '/0x0C-------------------------------------------------------------------------- D_bytes(1) = Write_reg + Rx_addr_p2 ' (data pipe 2) D_bytes(2) = &HCD Call W_register(2) правильно я делаю последнюю запись? отсюда: 0x0C-0x0F RX_ADDR_P2 - RX_ADDR_P5 8-битные регистры, задающие значения младшего байта адреса для каналов 2-5. Значения старших 32 бит берутся из регистра RX_ADDR_P1. Значение регистров по умолчанию: 0xC3, 0xC4, 0xC5, 0xC6 смотрю дамп регистров, при такой записи RX_ADDR_P2: CDCDCDCDCD. написал много может кто подсажет
|
|
| |
kestrel | Дата: Понедельник, 01.02.2016, 20:09 | Сообщение # 136 |
Группа: Проверенные
Сообщений: 52
Статус: Offline
| а у Вас получилось запустить nrf24l01 в этом режиме? по идее мы можем прочитать полные адреса pipe2-pipe5, в моем случае он должен быть таким &HB3B4B5B5_CD pipe2 вот здесь обсуждалась аналогичная проблема и была решена https://devzone.nordicsemi.com/questio....mitters насколько я понял надо было поменять порядок записи адреса, но хотелось чтобы кто-то разъяснил как это сделать.
|
|
| |
kestrel | Дата: Вторник, 02.02.2016, 19:00 | Сообщение # 137 |
Группа: Проверенные
Сообщений: 52
Статус: Offline
| kip96, если это возможно кинь мне личку пример кода, интересует только приемник и только режим MultiCeiver заранее спасибо
|
|
| |
kip96 | Дата: Вторник, 02.02.2016, 22:37 | Сообщение # 138 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Доступно только для пользователейЭто основные настройки, которые я вставляю в начале кода. Дальше как обычно. Коды я в теме сюда все выкладывал. Сейчас просто коды так обросли, что я порой сам путаюсь, что я в них делаю.
|
|
| |
kestrel | Дата: Среда, 03.02.2016, 19:18 | Сообщение # 139 |
Группа: Проверенные
Сообщений: 52
Статус: Offline
| kip96, спасибо за участие, поменял адресацию на вашу, все заработало. Три передатчика четко отправляют температуру и напряжение.
|
|
| |
qewin | Дата: Воскресенье, 07.02.2016, 21:27 | Сообщение # 140 |
Группа: Пользователи
Сообщений: 51
Статус: Offline
| Здравствуйте.А вот это пойдет nRF24L01 smd
|
|
| |
kip96 | Дата: Понедельник, 08.02.2016, 13:07 | Сообщение # 141 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Если там nRF24l01, то подойдёт. Но чаще там "похожий nRF24l01" (так переводчик пишет) Он не подходит. Где -то в нете обсуждались такие модули. Запустить их не удалось. Если найдёте решение, то выложите ссылку, пожалуйста.
|
|
| |
qewin | Дата: Воскресенье, 14.02.2016, 23:35 | Сообщение # 142 |
Группа: Пользователи
Сообщений: 51
Статус: Offline
| Да оказывается модули у меня SE8R01. Пока нашел только на Arduinе пример. Попробовал (кое как разобрался) работает.Теперь бы разобраться и перекинуть в Баском.
1.Vcc (1.8-3.6V) 2.GND 3.CE 4.CS 5.SCK 6.MOSI 7.MISO 8.IRQ
Сообщение отредактировал qewin - Понедельник, 15.02.2016, 11:27 |
|
| |
a5020k | Дата: Среда, 03.08.2016, 14:21 | Сообщение # 143 |
Группа: Свой человек
Сообщений: 43
Статус: Offline
| Для информации .. Сегодня ровно год как решил провести эксперимент в полевых условиях т.е на даче. Смонтировал ... GSM +управление (газ котел + 3 насоса основных и т.п.) + 5 датчиков (1 улица - 4 в доме) на NRF24 ( 4 на батарейки 123A) + 1 датчик на CR2032 ( чисто показометр без принятия участия в работе) в качестве эксперимента на сколько хватит. Алгоритм работы датчиков следующий .. 5 датчиков на NRF24 (на датарейки 123A) - 1 раз в 1 минуту и работает как передатчик всегда - 1д- улица 4д- дом. 1 датчик на CR2032 -датчик вещает в эфир 1 раз в 3 минуты и работает как передатчик всегда - дом. Сборка: Atmega 48a nrf24 данные в эфир TC1047a измерение температуры. Atmega 48a - сам измеряет напряжение питания. Просыпается по DOG таймеру (без перезагрузки - по прерыванию) считает пора ли измерять, посылать,моргнуть светодиодом если пора - все делает и спать.. В эфир посылается 3 значения - номер датчика, температура, напряжение (данные готовые - преобразованные). 123A - GP черного цвета - на тот момент самые дорогие - начальное напряжение (из коробки) - 3.2..4 в. CR2032 - купленная в магазине Ikea (6 шт желтая упаковка) цены не помню, но не дорогие - 3.21в. Через год в датчиках 1 - 123А - просто сдохла - напряжение упало в 0 за день до Нового года и причем как всегда самая основная по которой регулирую температуру на 1 этаже. Остальные 4 - 3.02..0 и в сне и в передаче. CR2032 - 3.0 в режиме сна 2.91..3 в режиме отправки на сколько тестер успевает показать. Данные по тестеру и в показаниях расходятся в 0.02 скорее всего - погрешность.. Причем по виду уличный датчик (в тени под балконом в 3 метрах от земли) показывает немного лучший результат. Остальные работали в режиме 3 дня температура 23-24 градуса (выходные) остальные дни с падением до 10 С и с подъемом до 24 С. Работают без выключения.. К чему я это все ... - наши алгоритмы в теме работают и я бы сказал, что неплохо ...
|
|
| |
exersizze | Дата: Пятница, 05.08.2016, 15:30 | Сообщение # 144 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| Неплохо, неплохо)
|
|
| |
kip96 | Дата: Пятница, 05.08.2016, 19:41 | Сообщение # 145 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| У меня термометр работает уже 1,5 года на CR2032. Вторая зима приближается. Напряжение -2,98. 1 раз в 20 сек. Перед этим работал, и потом быстро села батарейка. Оказалось, что смд кондёры(глина) , видимо, критичны к условиям. Хоть и герметичный корпус, но видимо не достаточно. Короче после замены кондёров, пару раз искупал плату в лаке, и всё ОК!
Цитата В эфир посылается 3 значения - номер датчика, температура, напряжение (данные готовые - преобразованные). Напряжение отправляю одним байтом. Второй байт всегда равен 1, зачем его отправлять?. Освободившийся байт, использую как индикатор ретранслятора. каждый ретранслятор выставляет свой бит, что бы потом сам себя не передавать. Итого - до 8 ретрансляторов можно. Я справляюсь тремя. В качестве ретрансляторов - любые стационарные устройства с nRF. Главные - первичные часы, которые каждый час (или по запросу) синхронизируют все устройства.
|
|
| |
a5020k | Дата: Понедельник, 08.08.2016, 21:06 | Сообщение # 146 |
Группа: Свой человек
Сообщений: 43
Статус: Offline
| Да мне кажется тоже не плохо .. главное экономия газа получилась .. Я не старался использовать CR по причине того, что у меня дом под охраной (платной) и в каждой комнате висит беспроводной датчик охраны в котором стоит 123А и который отказывается работать от 2.9 вольт.А так как одна замена это 12 штук и раз в год то у меня их в коробке уже очень много. И смысл был в том чтобы использовать напряжение от 2.4 (мин ТС) до мах что остается от бу батарейки из сигнализации. Заметил еще одно дорогие 123А дохнут не доживая до 2.8 - сразу в 0. Дешевые падают до 2.0. И здорово растягивают время замены. Не удобство только калибровка аналогового (зато дешевый) датчик температуры и измерение напряжения. Почему выбрал алгоритм который написал... старался как можно проще ...сейчас после года смотрю- как будто не я писал... Лаком залил только уличный и тот который в подвале. И еще расстояние между приемником и датчиками 5-8 метров и идут они через бетонные перекрытия и стены. NRF в приемнике без усилителя работает но принимает через раз. Заказал с NFR + усилитель проблем больше нет. Сейчас идея перейти на компактный sim800l, на экран с тачем и на sht21 (дорогой но решает все проблемы и работает до 2.1 v) В рабочих датчиках емкости на питании нет To exersizze читал что вы заморачивались бесперебойным питанием - получилось что нибудь?
Сообщение отредактировал a5020k - Понедельник, 08.08.2016, 21:12 |
|
| |
exersizze | Дата: Четверг, 11.08.2016, 17:38 | Сообщение # 147 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| Не, до дела так руки и не дошли.
|
|
| |
a5020k | Дата: Пятница, 12.08.2016, 12:07 | Сообщение # 148 |
Группа: Свой человек
Сообщений: 43
Статус: Offline
| Не совсем по теме .. Попробовал вашу схему (по форуму по переключению на батарею) в принципе работает, но напряжение увеличивал до 5 v - т.к. на диоде 0.5 ( моет диоде) падение и поставил схему DC (UP и DOWN при входе 2.0 v - 6 v выход всегда 4.0v ) sim900D при переключении работает уверенно... не сбрасывается (не в полевых условиях) ... одно но у меня вышка МТС рядом и ток SIM 900D при поиске не превышает 200 мА при работе 100mA .. что будет при 2A и преобразователе с SIM пока не ясно. Такая же схема преобразователя для 3.3 v для контролера. Будет ли 100% одновременное переключение...? Если соберу и заработает то ..выложу..
|
|
| |
rulezzznv | Дата: Четверг, 15.09.2016, 08:37 | Сообщение # 149 |
Группа: Проверенные
Сообщений: 1
Статус: Offline
| Парни дайте пожлусйста схему с attiny2313 или attiny13 и прошивку спасибо)))
|
|
| |
m-mishel | Дата: Воскресенье, 02.10.2016, 20:37 | Сообщение # 150 |
Группа: Проверенные
Сообщений: 7
Статус: Offline
| термометр это хорошо,возникла идея и измерять напряжение акб, к примеру стоит авто под окном зимой и не известно заведешься сегодня или нет ->меряем напряжение акб + температуру =>передаем. на приемнике устанавливаем зуммер + под меню для установки ограничений на срабатывание порогов темп и напряжения акб. хотя я думаю температура не сильно роль играет как напряжение на акб. Начал изменять исходник из статьи "передача температуры" под напряжение ,не могу скомпилировать окончательно выкинув при это все что связано с датчиком DS18B20. ЗАПУТАЛСЯ В КОДЕ. Код$regfile = "M8def.dat" $crystal = 16000000 $baud = 19200 $hwstack = 40 $swstack = 20 $framesize = 40
'=== Declare sub routines +++++++++++++++++++++++++++++Работаем с передатчиком===НАЧАЛО Declare Sub R_register(byval Command As Byte , Byval C_bytes As Byte) Declare Sub W_register(byval C_bytes As Byte)
'=== Constante === 'Define nRF24L01 interrupt flag's Const Idle_int = &H00 'Idle, no interrupt pending Const Max_rt = &H10 'Max #of Tx Retrans Interrupt Const Tx_ds = &H20 'Tx Data Sent Interrupt Const Rx_dr = &H40 'Rx Data Received
'SPI(nRF24L01) commands
Const Read_reg = &H00 'Define Read Command To Register Const Write_reg = &H20 'Define Write Command To Register Const Rd_rx_pload = &H61 'Define Rx Payload Register Address Const Wr_tx_pload = &HA0 'Define Tx Payload Register Address Const Flush_tx = &HE1 'Define Flush Tx Register Command Const Flush_rx = &HE2 'Define Flush Rx Register Command Const Reuse_tx_pl = &HE3 'Define Reuse Tx Payload Register Command Const Nop_comm = &HFF 'Define No Operation , Might Be Used To Read Status Register 'SPI(nRF24L01) registers(addresses) Const Config_nrf = &H00 'Config' register address Const En_aa = &H01 'Enable Auto Acknowledgment' register address Const En_rxaddr = &H02 'Enabled RX addresses' register address Const Setup_aw = &H03 'Setup address width' register address Const Setup_retr = &H04 'Setup Auto. Retrans' register address Const Rf_ch = &H05 'RF channel' register address Const Rf_setup = &H06 'RF setup' register address Const Status = &H07 'Status' register address Const Observe_tx = &H08 'Observe TX' register address Const Cd = &H09 'Carrier Detect' register address Const Rx_addr_p0 = &H0A 'RX address pipe0' register address Const Rx_addr_p1 = &H0B 'RX address pipe1' register address Const Rx_addr_p2 = &H0C 'RX address pipe2' register address Const Rx_addr_p3 = &H0D 'RX address pipe3' register address Const Rx_addr_p4 = &H0E 'RX address pipe4' register address Const Rx_addr_p5 = &H0F 'RX address pipe5' register address Const Tx_addr = &H10 'TX address' register address Const Rx_pw_p0 = &H11 'RX payload width, pipe0' register address Const Rx_pw_p1 = &H12 'RX payload width, pipe1' register address Const Rx_pw_p2 = &H13 'RX payload width, pipe2' register address Const Rx_pw_p3 = &H14 'RX payload width, pipe3' register address Const Rx_pw_p4 = &H15 'RX payload width, pipe4' register address Const Rx_pw_p5 = &H16 'RX payload width, pipe5' register address Const Fifo_status = &H17 'FIFO Status Register' register address
Dim D_bytes(33) As Byte , B_bytes(33) As Byte 'Dim the bytes use for SPI, D_bytes = outgoing B_bytes = Incoming Dim Temp As Byte , W As Word Dim Packet_count As Byte
'=== Config hardware === Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 16 , Noss = 1
'Software SPI is NOT working with the nRF24L01, use hardware SPI only, but the SS pin must be controlled by our self 'ПОРТЫ УКАЗЫВАЕМ СТОКОВ Config Pind.5 = Output 'CE pin is output Config Pinb.2 = Output 'SS pin is output Config Pind.7 = Input 'IRQ pin is input
Ce Alias Portd.5 Ss Alias Portb.2 Irq Alias Pind.7 '+++++++++++++++++++++++++++++++++++++++++++КОНЕЦ РАБОТЫ С ПЕРЕДАТЧИКОМ 'подключение светодиодов индикации Config Portd.3 = Output Config Portd.4 = Output Red_led Alias Portd.3 Green_led Alias Portd.4
'++++++++++++++++++++++++++++++++++++++++++++++ВСТАВЛЯЕМ ВОЛЬТМЕТР ПЕРЕМЕННЫЕ Dim Voltage1 As Single
Dim Readadc1 As Word Config Adc = Single , Prescaler = Auto , Reference = Internal
'++++++++++++++++++++++++++++++++++++++++++++++++МИГАЕМ СВЕТОДИОДАМИ Red_led = 1 Green_led = 1 Waitms 20 Red_led = 0 Green_led = 0 Waitms 60 Red_led = 1 Green_led = 1 Waitms 20 Red_led = 0 Green_led = 0 '++++++++++++++++++++++++++++++++++++++++++++++++ПЕРЕДАЕМ ДАННЫЕ Spiinit 'init the spi pins
Set Ce Waitms 10 'Wait a moment until all hardware is stable Reset Ce 'Set CE pin low Reset Ss 'Set SS pin low (CSN pin)
Print "TX_device" 'Send to terminal who i'm
Red_led = 1
D_bytes(1) = Flush_tx 'Flush the TX_fifo buffer Call W_register(1) D_bytes(1) = Write_reg + Status 'Reset the IRQ bits D_bytes(2) = &B00110000 Call W_register(2) Red_led = 0
Do
Gosub V1 '++++++++++++++++++++++++++++++++++++++++++++++++ОБЗАВЕМ ПОДПРОГРАММУ ТАК
'Main loop for TX
Green_led = 1
Incr Packet_count 'Increase the send packet counter, for test only
If Packet_count > 254 Then Packet_count = 0
Gosub Setup_tx 'Setup the nrf24l01 for TX D_bytes(1) = Wr_tx_pload 'Put 5 bytes in the TX pload buffer D_bytes(2) = Voltage1 'Byte 1 - НАПРЯЖЕНИЕ '++++++++++++здесь верно? D_bytes(3) = Voltage1 'Byte 2 - îñòàëüíûå 4 áàéòà ìîæíî òàêæå èñïîëüçîâàòü â ñâîèõ öåëÿõ D_bytes(4) = &HCC 'Byte 3 D_bytes(5) = &H11 'Byte 4 D_bytes(6) = Packet_count 'Byte 5 Call W_register(6) 'Write 6 bytes to register
Waitms 2
Set Ce 'Set CE for a short moment to transmit the fifo buffer Waitms 1 ' Reset Ce ' Waitms 100 'Some delay to read the output on the terminal, line can be removed for max. speed
W = 0 'Counter for time out Do
Red_led = 1
If Irq = 0 Then Call R_register(status , 1) Voltage1 = B_bytes(1) And &B01110000 '++++++++++++++++здесь что меняем?
Select Case Voltage1 'Which IRQ occurs '++++++++++++тоже самое что и IF Case Max_rt 'MAX_RT Print "Maximum number of TX retries, Flushing the TX buffer now !" D_bytes(1) = Flush_tx 'Flush the TX buffer Call W_register(1) D_bytes(1) = Write_reg + Status D_bytes(2) = &B00010000 'Clear the MAX_RT IRQ bit Call W_register(2) Waitms 10 Red_led = 0 Exit Do Case Tx_ds 'TX_DS Print "Packet " ; Packet_count ; " send and ACK received." D_bytes(1) = Write_reg + Status D_bytes(2) = &B00100000 'Clear the TX_DS IRQ bit Call W_register(2) Waitms 10 Red_led = 0 Exit Do Case Else 'Other IRQ ?? Print "Other irq " ; Bin(temp) D_bytes(1) = Flush_tx 'Flush the TX buffer Call W_register(1) D_bytes(1) = Write_reg + Status D_bytes(2) = &B00110000 'Clear both MAX_RT, TX_DS bits Call W_register(2) End Select End If
Waitms 1 'Time out waiting for IRQ 1ms * 100 Incr W 'Increment W If W > 200 Then 'Waited for 200ms Print "No irq response from RF24L01 within 100ms" Exit Do 'Exit the wait loop End If
Loop
Red_led = 0 Wait 1
Loop
'=== Sub routines === Sub W_register(byval C_bytes As Byte) 'Write register with SPI Reset Ss 'Manual control SS pin, set SS low before shifting out the bytes Spiout D_bytes(1) , C_bytes 'Shiftout the data bytes trough SPI , C_bytes is the amount bytes to be written Set Ss 'Set SS high End Sub
Sub R_register(byval Command As Byte , Byval C_bytes As Byte) As Byte 'C_bytes = Count_bytes, number off bytes to be read Reset Ss 'Manual controle SS pin, set low before shifting in/out the bytes Spiout Command , 1 'First shiftout the register to be read Spiin B_bytes(1) , C_bytes 'Read back the bytes from SPI sended by nRF20L01 Set Ss 'Set SS back to high level End Sub
Setup_tx: 'Setup for TX
D_bytes(1) = Write_reg + Tx_addr 'TX adress D_bytes(2) = &H34 D_bytes(3) = &H43 D_bytes(4) = &H10 D_bytes(5) = &H10 D_bytes(6) = &H01 Call W_register(6) D_bytes(1) = Write_reg + Rx_addr_p0 'RX adress for pipe0 D_bytes(2) = &H34 D_bytes(3) = &H43 D_bytes(4) = &H10 D_bytes(5) = &H10 D_bytes(6) = &H01 Call W_register(6) D_bytes(1) = Write_reg + En_aa 'Enable auto ACK for pipe0 D_bytes(2) = &H01 Call W_register(2) D_bytes(1) = Write_reg + En_rxaddr 'Enable RX adress for pipe0 D_bytes(2) = &H01 Call W_register(2) D_bytes(1) = Write_reg + Rf_ch 'Set RF channel D_bytes(2) = 40 Call W_register(2) D_bytes(1) = Write_reg + Rf_setup 'Setup RF-> Output power 0dbm, datarate 2Mbps and LNA gain on D_bytes(2) = &H0F Call W_register(2) D_bytes(1) = Write_reg + Config_nrf 'Setup CONFIG-> PRX=0(TX_device), PWR_UP=1, CRC 2bytes, Enable CRC D_bytes(2) = &H0E Call W_register(2)
Return
'++++++++++++++++тут что пишем? Start Adc Readadc1 = Getadc(4) Voltage1 = Readadc1 / 1023 Voltage1 = Voltage1 * 30 Stop Adc Return '++++++++++++++++ или Loop?
|
|
| |