[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Форум » форумы » Обсуждение материалов сайта » Nrf24L01+ термометр и ещё всяко разно.
Nrf24L01+ термометр и ещё всяко разно.
kip96Дата: Воскресенье, 24.02.2013, 21:33 | Сообщение # 1
Группа: Свой человек
Сообщений: 170

Статус: Offline
Респект Китайцам! Пара модулей мне обошлись мене чем за 100 руб., а возможности открываются! Почитав статьи Valera18 и exersizze  , решил и я их помучать. (Кстати, один уже замучал cry ) За основу взял тестовую прошивку Valera18 на три передатчика- подправил, привёл к удобному виду. Теперь легко работать!
Код
Eifr = 64
If Pind.2 = 0 Then                    'Ждёт приёма
Waitms 2
'''''''''''''''''''''''''''''
   Call R_register(rd_rx_pload , 5)                          'Читать 5 байт RX pload регистрации

  Call Tx(1 , Term_st , Term_ml , 4 , 5)                     'Передаём температуру на приёмник
Reset Led

Gosub Setup_rx                    'Включаем на приём                    'Set nRF20L01 в режиме приема
End If
Bitwait Pind.2 , Set
Powerdown                    'Спящий режим
Loop
 Весь основной цикл. Просыпаемсяпринимаем, отправляем , засыпаем. Всё просто. Что мы делаем с тем что приняли, или что мы отпраляем, уже сами решаем. В принципе, уже два передатчика могут между собой общаться.
Но приёмник, должен знать , какова судьба передатчиков, по-этому в нём есть проверка связи.
Передатчики на меге48, термометр на LM35(кстати, по мне, так стабильность их показаний лучше чем у 18В20). Приёмник на Меге8. В прошивке реализован термостат, где приёмник сам решает, вкл. или выкл. и даёт команду передатчику. Но это так, для пробы возможностей. Прошивка сильно бета smile , поэтому исправляем, ругаем, коментируем не стесняемся. 
Не забываем спасибо говорить Valera18 и exersizze
Прикрепления: 24L01__.rar (33.6 Kb)


 
exersizzeДата: Среда, 27.02.2013, 23:08 | Сообщение # 2
Группа: Администраторы
Сообщений: 723

Статус: Offline
Получается что радиомодуль выводит микроконтроллер из режима энергосбережения? А сколько кушает модуль в режиме приема?

 
Valera18Дата: Четверг, 28.02.2013, 15:25 | Сообщение # 3
Группа: Проверенные
Сообщений: 22

Статус: Offline
Для exersizze

Да, задумка была простая, просыпаться от сигнала с ножки IRQ (nRF24L01).
Мне тоже интересно, какое токовое потребление (думаю, что для сотового аккумулятора пойдёт)?
Будем ожидать результатов полевых испытаний. moil

kip96 добавил функцию проверки жизни у передатчиков. Да, идея хорошая, поддерживаю, Сам недавно узнал про данную функцию.
kip96 использовал Atmega48, хотя Я бы использовал в передатчиках Attiny2313, так-как напряжение и потребляет тока меньше, только не удасца использовать "резисторные датчики температуры".




Сообщение отредактировал Valera18 - Четверг, 28.02.2013, 15:32
 
kip96Дата: Четверг, 28.02.2013, 22:58 | Сообщение # 4
Группа: Свой человек
Сообщений: 170

Статус: Offline
Atmega48 использовал исходя из
1-цены. Купил за 45р. (сейчас 38р) +  TC1047AVNBTR-20р), что в сумме меньше 18В20.
2-есть опорное 1.1в, что облегчает расчёт температуры (практически напрямую)
3- универсальная серия (помоему есть уже и Atmega
328-я). Если не хватает памяти, легко заменить.
При испытании LM35-ых, как писАл уже, приятно удивляет точность, при отсутсвии какой либо стабилизации по питанию-разница в 0.1гр.
По питанию- на макетке потребление казала 16мА. Сейчас вытравил платку под CR2032 , напишу тупо передатчик и буду тестить на жизнь.


 
kip96Дата: Суббота, 02.03.2013, 08:53 | Сообщение # 5
Группа: Свой человек
Сообщений: 170

Статус: Offline
Написал прошивку с энергосбережением. На приёме-14мА, в повердаун-144uA. В принципе - нормально. Использовал для просыпания собаку. Алгоритм такой- просыпаемся, ждём запроса, меряем,  отвечаем, засыпаем. На  Atmega48 собака на 128кГц, и время сброса максиммум 8 секунд. Плюс этой серии и в том, что собака может работать на прерывание, а не только на общий сброс. По-этому время сна можно увеличить до желаемого.
Энергосбережение, наверное, можно увеличить незначительно ещё, надо ДШ внимательно почитать
Ещё думаю использовать генератор собаки на 128кГЦ как основной, но пока побаиваюсь, как USBASP себя поведёт.
Ну вообщем итог положительный. Думаю можно сделать "вечный" датчик, если ещё и солнечную батарею от калькулятора добавить.
Прикрепления: __Atmega_48__.bas (5.2 Kb)


 
maxДата: Суббота, 02.03.2013, 09:17 | Сообщение # 6
Группа: Друзья
Сообщений: 170

Статус: Offline
Еще бы схему на все это безобразие. smile

 
Valera18Дата: Воскресенье, 03.03.2013, 18:12 | Сообщение # 7
Группа: Проверенные
Сообщений: 22

Статус: Offline
Для kip96

А как прошёл тест на живучесть с батарейкой CR2032?
Как долго работала?




Сообщение отредактировал Valera18 - Воскресенье, 03.03.2013, 18:13
 
kip96Дата: Воскресенье, 03.03.2013, 19:03 | Сообщение # 8
Группа: Свой человек
Сообщений: 170

Статус: Offline
Почему работала, работает! smile
А серьёзно, живучесть ещё не проверял. На выходных времени нет, поэтому отложил до понедельника. Допишу программу, чтобы измеряла напряжение и отправляла 4 и 5 байтом.
А так, если прикинуть, то ёмкость СР2032-220мА\ч. в повердаун будет работать два месяца. Измерять температуру можно не чаще пяти минут (если разговор идёт об уличном термометре).Кстати, по даташиту, в повердаун потребление 0,1uA Толи мой китайчёнок брешет, толи я где-то, что-то не углядел. Может кто подскажет?




Сообщение отредактировал kip96 - Воскресенье, 03.03.2013, 19:20
 
kip96Дата: Воскресенье, 03.03.2013, 19:15 | Сообщение # 9
Группа: Свой человек
Сообщений: 170

Статус: Offline
На счёт схемы. Схемы, как таковой, нет, всё подключено на прямую к портам, т.е. по исходнику понятно, где какой порт, под что задействован. Когда весь девайс будет приобретать законченнай девайс, тогда появится схема, т.к. порты могут поменяться, когда ПП будет рисоваться. А так всё просто пока.

 
maxДата: Воскресенье, 03.03.2013, 20:07 | Сообщение # 10
Группа: Друзья
Сообщений: 170

Статус: Offline
Цитата (kip96)
т.е. по исходнику понятно
Мне не понятна эта запись:
Код
Config Pind.2 = Input : Irq Alias Pind.2                    'IRQ pin is input
'подключение светодиодов индикации
Config Portd.0 = Output : Led Alias Portd.0                      'Подключена ножка IRQ и подтянута 10 КОм к (+)
 
Цитата (Valera18)
kip96 добавил функцию проверки жизни у передатчиков. Да, идея хорошая, поддерживаю, Сам недавно узнал про данную функцию.
Тоже не понял где это в коде.


 
kip96Дата: Воскресенье, 03.03.2013, 22:02 | Сообщение # 11
Группа: Свой человек
Сообщений: 170

Статус: Offline

на IRQ выходе 24L01 появляется "0" если приёмник чего-та словил и в буфере есть информация. Так контроллер понимает, что пора считать эту информацию.
Ну а светодиод, это что-бы контролировать работу схемы. Там уже сами решайте, где его зажигать. Скажем, включайте при IRQ=0, будете знать , принимает приёмник или нет. Или включайте  при передаче.
Цитата (max)
Тоже не понял где это в коде.
Это в приёмнике. Он опрашивает все передатчики, и если не получает ответ выдаёт ошибку.


 
maxДата: Понедельник, 04.03.2013, 10:01 | Сообщение # 12
Группа: Друзья
Сообщений: 170

Статус: Offline
Цитата (kip96)
на IRQ выходе 24L01 появляется "0" если приёмник чего-та словил и в буфере есть информация. Так контроллер понимает, что пора считать эту информацию. Ну а светодиод, это что-бы контролировать работу схемы. Там уже сами решайте, где его зажигать. Скажем, включайте при IRQ=0, будете знать , принимает приёмник или нет. Или включайте  при передаче.
Теперь понятно, спасибо. Вот если бы была схема, как она сейчас работает, то и вопрос этот бы не возник. smile
Цитата (kip96)
Это в приёмнике. Он опрашивает все передатчики, и если не получает ответ выдаёт ошибку.
Значит не так понял Valera18.


 
Valera18Дата: Понедельник, 04.03.2013, 20:31 | Сообщение # 13
Группа: Проверенные
Сообщений: 22

Статус: Offline
Для max

Я говорил про функцию "обратной связи между nrf24l01" это обсуждается здесь:

http://avrproject.ru/publ....omments
начинается с 120 комментария до 122 комментария.


 
maxДата: Понедельник, 04.03.2013, 20:40 | Сообщение # 14
Группа: Друзья
Сообщений: 170

Статус: Offline
Да я уже разобрался, спасибо.

 
kip96Дата: Среда, 06.03.2013, 21:33 | Сообщение # 15
Группа: Свой человек
Сообщений: 170

Статус: Offline
Довёл передатчик до потребления
активный режим - 600uA. Это значение поймал тестер в режиме MAX,
повердаун - 4uA
грубый расчёт для  СР2032-  220мА\ч/0,004/24/30/12=6,3 года! Думаю отличный результат.
За сутки непрерывной работы напряжение на СР2032 с 3.12в изменилось до 3,12в smile
И всё-же до заявленных 0,1uA в повердаун пока не довёл.
Термометр раз в 8 сек. в эфир отправляет температуру и напряжение батареи. Надо подумать, как организовать приёмник.


 
Valera18Дата: Среда, 06.03.2013, 22:44 | Сообщение # 16
Группа: Проверенные
Сообщений: 22

Статус: Offline
Для kip96

Больше 6 лет - это круто.
Интересно взглянуть на "исходник", который использовали для тестов. Разместите ссылку (на закачку).
В тестах использовали Atmega48?




Сообщение отредактировал Valera18 - Среда, 06.03.2013, 22:45
 
maxДата: Среда, 06.03.2013, 23:12 | Сообщение # 17
Группа: Друзья
Сообщений: 170

Статус: Offline
Шесть лет это ооочень грубо. На улице на год должно хватить и это совсем не плохо. Рублей 30-40 в год - это копейки. Исходник тоже интересно посмотреть.

 
kip96Дата: Четверг, 07.03.2013, 12:25 | Сообщение # 18
Группа: Свой человек
Сообщений: 170

Статус: Offline
Использовал Atmega48ра. В этой серии можно много чего отключить. Я отключил всё, кроме SPI  и АЦП,  перед сном и АЦП отключаю, т.к. опорное напр. много жрёт, так-же супервизор в фьюзах отключаем, всё так же из-за опорки. Исходник чуть поз-же , доведу до ума, что-б не путались потом. 
Сегодня утром пришёл на работу(датчик на работе у меня трудится) напруга 3,13в. Он ещё и заряжается! smile Если реально, думаю, что перед последним тестоми я батарейку гонял и она подсела, а теперь немного восстановила ёмкость. Хороший признак! ok . На улице мороз с утра был, решил проверить термометр. Всё отлимчно показывает, напруга упала до 3,01в. Занёс в тепло, опять вырасла до 3,13в.


 
kip96Дата: Четверг, 14.03.2013, 16:39 | Сообщение # 19
Группа: Свой человек
Сообщений: 170

Статус: Offline
С момента теста, напряжение поднялось до 3.15 вольт, и больше не падало. Несколько раз, по запарке, мерял ток батареи biggrin (забывал переключить режим на мультиметре),  чем сажал батарею до 2.5 вольт, но она упорно поднимала  напряжение до исходного. На этом считаю тест оконченным.
Итог:
Хоть и не удалось довести потребление Меги48 до заявленных, всё-же реальное потребление ничтожно. При передаче, мой VC99 на максимуме поймал 390uA.
Применение ТС1047А и Мега48ра даёт существенный выигрыш по сравнению с 18в20 в цене, потреблении и мобильности. Кстати,  ТС1047А даёт преимущество над LM35 также в цене, потреблении, меньшем питании, и возможности измерения отрицательной температуры (Vout=10mV/C*Temp +500mV). LM35 без доп примочек меряет от 0С, и при 2,9V начинала брехать.
Исходник для  ТС1047А.

Как видно на фото, Т1 (ТС1047А) и Т2 (LM35), температуры сильно не отличаются. 

 ТС1047А стоит прям на плате. Поскольку весь передатчик ничтожно кушает, а значит сам и не греется, решил сделать так. Вроде не врёт.
 Ну и ещё фотки.



И вот возникла идея.
Сделать мини мультиметр , размером с шариковую ручку, который будет передовать показания на..., скажем на часы, которые стоят на рабочем столе. Лично у меня, всегда провода мешают biggrin
Прикрепления: _48_____.bas (7.4 Kb) · 7128181.jpg (64.3 Kb) · 1610515.jpg (49.6 Kb) · 5558504.jpg (42.9 Kb)


 
maxДата: Четверг, 14.03.2013, 17:49 | Сообщение # 20
Группа: Друзья
Сообщений: 170

Статус: Offline
Прикольно.

 
exersizzeДата: Четверг, 14.03.2013, 19:22 | Сообщение # 21
Группа: Администраторы
Сообщений: 723

Статус: Offline
Идея с мультиметром понравилась smile
у меня кстати тоже лежит один TC1047, давным давно заказывал в чипнн попробовать. Теперь так и напрашивается на автономный  уличный термометр с радиоканалом)) Спасибо за испытания!


 
Aleks8383Дата: Пятница, 28.06.2013, 12:22 | Сообщение # 22
Группа: Проверенные
Сообщений: 104

Статус: Offline
А не кто не прбывал организовать 2х сторонний обмен???Единственное что в голову приходит запихнуть в контроллер оба кода и в зависимости что требуется переключать туда сюда,оформить их на подобии 2 подпрограмм.

 
kip96Дата: Воскресенье, 30.06.2013, 15:43 | Сообщение # 23
Группа: Свой человек
Сообщений: 170

Статус: Offline
Ну здрасьте rtfm . Так тема с это-го же и началась! В архиве две библиотеки Setup_RX и  SetUp_Tx. В своей программе командой
Call Tx(b1 , b2, b3, b4, b5) передаёте, а командой Call R_register(rd_rx_pload , 5) принимаете 5 байт. Куда-ж проще!


 
Aleks8383Дата: Понедельник, 01.07.2013, 08:49 | Сообщение # 24
Группа: Проверенные
Сообщений: 104

Статус: Offline
Цитата (kip96)
В своей программе командой Call Tx(b1 , b2, b3, b4, b5) передаёте, а командой Call R_register(rd_rx_pload , 5) принимаете 5 байт. Куда-ж проще!
Извиняюсь тормознул wacko ,быстро пролистав код на это внимание не обратил.А так код то что надо,теперь можно эксперементировать,как раз модули пришли.Спасибо за код victory




Сообщение отредактировал Aleks8383 - Понедельник, 01.07.2013, 08:52
 
mvn77Дата: Понедельник, 22.07.2013, 18:41 | Сообщение # 25
Группа: Пользователи
Сообщений: 7

Статус: Offline
Встретил в постах такое
________________________
"124 Valera18   (12.02.2013 20:35)Для kip96

http://avrproject.ru/publ....mments 
Из 22 комментария, прошивка:
http://yadi.sk/d/EOz1gCU063aZK 

Принцип работы "приёмопередающего моста с режимом энергосбережения":
1. Приёмник выставляет "адрес" первого передатчика.
2. Приёмник отправляет "простой сигнал" первому передатчику, после приёмник переключается на приём.

а). Первый передатчик принимает "простой сигнал" и просыпается из (Powerdown).
б). Первый передатчик отправляет "данные, число 28" (температуру, если вы добавите "код" опроса DS18B20).
с). Первый передатчик переключается на приём и засыпает (Powerdown).

3. Приёмник получает "данные, число 28" и выводит на LCD.
4. После приёмник меняет "адрес" на второй передатчик, и все действия повторяются...

Внимание, прошивка тестовая, не проверял, была написана как ответ на вопрос.


________________________________________
Не могу с этими прошивками разобраться, на сайте используется везде схема подключения http://avrproject.ru/nrf24l01_temp/nrf_reciever_ful.png а вот распиновка по тексту программы идет совсем другая - может кто знает к какой схеме привязаны эти куски кода.
Особенно интересен этот кусок кода на приемнике  - ну никак он не вяжется к atmega8
'Программное обеспечение SPI НЕ работает с nRF24L01, используйте оборудование SPI только, но эсэсовцы pin-код должен управляться нашей функцией
Config Portb.1 = Output : Ce Alias Portb.1                  'CE pin is output
Config Portb.2 = Output : Ss Alias Portb.2                  'SS pin is output
Config Pinb.0 = Input : Irq Alias Pinb.0                    'IRQ pin is input




Сообщение отредактировал mvn77 - Понедельник, 22.07.2013, 18:50
 
exersizzeДата: Вторник, 23.07.2013, 09:46 | Сообщение # 26
Группа: Администраторы
Сообщений: 723

Статус: Offline
mvn77, выводы Се и IRQ трансивера подключаются к любым ножкам микроконтроллера, можно конфигурировать по своему усмотрению. А SS  у меги8 должен быть всегда на PortB.2 
Valera18 подключал как ему удобно, поэтому просто подключите трансивер как по коду.


 
mvn77Дата: Вторник, 23.07.2013, 11:38 | Сообщение # 27
Группа: Пользователи
Сообщений: 7

Статус: Offline
Да вчера сделал так
-
Config Pind.5 = Output                                      'CE pin is output
Config Pinb.2 = Output                                      'SS pin is output

Ce Alias Portd.5
Ss Alias Portb.2

Config Pind.2 = Input                                       'Подключена ножка IRQ и подтянута 10 КОм к (+)
Config Int0 = Low Level
Enable Interrupts
Enable Int0

Но блин уже бьюсь сутки не могу понять почему приходят нули. Приемник, будит передатчик, получает в ответ ... нули.... Хоть убей весь код перелапатил не могу найти в чом проблема...
Прикрепления: 3629021.bas (12.8 Kb) · 2350412.bas (10.1 Kb)




Сообщение отредактировал mvn77 - Вторник, 23.07.2013, 11:50
 
mvn77Дата: Вторник, 30.07.2013, 23:38 | Сообщение # 28
Группа: Пользователи
Сообщений: 7

Статус: Offline
Да короче - жопа полная........

 
exersizzeДата: Пятница, 02.08.2013, 18:12 | Сообщение # 29
Группа: Администраторы
Сообщений: 723

Статус: Offline
Если передача идет значит не все еще потеряно, трансиверы работают. Может упустили что-то.

 
mvn77Дата: Суббота, 03.08.2013, 15:00 | Сообщение # 30
Группа: Пользователи
Сообщений: 7

Статус: Offline
Проблему нашел.... При монтаже стоит образшать внимание на фазы луны, и качество пива. Ну из второстепенных причин, был один модуль неисправен....

 
alexdxДата: Среда, 28.08.2013, 15:12 | Сообщение # 31
Группа: Пользователи
Сообщений: 28

Статус: Offline
Всем привет! Давно читаю статьи здесь. Вот решил написать.
Хочу поставить датчики температуры во всех комнатах и собирать с них статистику (пока просто буду смотреть в терминале).
По задумке хотел отправлять температуру с каждого датчика на сервер каждые 5 минут. То есть засыпать (powerdown), ждать прерывания по переполнению таймера, просыпаться, мерить температуру, отправлять ее и опять засыпать.
Выдержать 5 минут с помощью Timer1 на Attiny2313 не удалось, очень мало получается.

В очередной раз читая ветку задумался... разве это верно?
Цитата (kip96)
Довёл передатчик до потребления активный режим - 600uA. Это значение поймал тестер в режиме MAX,
повердаун - 4uA
грубый расчёт для  СР2032-  220мА\ч/0,004/24/30/12=6,3 года! Думаю отличный результат.
За сутки непрерывной работы напряжение на СР2032 с 3.12в изменилось до 3,12в
И всё-же до заявленных 0,1uA в повердаун пока не довёл.
Термометр раз в 8 сек. в эфир отправляет температуру и напряжение батареи. Надо подумать, как организовать приёмник.

Если каждые 8 секунд отправляет, то за 1 час потребление будет:
3600 сек / 8 сек = 450 раз в час отправляет температуру,
за каждую посылку поедает 4 мкA, следовательно энергопотребление:
0.004 мA * 450 раз = 1.8 мА/ч.
Соответственно батарейки хватит на:
220 мА/ч / 1,8 мА/ч =  122 часа или 5 дней.

Поправьте, если не прав в расчетах.
И подскажите пожалуйста, как сделать Power Down на 5 минут




Сообщение отредактировал alexdx - Среда, 28.08.2013, 15:14
 
exersizzeДата: Четверг, 29.08.2013, 11:20 | Сообщение # 32
Группа: Администраторы
Сообщений: 723

Статус: Offline
alexdx, в повердауне остается работать только сторожевой пес, все остальные таймеры отрубаются, и тот считает всего несколько секунд. Но kip писал что пёс в новых моделях контроллеров может вызывать прерывание, используя его можно увеличить время между передачами (в обработчике прерывания увеличиваем значение переменной и когда она достигла нужного значения передаем данные). Посмотри его исходник из пятого сообщения http://avrproject.ru/forum/3-138-1619-16-1362200017 там видно как это сделать.
По поводу расхода энергии расчет такой, что при емкости 220мАч и потреблении 0,004мА, девайс проработает 55000 часов (как раз 6 с копейками лет), поэтому там все верно.
А чтобы скушать у батарейки 1,8мАч устройство потребляющее 0,004мА должно проработать 450 часов (или 450 раз по одному часу).


 
alexdxДата: Воскресенье, 01.09.2013, 22:52 | Сообщение # 33
Группа: Пользователи
Сообщений: 28

Статус: Offline
kip96, хотелось бы исходник посмотреть. Если можно, выложите пожалуйста. У меня получается потребление всей схемы: Powerdown 26 мкА, в момент передачи ловил 18-20 мА. Что-то не так.

 
kip96Дата: Понедельник, 02.09.2013, 21:14 | Сообщение # 34
Группа: Свой человек
Сообщений: 170

Статус: Offline
Исходник в 19 сообщении, под мегу48. Для других мк нужно читать даташит, что бы довести их потребление до минимума. смотри 18 сообщение.

 
alexdxДата: Среда, 11.09.2013, 11:04 | Сообщение # 35
Группа: Пользователи
Сообщений: 28

Статус: Offline
Занимаюсь разработкой радио-термометра на DS18B20. Работать будет от 3В. Настроил прерывание от "пса", считаю их количество. Отпишусь по результатам.

 
kip96Дата: Четверг, 12.09.2013, 21:49 | Сообщение # 36
Группа: Свой человек
Сообщений: 170

Статус: Offline
Цитата (kip96)
С момента теста, напряжение поднялось до 3.15 вольт, и больше не падало. Несколько раз, по запарке, мерял ток батареи (забывал переключить режим на мультиметре),  чем сажал батарею до 2.5 вольт, но она упорно поднимала  напряжение до исходного. На этом считаю тест оконченным.
 всё это время передатчик у меня трудился на работе, тупо отсылая в эфир температуру и состояние батареи. Напряжение на батареи на данный момент 3,09. Но не давно стал замечать сбои. Решил разобраться. Оказалось, что в погоне за низким потреблением отпаял тантал по питанию. Ес-но ни чего не изменилось (но попробовать нужно было), а поставить обратно забыл. Так вот, подключил осцилограф на питание, увидел, что во время передачи питание падает до 2-х вольт. Поставил обратно конденсатор и всё гуд. Видимо внутренне сопротивление батарейки увеличилось, сказались кз.


 
kip96Дата: Пятница, 13.09.2013, 13:42 | Сообщение # 37
Группа: Свой человек
Сообщений: 170

Статус: Offline
Сегодня обнаружил, что если отключить батарейку, на одном заряде конденсатора 220мкФ, датчик может отправить до 3-х измерений. Небольшое видео. 
Вообще, для себя решил, что   микроминизировать нет смысла, по крайней мере для уличного термометра. Тем более, что дальность передачи в таком виде желает оставлять лучшего, и необходима, как минимум нормальная антена. По этому я решил сделать  питание на двух "мизинчиковых", будет работать вечно. Главное потом вспомнить,куда сам датчик положил, чтобы контакты батареек почистить от окислов:D




Сообщение отредактировал kip96 - Пятница, 13.09.2013, 13:44
 
alexdxДата: Понедельник, 30.09.2013, 11:06 | Сообщение # 38
Группа: Пользователи
Сообщений: 28

Статус: Offline
kip96, Вы не пробовали при каком минимальном напряжении работает вся конструкция? В даташите на термодатчик заявлено от 2,7 вольта. Тогда получится, что вся система перестанет работать, когда батарейка подсядет до 2,7 В.
По поводу радиомодуля: Вы использовали в нем режим power down? В исходнике не нашел такого кода. У меня он жрет порядка 3 мА в режиме standby.




Сообщение отредактировал alexdx - Понедельник, 30.09.2013, 11:11
 
kip96Дата: Понедельник, 30.09.2013, 14:58 | Сообщение # 39
Группа: Свой человек
Сообщений: 170

Статус: Offline
Эксперимент специально такой не проводил, но если посмотрите видео выше, то увидите, что температура стабильна вплоть до 2,29. По поводу радиомодуля: питается он от порта МК, так-что необходимости в повердауне нет вообще. МК сам его вырубает.

 
alexdxДата: Понедельник, 30.09.2013, 16:03 | Сообщение # 40
Группа: Пользователи
Сообщений: 28

Статус: Offline
Я экспериментирую с низким напряжением питания. Даю 2.0 В. Если модуль подключаю напрямую к источнику, то все работает, посылки уходят. Если вешаю передатчик на порт и перед отправкой выставляю в порт лог 1, жду 100 мс, то передача перестает работать. Если поднять питание до примерно 2.5, начинает работать. Uпорта=Uпитания. Тока ему должно хватать, напряжения тоже. Не подскажите, с чем это может быть связано?



Сообщение отредактировал alexdx - Понедельник, 30.09.2013, 16:12
 
Valera18Дата: Понедельник, 30.09.2013, 17:56 | Сообщение # 41
Группа: Проверенные
Сообщений: 22

Статус: Offline
Попробуй подключить конденсатор к схеме (к плюсу и к минусу питания Atmega).



Сообщение отредактировал Valera18 - Понедельник, 30.09.2013, 18:01
 
kip96Дата: Понедельник, 30.09.2013, 20:51 | Сообщение # 42
Группа: Свой человек
Сообщений: 170

Статус: Offline
Да, подключите конденсатор, только к питанию самого модуля. Экспериментируя с модулем, заметил что после передачи, модуль не успевал принимать, иногда даже слетали регистры по дефолту. При этом модуль запитывался напрямую от БП. Не возможно даже было переключить передатчик на приёмник изменением регистра.Нужно было бэкапить.Спасала задержка  в 350мс. В исоднике она есть. Уменьшая задержку уже до 200мс наблюдались сбои, хотя в даташите говорится о микросекундах. Установка конденсатора на питание самого модуля всё исправило. Сейчас у меня приёмник переключается на передатчик изменением регистра, без задержек, что существенно сократило код и увеличило скорость

 
alexdxДата: Вторник, 01.10.2013, 10:26 | Сообщение # 43
Группа: Пользователи
Сообщений: 28

Статус: Offline
Valera18, спасибо за совет. Попробовал подключить емкость параллельно контроллеру - не помогло. Попробовал включить конденсатор параллельно питанию модуля и заработало. Спасибо kip96 smile
А вообще пришла мысля немного переделать свою схемку. Я использую ATtiny2313, DS18B20 и DC/DC Step UP преобразователь на NCP1400 с выходом 5 вольт. Хочу поставить преобразователь с выходом 3.3 вольта и запитать от него датчик и передатчик. 
Так же хочу попробовать реализовать измеритель здоровья батарейки в условных единицах (тиках таймера) с помощью RC цепочки и компаратора. Что думаете о такой схеме?
Вчера доигрался с фьюзами и зашил тиньку на 128 kHz. Понял, что зря. Посоветуйте пожалуйста как ее воскресить.


 
kip96Дата: Вторник, 01.10.2013, 11:31 | Сообщение # 44
Группа: Свой человек
Сообщений: 170

Статус: Offline
Как вариант можно. Например использовать команду GETRC. Или компаратор Тиньки. Но нужен тогда опорник . А вообще бы, конечно рекомендовал мегу48. Она и дешевле и удобней.

 
alexdxДата: Вторник, 01.10.2013, 11:43 | Сообщение # 45
Группа: Пользователи
Сообщений: 28

Статус: Offline
Про GETRC не знал. Спасибо, попробую. Играюсь с компаратором. Вроде получаются разные значения в зависимости от напряжения питания) А опорник в тиньке уже есть. Программно подключается на порт компаратора.
Мега48 хороша. Присматриваюсь к ней. Плату уже развел под тиньку, может и переделать надумаю)


 
kip96Дата: Вторник, 01.10.2013, 14:40 | Сообщение # 46
Группа: Свой человек
Сообщений: 170

Статус: Offline
Измеряете при помощи ШИМ ?

 
alexdxДата: Вторник, 01.10.2013, 21:53 | Сообщение # 47
Группа: Пользователи
Сообщений: 28

Статус: Offline
Видел метод с помощью ШИМ, но измеряю по-другому. К одному входу компаратора подключено опорное напряжение, к другому подключена RC цепочка. Сбрасываю таймер, запускаю его и подаю питание на RC цепочку. Чем больше напряжение питания, тем быстрее будет заряжаться конденсатор, следовательно тем быстрее сработает компаратор. Прерывание от компаратора останавливает таймер. В итоге получаю напряжение питания в тиках таймера.

 
kip96Дата: Среда, 02.10.2013, 11:50 | Сообщение # 48
Группа: Свой человек
Сообщений: 170

Статус: Offline
Думаю ШИМ будет точней. В любом случае, попробовать стоит.

 
alexdxДата: Среда, 02.10.2013, 15:28 | Сообщение # 49
Группа: Пользователи
Сообщений: 28

Статус: Offline
kip96, последнюю тиньку залочил фьюзами. Закуплюсь мегами48 и термодатчиками как у Вас, более выгодный и точный вариант)

 
Valera18Дата: Среда, 02.10.2013, 16:20 | Сообщение # 50
Группа: Проверенные
Сообщений: 22

Статус: Offline
Здравствуйте, alexdx и kip96

Для alexdx.
Не пойму смысл конденсатора на питании nRF24L01, получается выключаешь nRF24L01 от питания, а он продолжает работать некоторое время от конденсатора. Конденсатор должен быть подключен к питанию МК (Atmega), то-есть всё питание будет стабилизировано, так как напряжение питания VCC = напряжение на порте (ножки МК) которая питает nRF24L01, - это уже было кем-то сказано.

Автор kip96, у Вас хорошо получился передатчик температуры, Я не хочу никого обидеть, но над энергопотреблением ещё можно поработать.
Я проводил тесты с Attiny2313, (комментарий №11):
http://avrproject.ru/publ....-1-0-64
- там тесты с портами (то как можно минимизировать потребление портов МК).
Над задержкой (Waitms) нужно поработать, то есть снизить, например как в этой прошивке (комментарий №27):
http://avrproject.ru/publ....1-0-147
- хоть там прошивка для Attiny2313, но можно приспособить и для Atmega.
Ещё заметка (работа модуля nRF24L01 в скоростном режиме): при первом включении nRF24L01 необходимо сбрасывать буфер nRF24L01, чтобы не зависал буфер.

Ещё раз скажу, НЕ ХОЧУ НИКОГО ОБИДЕТЬ, но над потреблением тока Atmeg-ой нужно поработать...




Сообщение отредактировал Valera18 - Среда, 02.10.2013, 21:36
 
Форум » форумы » Обсуждение материалов сайта » Nrf24L01+ термометр и ещё всяко разно.
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Поиск: