Nrf24L01+ термометр и ещё всяко разно.
|
|
alexdx | Дата: Среда, 02.10.2013, 16:54 | Сообщение # 51 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| Valera18, я пробовал подключить кондер к питанию-не помогло. Пока экспериментировал, обтыкал все тестером. В режиме ожидания напряжение порта и напряжение питания равны. В момент передачи напряжение на порту просаживается. Если на порт подключить кондер-то он (как я понимаю) будет вольтдобавкой и NRF хватит напряжения для работы. По поводу энергопотребления будем продолжать играться) Если не ошибаюсь, в последний раз на тиньке2313 у меня получалось около 6мкА в режиме PowerDown.
|
|
| |
kip96 | Дата: Среда, 02.10.2013, 17:11 | Сообщение # 52 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Вот тут хорошо расписал человек работу модуля. Как написал один посетитель-Цитата помогла систематизировать кашу в голове У него, кстати, таже ситуация с питанием описывается. Потребление конечно ещё можно снизить, сейчас как раз и работаю над проектом одним, в котором при минимуме размера сделать "вечным". Поэтому потребление критично. Ну а данный прибор работает до сих пор без передыху, и как видно на видео, ещё долго будет работать. Сейчас он в пакетиек за окном. Вообщем как тестовый. Кстати, ни кто не пробывал одним приёмником 6 передатчиков поймать. Вроде всё по даташиту включаю, а ловит только пайп1. И главное не пайп0, как основной, а пайп1. ЗЫ. В споре рождается истина. На то мы здесь и собрались на форуме.
|
|
| |
alexdx | Дата: Среда, 02.10.2013, 17:19 | Сообщение # 53 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| Valera18, почитал тесты по снижению энергопотребления. Спасибо. Может подскажите по такому вопросу: запрограммировал тиньку2313 на 128kHz. Программатор USBASP. Как мне ее теперь обратно прошить на 4MHz?
kip96, у меня пока всего 3 модуля в наличии. Хочу реализовать систему на одном пайпе. Идентифицировать устройство хочу по его номеру, который передается в первом байте посылки.
|
|
| |
kip96 | Дата: Среда, 02.10.2013, 18:28 | Сообщение # 54 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Когда несколько независимых передатчиков, без этого не обойтись. Либо их как-то синхронизировать, чтобы наложений не случилось. Или приёмник должен запрашивать каждый передатчик, а значит передатчик должен ждать запрос, т.е. находится на приёме, значит много кушать. Какой у Вас алгоритм?
|
|
| |
alexdx | Дата: Среда, 02.10.2013, 20:13 | Сообщение # 55 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| Еще не разбирался с приемом от нескольких передатчиков по одному каналу.
|
|
| |
alexdx | Дата: Среда, 02.10.2013, 22:27 | Сообщение # 56 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| Блин, никак не могу привыкнуть и до конца понять DipTrace. Привык к Proteus.
|
|
| |
alexdx | Дата: Четверг, 03.10.2013, 10:05 | Сообщение # 57 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| kip96, по идее мы же настраиваем в передатчике подтверждение о приеме посылки, включаем контрольную сумму. он же несколько раз передает, пока не получит подтверждение, что посылка успешно принята. Может эти плюхи защитят от хаоса в посылках? Надо попробовать беспрерывно передавать с двух передатчиков данные, которые изменяются по определенному алгоритму и посмотреть что будет на приемнике. Мне кажется, что когда данные будут приходить раз в минуту вероятность наложения и глюков будет небольшой.
|
|
| |
kip96 | Дата: Четверг, 03.10.2013, 15:21 | Сообщение # 58 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| передаёт несколько раз, но определённое количество. А если, быстро изменяющиеся параметры надо измерять? Не надо эти пайпы долбить.
|
|
| |
alexdx | Дата: Четверг, 03.10.2013, 15:29 | Сообщение # 59 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| Что значит Цитата (kip96) Не надо эти пайпы долбить. ?
|
|
| |
kip96 | Дата: Четверг, 03.10.2013, 16:55 | Сообщение # 60 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Sorry Неее, Надо эти пайпы долбить. Раз уж есть такая фишка, надо её использывать!
|
|
| |
alexdx | Дата: Четверг, 03.10.2013, 19:48 | Сообщение # 61 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| Понял) Ну а как быть, если я хочу сделать сеть из одного "серверного" приемопередатчика и двадцати устройств-сенсоров, с которыми он общается?
|
|
| |
Valera18 | Дата: Четверг, 03.10.2013, 21:40 | Сообщение # 62 |
Группа: Проверенные
Сообщений: 22
Статус: Offline
| Для alexdx
Самый простой способ, чтобы сделать один приёмник и двадцать передатчиков: 1 передатчик, выставляем адрес: D_bytes(1) = &H30 D_bytes(2) = &H00 D_bytes(3) = &H00 D_bytes(4) = &H00 D_bytes(5) = &H00 D_bytes(6) = &H01 2 передатчик, выставляем адрес: D_bytes(1) = &H30 D_bytes(2) = &H00 D_bytes(3) = &H00 D_bytes(4) = &H00 D_bytes(5) = &H00 D_bytes(6) = &H02 3 передатчик, выставляем адрес: D_bytes(1) = &H30 D_bytes(2) = &H00 D_bytes(3) = &H00 D_bytes(4) = &H00 D_bytes(5) = &H00 D_bytes(6) = &H03 и так далее для всех передатчиков. В передатчиках использован способ энергосбережения (Config Watchdog = 8192, Start Watchdog, Powerdown).
Общий один приёмник (сервер), постоянно включен: Теперь нужно только по порядку переключать (изменять) адрес по которому идут Byte (данные). У приёмника эта команда называется: D_bytes(1) = &H2A D_bytes(2) = &H00 D_bytes(3) = &H00 D_bytes(4) = &H00 D_bytes(5) = &H00 D_bytes(6) = &H01 по порядку изменяем D_bytes(6), то-есть выставляем адрес передатчика, с которого нужно принять Byte (данные, например температуру). Ещё нужно в приёмнике выставить временной диапазон в течение, которого с передатчика должны прийти данные, и после изменяем адрес на второй передатчик, ждём приёма и так далее. Кстати Я уже давно где-то описывал данный способ передачи и приёма.
Добавлю: Можно попробовать использовать терморезистор TC1047. Приёмник лучше использовать такой "nRF24L01+PA+LNA wireless communication modules with antenna 2.4GHz 2Mbps 1000m" - зелёный цвет с антенной, а передатчики будут обычные - дешёвые. Следовательно, приёмник сможет принимать сигнал во всех комнатах (даже с закрытыми дверями) - испытано Мною, ПРИНИМАЕТ.
Сообщение отредактировал Valera18 - Пятница, 04.10.2013, 17:54 |
|
| |
kip96 | Дата: Четверг, 03.10.2013, 22:43 | Сообщение # 63 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Кстати, на передатчике тоже нужно RX адрес для pipe0, ждя того чтобы передатчик мог получить ответ об удачной передачи. Valera18, а почему на передатчике D_bytes(1) = &H30, а на приёмнике D_bytes(1) = &H2A ?
|
|
| |
alexdx | Дата: Четверг, 03.10.2013, 23:53 | Сообщение # 64 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| Valera18, использую такие же настройки собаки и повердаун. Вот еще вопросы: 1. присоединяюсь к вопросу kip96 по поводу несовпадения адресов. 2. если удаленный температурный сенсор будет передавать информацию раз в минуту, а приемник будет постоянно перебирать каналы, то успеет ли он (приемник) поймать посылку? А если сделать больше сенсоров, то время перебора увеличится... Может надо как-то отслеживать на передающей стороне сообщение о приеме, и пока его не получим передавать и передавать не засыпая на следующую минуту? 3. рекомендуете приемник зеленый. Забил название на ebay. Больно дорого выходит. Я вот к такому присматриваюсь в качестве сервера "NRF24L01+PA+LNA SMA Antenna Wireless Transceiver communication module 2.4G G5". Вот ссылка, не знаю сколько проживет лот, ищите в будущем по названию http://www.ebay.com/itm....a586910 Что скажите про такой?
Я проводил тесты по дальности: у меня дешевые модули, пробивает две ЖБ стены. Перед третей начинаются потери посылок. Меня в принципе такой результат устраивает. Пока думаю над покупкой модуля с антенной. Я думаю, что если поставить на принимающую сторону модуль с антенной, а на передающей оставить дешевый, то особого эффекта не должно быть. Потому что мощность передачи как была маленькой, так и останется. Принимающая сторона сможет только "мощнее" ответить благодаря антенне.
И еще: правильно ли я понимаю, что IRQ на приемнике будет дергаться только тогда, когда придет посылка по адресу пайпа, на который настроен приемник в данный момент?
Сообщение отредактировал alexdx - Пятница, 04.10.2013, 16:23 |
|
| |
Valera18 | Дата: Пятница, 04.10.2013, 17:15 | Сообщение # 65 |
Группа: Проверенные
Сообщений: 22
Статус: Offline
| Для alexdx Да, чем больше датчиков, тем больше времени нужно. В этом недостаток, но это самый энергосберегающий способ для передатчиков.
Тот модуль про который Вы сказали http://www.ebay.com/itm....a586910 - это тоже самое, только большая плата. Итог: высокая чувствительность приёмника, поэтому принимает сигнал от всех простых передатчиков.
Для передатчика MISO и IRQ не нужно, так как не используется, а на приёмнике IRQ переходит в ноль (0) только при приёме.
Сообщение отредактировал Valera18 - Пятница, 04.10.2013, 17:57 |
|
| |
Valera18 | Дата: Пятница, 04.10.2013, 17:52 | Сообщение # 66 |
Группа: Проверенные
Сообщений: 22
Статус: Offline
| Для kip96 и alexdx
Сейчас подумал, Прошивка передатчика: D_bytes(1) = &H30 'TX адрес - это значение, которое будет передавать. Это основная передача Byte. D_bytes(1) = &H2A 'RX адрес для pipe0 - это для приёма ответа от приёмника. Это обратная связь.
Прошивка приёмника: D_bytes(1) = &H2A 'RX адрес для pipe0 - это значение для приёма данных (Byte) от передатчиков. Это основное действие. А вот такого значения нет у приёмника: D_bytes(1) = &H30 'TX адрес - это для передачи ответа передатчику, то-есть обратная связь.
Следовательно, у передатчика есть два адресных потока: 1 поток D_bytes(1) = &H30 - это передача. 2 поток D_bytes(1) = &H2A - это приём ответа. У приёмника тоже есть два адресный потока: 1 поток D_bytes(1) = &H2A - это приём. 2 поток (не используется) D_bytes(1) = &H30 - это для передачи ответа о приёме. Над этим нужно работать, Я ещё не пробовал, но уже стало ИНТЕРЕСНО.
Ещё нашёл старый, но интересны комментарий: http://avrproject.ru/publ/2-4-0-92 от №56 до №59 комментария.
Сообщение отредактировал Valera18 - Пятница, 04.10.2013, 18:39 |
|
| |
alexdx | Дата: Суббота, 05.10.2013, 00:35 | Сообщение # 67 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| Пятница, ночь... Не понял сути про два адресных потока, Valera18. Можно как-то иначе объяснить?
По поводу IRQ: я собирал тестовый передатчик по примеру из этой статьи http://avrproject.ru/publ....1-0-106 там есть исходник. В нем можно увидеть, что можно отследить тот факт, что приемник не ответил (я это использовал для определения зоны покрытия и "пикал" 3 раза пьезой, когда передатчик не получал ответа о приеме). Можно сделать флаг, и не поднимать его, полка не ответит приемник. Пока флаг не поднимется-не засыпаем. Вижу такой выход. Но все таки интересно понять про адресные потоки)
|
|
| |
kip96 | Дата: Суббота, 05.10.2013, 08:06 | Сообщение # 68 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| IRQ настраевается в конфигурации. В ДШ смотрите Register Map-CONFIG. Там видно, что можно включить прерывание на ножку IRQ от приёма, от ответа и нет ответа. Во всех проектах, что здесь она включена на всё. Далее, по той-же карте смотрим STATUS, и по прерыванию на ножке IRQ смотрим , какой бит сработал. Call R_register(status , 1), смотрим считанный байт, и в зависимости от того, какой бит сработал, понимаем от чего произошло прерывание и решаем, что дальше делать.
Сообщение отредактировал kip96 - Суббота, 05.10.2013, 08:07 |
|
| |
alexdx | Дата: Воскресенье, 03.11.2013, 17:57 | Сообщение # 69 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| Давно тут никто не отписывался, я смотрю) Сегодня дошли руки собрать передатчик на меге48. Залил прошивку от kip96. Передача работает. А вот АЦП преобразование всегда возвращает 1023. Начал разбирать код. Опорное напряжение АЦП настроено на внутренний источник (internal), который обеспечивает стабильные 1.1В .Но мы-то измеряем напряжение питания всей схемы, которое составляет около 3 вольт. Поэтому и получается всегда 1023. Не пойму как работает у Вас, kip96. Проясните пожалуйста. P.S. начал ковырять гугл, нашел статью про измерение напряжения питания микроконтроллера им самим http://www.rlocman.ru/shem/schematics.html?di=73220. Не могу пока осуществить измерение внутреннего ИОН. Его надо как-то подключить на вход АЦП.
|
|
| |
kestrel | Дата: Воскресенье, 03.11.2013, 19:22 | Сообщение # 70 |
Группа: Проверенные
Сообщений: 52
Статус: Offline
| Ну наверняка там делитель напряжения, а АЦП без разницы что мерить что 220В хоть что 1,5В
|
|
| |
kip96 | Дата: Вторник, 05.11.2013, 21:55 | Сообщение # 71 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Ну да, там делитель. Но если делителя нет, измеряем так. В качестве опорки - напр. питания, а измеряем опорку 1.1в. Если не понял, читаем тут, с 41 сообщения обсуждалось
|
|
| |
alexdx | Дата: Среда, 06.11.2013, 16:41 | Сообщение # 72 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| kip96, долго искал 41 пост)) спасибо большое! Читал с 21 сообщения Оставлю здесь себе для памяти и для интересующихся.
Будем измерять напряжение 1.1 вольта внутреннего ИОН (с помощью Getadc(14)) относительно AVCC (опорного) Uavcc = 1,8 (опорное. напряжение питания, которое нужно узнать. подключено к Avcc. 1,8 как пример) Uadc = 1,1 (измеряемое. это внутренний ИОН, всегда измеряем это напряжение)
Uadc = Uavcc * ADC_Value / 1024 ADC_Value = Uadc * 1024 / Uavcc Uavcc = Uadc * 1024 / ADC_Value
Проект Bascom AVR и проект Proteus прилагается.
Сообщение отредактировал alexdx - Среда, 06.11.2013, 17:01 |
|
| |
alexdx | Дата: Среда, 06.11.2013, 21:21 | Сообщение # 73 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| kip96, поясните пожалуйста: у Вас в коде есть такой кусок
Dim Term As Word , Term_t As Word , T As Byte Dim Ter As Integer Dim Term_(2) As Byte At Ter Overlay
For T = 1 To 51 Term = Getadc(2) Term_t = Term_t + Term Next Reset U_term Term = Term_t / 47 Term_t = 0 Ter = Term Ter = Ter - 500
Зачем цикл? Почему именно 50 итераций? зачем деление на 47? И еще не совсем понимаю что на выходе термодатчика. По даташиту на выходе напряжение, соответствующее температуре плюс 500 милливольт. На модели в протеусе получаю "чистое" выходное напряжение, т.е. без добавки 500 мВ.
|
|
| |
kip96 | Дата: Среда, 06.11.2013, 22:39 | Сообщение # 74 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| В протеусе не проверял. В железе всё довольно точно, рядом лежали ds18B20, lm35,TC1047. Все показывали одно и тоже. Теперь про 51 и 47 Разрядность ацп-1024, а опорка 1100mV. т.е ошибка (на память) 6%. Можно просто математикой её убрать, а можно двух зайцев убить, повысить точность усреднением и ошибку убрать. Если в протеусе проверяете, попробуйте Term = Term_t / 50? З.Ы. Думал сразу заметят. Приятно, когда твой код читают, спасибо!
Сообщение отредактировал kip96 - Среда, 06.11.2013, 22:40 |
|
| |
alexdx | Дата: Среда, 06.11.2013, 23:49 | Сообщение # 75 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| Люблю в коде поковыряться. В общем суть этого цикла в усреднении. Делаем 50 выборок (измерений), все результаты складываем и делим на 50. Получаем среднее. Смутило деление на 47. Поправьте, если не прав. UPD: отредактирую, пока все спят) сумма 50 измерений делится не на 50, а на 47 для устранения ошибки. Вот теперь похоже понял. Протеус у меня показывает сходные значения в терминале и на датчике, когда делю на 51! Не понял как Вы ошибку посчитали. Если можно, расскажите пожалуйста.
P.S. Преобразование вольт АЦП в градусы Цельсия. Уравнение прямой, описывающей зависимость: Vout(Volts) = 0.01 * Temperature(°C) + 0.5
Следовательно: Temperature(°C) = Vout(Volts) - 0.5 / 0.01
Кому интересно, вот проект протеус и исходник
Сообщение отредактировал alexdx - Четверг, 07.11.2013, 00:17 |
|
| |
kip96 | Дата: Четверг, 07.11.2013, 13:16 | Сообщение # 76 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Ну так я использовал опорку 1,1в, а у Вас 3,3в. В цикле от 0 до 50 получается 51 выборок, потому и деление на 51 правильно. Далее Вы математикой высчитываете температуру, при опорке 3,3. У меня-же опорка внутреняя 1,1( Reference = Internal ). При напряжении 1100мV, АЦП покажет 1024, значит при 51 выборке надо делить на 47, обычная пропорция.1100\1024=51\х х=1024\1100*51
|
|
| |
alexdx | Дата: Четверг, 07.11.2013, 13:47 | Сообщение # 77 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| kip96, все понял, спасибо большое! буду продолжать экспериментировать. Что-то товарищ Valera18 пропал куда-то... Интересно было бы обсудить алгоритмы общения модулей. Сейчас жду датчики TC1047A. Хочу заказать еще штук 10 радиомодулей и попробовать из связать на одном канале.
|
|
| |
kip96 | Дата: Пятница, 08.11.2013, 11:41 | Сообщение # 78 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Да, надо как-то систематизировать, что-бы какойто стандарт был. Если вдруг решиш повторить чужую разработку, чтоб со своими не конфликтовали. К примеру- У каждого передатчика свой номер. Приёмник делает запрос на каждый передатчик по очереди. Работаем на 1-ом пайпе. На втором пайпе сидят передатчики, которые не ждут запроса(для экономии энергии), а тупо отправляют посылки каждые Х секунд. Так-же систематизировать адресацию(не пайпов, а датчиков). Скажем 1-й байт-это адрес датчика и что от него хотим. (узнать температуру, узнать время, команда всем синхронизировать время, состояние датчика, состояние батареи, тока, и т.д.) Тогда если кто-то добавит какой-то прибор, будет легко его интегрировать в свою систему.
|
|
| |
alexdx | Дата: Пятница, 08.11.2013, 11:54 | Сообщение # 79 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| kip96, по Вашему исходнику Config Adc = Single , Prescaler = Auto , Reference = Internal 'конфигурация АЦП Term = Getadc(1) Вы измеряете выходное напряжение датчика температуры. Оно имеет пределы 0,1 - 1,75 (+0,5) В. При температуре 20 градусов на выходе будет 0,7 + 0,5 = 1,2 вольта. А опорка всего 1,1. То есть максимум, что можно измерить - это 10 градусов. Тогда как же получается верное значение температуры?
Сообщение отредактировал alexdx - Пятница, 08.11.2013, 12:05 |
|
| |
kip96 | Дата: Пятница, 08.11.2013, 20:01 | Сообщение # 80 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
|
|
|
| |
alexdx | Дата: Суббота, 09.11.2013, 11:14 | Сообщение # 81 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| Используете делитель? плохо нет схемы Вашего устройства
|
|
| |
kip96 | Дата: Суббота, 09.11.2013, 19:32 | Сообщение # 82 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Ну с чего Вы взяли эти формулы, я ж говорю, читайте даташит, там даже график есть !
|
|
| |
alexdx | Дата: Воскресенье, 10.11.2013, 22:23 | Сообщение # 83 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| Да, видел график. Так на основе графика получается, что АЦП выдаст значение 1024 при 60 градусах. А 70 уже не получится измерить при опорном 1,1 В.
|
|
| |
alexdx | Дата: Понедельник, 11.11.2013, 10:08 | Сообщение # 84 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| Если я туплю, прошу меня извинить. Но возник вопрос и хотелось бы с ним разобраться.
|
|
| |
kip96 | Дата: Понедельник, 11.11.2013, 15:17 | Сообщение # 85 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Ну да, 60 градусов. Ну ни как Цитата alexdx ( ) При температуре 20 градусов на выходе будет 0,7 + 0,5 = 1,2 вольта А предел от -40 до +60 для уличного датчика более чем. К примеру, обычный спиртовой за окном , предел -50-+50. И я особо не расстраиваюсь. Для каждой задачи, своё решение. Но АЦП в любом случае 10бит. и увеличив опорку до 3.3 вольт, увеличиваете цену деления в 3 раза, и АЦП не покажет болше 600, а до 5 естественно в 5 раз. (соответственно и погрешность). Хотите захватить весь диапазон, ставьте внешнюю опорку на 1.75 вольт
|
|
| |
aleksunches | Дата: Воскресенье, 29.12.2013, 13:03 | Сообщение # 86 |
Группа: Пользователи
Сообщений: 1
Статус: Offline
| Ребята, помогите новичку, я только учусь и ещё не умею присать прошивки, напишите пожалуйста прошивку пульта и приёмника на тини2313. Передатчик: раз в 4 секунды просыпаемся передаём код, засыпаем. Приёмник тоже на тини2313 постоянно включён на приём. При приёме правильного кода с передатчика зажигаем светодиод. Если в течении 10 секунд код больше не приходит - тушим светодиод.
Сообщение отредактировал aleksunches - Воскресенье, 29.12.2013, 13:07 |
|
| |
kip96 | Дата: Суббота, 01.02.2014, 23:10 | Сообщение # 87 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| доработал свой термометр на меге48. Добавил немного интеллекта. Подключил часовой кварц. Плюсы- режим передачи можно выбирать сколько угодно секунд. Хоть раз в день. Появилась возможность синхронизировать несколько асинхронных датчиков. Не смотря, на то что энергопотребление увеличилось (сейчас потребляет 1uA) средне суточное - уменьшилось.(1 посылка в секунду против 8 с Watchdog ) Кроме того , если передатчик долго ни кто не слушает, интервал между посылками увеличивается до 10 мин. (вот такой маленький но гордый ) Сделал выбор адреса передатчика замыканием перемычек, контроль и индикация наличия\отсутствия связи меги с трансивером. Управление трансивером при помощи транзистора, разгрузили выход МК, и можно смело вешать тантал. Ну и ес-но контроль батареи. Уменьшил скорость передачи до 1Мб, в надежде увеличить дальность:'( Платы заказывал в Китае, первый опыт. Пришлось много заказывать, так что если кому нужны будут, пишите в личку. Исходник
|
|
| |
AlekS | Дата: Воскресенье, 02.02.2014, 17:38 | Сообщение # 88 |
Группа: Проверенные
Сообщений: 247
Статус: Offline
| kip96, классно, аккуратненько так) Про китайский опыт расскажи в подробностях ... О платке, схему в личку брось, подойдет мне отпишусь.
|
|
| |
kip96 | Дата: Понедельник, 03.02.2014, 00:00 | Сообщение # 89 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| На яндекс диске дополнил схемой и платой в Дип Трэйсе. Перекачайте. Транзистор правда поставил IRLML9301, у него сопротивление открытого канала минимальное. Про заказ в Китае, много вопросов в личке, давайте тему откроем (где? в барахолке?), т.к. я сам в первые, может у кого интересней. Сегодня опробовал синхронизацию по времени датчиков. Вот с таким "ЦУП"ом . полёт нормальный, всё синхронизируется! Всё пока в тестовом режиме.
Сообщение отредактировал kip96 - Понедельник, 03.02.2014, 00:02 |
|
| |
AlekS | Дата: Понедельник, 03.02.2014, 20:20 | Сообщение # 90 |
Группа: Проверенные
Сообщений: 247
Статус: Offline
| Классно , презентабельно ) , а вот антенна..) Будет домашняя станция?
|
|
| |
kip96 | Дата: Понедельник, 03.02.2014, 23:29 | Сообщение # 91 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Скорее центр управления полётами. Центральные часы. Синхронизируют все часы в доме. Логер температуры и управление насосом солнечного коллектора. Ещё перестелил полы летом, и засунул под них DHT22, что-бы знать влажность там. Аж 3 штуки. Короче, как говорит жена, фигнёй всякой страдаю:DВ планах забабахать автономный анемометр с указание направления ветра и датчиком осадков на таком модуле.
|
|
| |
exersizze | Дата: Четверг, 06.02.2014, 22:18 | Сообщение # 92 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| kip96, здорово выходит, особенно впечатляет энергопотребление;) как сказалось уменьшение скорости передачи на дальнобойность ?
|
|
| |
alexdx | Дата: Пятница, 07.02.2014, 16:26 | Сообщение # 93 |
Группа: Пользователи
Сообщений: 28
Статус: Offline
| kip96, все очень красиво!) а я то уж думал, что тема умерла. Спасибо за фото и исходники, на выходных почитаю) Мне тоже интересно поподробнее узнать про заказ в китае.
|
|
| |
kip96 | Дата: Суббота, 08.02.2014, 11:06 | Сообщение # 94 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Если честно, увеличение дальности я не заметил. Хотя по идеи, должно быть по лучше. alexdx, для меня, пока тема не умерла. Другое дело, что каждая разработка индивидуальна, и скажем что у меня работает, другим и нафик не нужна. Что вот удобно, термометр один, часов, как правило много. Сделал синхронизацию времени. Вот, последнее что сделал- на тини13. Реализованно всё то-же - температура, напр. батареи. Потребление 14uA, при напряжении 2,6 вольт (нашёл пару старых АА в мусорке ) Плата вышла, как видите, меньше самого модуля. Можно смело назвать-"Самый маленький термометр-меньше не будет". Плату буду переделовать, т.к. потом пришла идея посадить питание термодатчика на ногу SS,(потребление его 35uA, так что его и не заметят), да и на плату хочу два AG13 поставить.
|
|
| |
Valera18 | Дата: Суббота, 08.02.2014, 12:47 | Сообщение # 95 |
Группа: Проверенные
Сообщений: 22
Статус: Offline
| Интересно получилось, компактно
Дополнительно: если говорить про миниатюрность термометра можно сделать и меньше. Развести на двухстороннем текстолите, 1 сторона схема передатчика NRF24L01, 2 сторона Attiny13 и CR2032. Я уже как-то делал плату для "отдельной микросхемы NRF24L01", вот образец: http://yadi.sk/d/xj_PxSKnHWs5K
Сообщение отредактировал Valera18 - Суббота, 08.02.2014, 12:53 |
|
| |
kip96 | Дата: Суббота, 08.02.2014, 14:00 | Сообщение # 96 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Ну так меньше станет толко на толщину текстолита, т.е. 1мм. Потом по даташиту, плата и так двухсторонняя, только вторая сторона-это экран, и думаю не случайно, на таких частотах, даже толщина текстолита будет играть роль, поскольку между экраном и печатными дорожками с другой стороны образуется конденсатор. Да и опыта нет пайки таких букашек. Вообщем- малейшая ошибка и весь труд на смарку.
|
|
| |
kip96 | Дата: Четверг, 13.02.2014, 22:30 | Сообщение # 97 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| MMA7361L — 3-осевой, аналоговый датчик ускорения. Передача данных через nRF24l01. Пока сделал тестовую прошивку для проверки работы. Хочу сделать датчик силы удара и скорости удара.Датчик будет крепиться к груше или к запястю руки соответственно. Размер датчика и вес, на скорост удара не повлияют, думаю. Ну а груше уж точно . Осталось толко всё это вычислить. Надо возвращатся к школьной физике.
|
|
| |
kip96 | Дата: Понедельник, 07.04.2014, 23:00 | Сообщение # 98 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Привет! Хочу рассказать, как сделать термометр на nRF24l01 и attiny13. Казалось бы в чём пролблема? А проблема в том, что ног у тиньки маловата, и если управлять трансивером можно, то датчик куда либо подключить - уже нет. И здесь и на других форумах в личке спрашивают, по этом расскажу на форуме. Принцип довольно прост.Для управления цифровой части нужны лог.1 и лог.0. Всё что больше U/2 это 1, всё что меньше- это 0. С этим ясно. Теперь аналоговая часть. Для измерения температуры используем TC1047A, опорку включаем на 1,1. При питании 3 волта, (60С) напряжение на термодатчике не перевалит за порог U/2 . Что в цифровом виде будет всегда 0. Теперь подключим выход TC1047A на (к примеру) CLK(номер ноги 2). Что бы цифровой выход и аналоговый выход не мешали друг другу, подключим через резистор 10кОм. Теперь, включаем АЦП, делаем пин2 на вход и меряем АЦП3. Входное сопротивление очень большое, и резистор на 10кОм результат сильно не изменит. После измерения, включаем пин2 на выход, и и посылаем синхроимпульсы для управления трансивером. И тут резистор нам поможет. Он не даст спалить термодатчик и просадить сигнал CLK. Как то так. К примеру здесь выкладывал фотку вольтметра. Он сделан на тини13, которая мерит ток, напряжение, температуру выходного транзистора,моргает светодиодом "перегрев" и все данные отправляет по SPI на индикатор. Удачи!
|
|
| |
exersizze | Дата: Вторник, 08.04.2014, 10:12 | Сообщение # 99 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| Спасибо, пригодится! А вводишь какие нибудь корректировки в формулу расчета температуры? Смущает что помимо резистора на линии еще вход трансивера висит.
|
|
| |
noner2012 | Дата: Вторник, 08.04.2014, 10:50 | Сообщение # 100 |
Группа: Пользователи
Сообщений: 7
Статус: Offline
| to kip96 А исходники можно посмотреть? Как все это поместилось в памяти tiny13?
Сообщение отредактировал noner2012 - Вторник, 08.04.2014, 10:52 |
|
| |