Большие часы - погодная станция
- Войдите на сайт для отправки комментариев
Желание сделать часы с большими цифрами, чтобы ночью без очков видеть - переросло в этот проект.
Размер всего устройства 230x310, видимая область A4
Сейчас реализовано:
Измерение внутренней температуры, влажности, внешней температуры и яркости солнца (с помощью беспроводного датчика про него ниже), давления, авто регулировка яркости (чтоб ночью не светили сильно),
возможность запрограммировать по bluetooth по времени с повторами 10 сообщений (весь русский алфавит), 3 вида бегущей строки,
сохранение истории внешней температуры и давления за 2 недели,
питание как внешнее, так и от внутренней батареи примерно на 8 часов.
Из чего сделан основной блок:
1. Контроллер Atmega 328 PU на внутреннем генераторе для простоты
2. Самодельный светодиодный индикатор для часов на max7219
3. 9 матриц 8x8, каждая на max7219 как единый матричный дисплей
4. Часовой модуль на RTC DS1307 с 4кб памяти AT24C32
5. Модуль с датчиком давления на BMP085
6. Датчик влажности на DHT11, жду от китайцев DHT22
7. Датчик внутренней температуры DS18B20
8. Модуль с фотодиодом - какойто самый простой - данные снимаю прям с фотодиода.
9. Bluetooth модуль BTM-05 (HC05)
10. Радио nRF24L01+ (Жду из китая ещё такой же, но с усилителем и внешней антенной)
11. Импульсный преобразователь напряжения StepUp готовый китайсткий чтоб поднимать 3,7 до 5v
12. Микруха tp4056 контроля заряда на готовом модуле, зажата на 400ма
13. Li-Ion 3.7V UltraFire 18650 4500mAh(врут Реальных гдето 3000)
14. Блок питания 5V 1.2A
Про внешний модуль в сл посте.



Внешний модуль спрятался в цветах
Собран в контейнере для хранения 4х Lir123, следующий будет в 2 раза меньше
Функции
1 измерение внешней температуры датчиком на проводке
2 измерение яркости солнечного света (по V на солнечной батарее)
3 служебная передача вольтажа батареи и порядкового номера передачи для контроля качества канала.
Модуль работает только на передачу и передает данные раз в 18 секунд (2 цикла сна).
Собран на :
1. Контроллер Atmega 328 PU на внутреннем генераторе, прошита для работы до 2.7 вольта.
2. Радио nRF24L01+
3. Микруха tp4056 контроля заряда на готовом модуле.
4. Li-Ion EEMB Lir123 3.7V 750mAh
5. Солнечная батарея 66,9x39 mm V=5,5V I=70ma при 1000 ватт на м2
Заряжается от солнечной батарейки - 1 месяц полет нормальный напряжение на батарее стабильно 3.9v. Предусмотрена возможность внешнего заряда по USB, думаю не понадобится.
Как показывает опыт эксплуатации - одну стену датчик пробивает, потери пакетов не велики до 1%, две уже с трудом.
В планах:
0 Уже сделано - сделать функцию коррекции часов. отстают на 20 сек в сутки.
0 Уже сделано - дополнительное управление Яркостью для max7219 на отдельном ШИМе Мк заместо штатного резистора. Их внутреннее управление яркостью с 16 уровнями оказалось недостаточным.
1 Всетаки дождаться из китая два 4-х циферных индикатора для правого верхнего угла часов! Там будет давление и внешняя температура.
0 Сделано На часы поставить модуль nRF24L01+ с усилителем и внешней антенной.
0 Сделано Сделать красивую индикацию истории измерений давления и температуры
0 Сделано Вынести в отдельный комнатный радио модуль датчик влажности и внутренней температуры
0 Сделано Сделать второй уличный модуль в 2 раза меньше текущего на Ионисторе и приляпать его на дерево или на столб на улице.
6 Добавить Buzzer для подтверждения приема комманд
7 Сделать радиоудлинитель ком порта чтобы программировать основной блок не снимая со стены
Кода получилось реально много, несколько библиотек переправил по ходу решения задачи. Готов публиковать здесь по запросам форумчан.
Большое спасибо spa-sam заимствовал части кода из
http://arduino.ru/forum/proekty/peredacha-temperatury-s-datchikov-dht11-ds18b20-cherez-nrf24l01#comment-22978
(Только поправил чтобы в передатчике всегда каждые 9 секунд не включалось радио.)
Big thank
http://maniacbug.wordpress.com/2011/10/19/sensor-node/
http://www.arduino.cc/en/Reference/Libraries
а что за матрицы 8х8 используются? с общим катодом?
Да с общим катодом вот такие
http://www.ebay.com/itm/1PCS-MAX7219-Dot-matrix-module-MCU-control-Display-module-DIY-kit-Arduino-/251170570992?pt=LH_DefaultDomain_0&hash=item3a7aeec2f0
Яркие красные. Против солнца видны.
Понятно. Скоро выложу свой подобный проект :) матрицы 8х8 биколор с общим анодом (соответственно, другая схемотехника, более "классическая")
3 Сделать красивую индикацию истории измерений давления и температуры - Сделано.
Теперь думаю над заменой МК на ATMEGA1284P, так как почти совсем закончилась память.
Оперативка еще чутка есть, а flash, под саму программу, уже совсем кончается.
И загрузчик уже поменял на поменьше. И часть библиотек упростил исправив в них пару косяков.
А планов и идей для реализации в проекте еще гора.
Мож кому интересно
Прикинул во сколько денег все получилось - все элементы, кроме основного корпуса брал на ebay.
Основной модуль
Штук
Цена руб
Стоимость
1. Контроллер Atmega 328 PU
Atmega 328p
1
68,9
68,9
Макетная плата
1
9,04
9,04
Панелька
1
5,55
5,55
2. Самодельный светодиодный индикатор для часов на max7219
max7219
2
26,99
53,98
Пакет 100 Led Зеленые
1
80,97
80,97
Макетная плата
1
37,6
37,6
3. 9 матриц 8x8, каждая на max7219 как единый матричный дисплей
9
131,82
1186,38
4. Часовой модуль на RTC DS1307 с 4кб памяти AT24C32
1
82,85
82,85
5. Модуль с датчиком давления на BMP085
1
177,32
177,32
6. Датчик влажности на DHT11, жду от китайцев DHT22
1
215,92
215,92
7. Датчик внутренней температуры DS18B20
1
29,75
29,75
8. Модуль с фотодиодом - какойто самый простой
1
103,57
103,57
9. Bluetooth модуль BTM-05 (HC05)
1
262,69
262,69
10. Радио nRF24L01+
1
53,825
53,825
11. Импульсный преобразователь StepUp готовый
1
109,85
109,85
12. Микруха tp4056 контроля заряда на готовом модуле,
1
46,76
46,76
13. Li-Ion 3.7V UltraFire 18650 4500mAh(врут Реальных гдето 3000)
1
69,67
69,67
14. Блок питания 5V 1.2A
1
115,81
115,81
15. Корпус
1
210
210
2920,43
Внешний датчик 1
1. Контроллер Atmega 328 PU
Atmega 328p
1
68,9
68,9
Макетная плата
1
9,04
9,04
Панелька
1
5,55
5,55
L78L33ACZ
1
15,59
15,59
2. Радио nRF24L01+
1
53,83
53,83
3. Микруха tp4056 контроля заряда на готовом модуле.
1
46,76
46,76
4. Li-Ion EEMB Lir123 3.7V 750mAh
1
58,85
58,85
5. Солнечная батарея 66,9x39 mm V=5,5V I=70ma при 1000 ватт на м2
1
194,90
194,90
6. Корпус
1
20,40
20,4
473,80
Итого
3394,23
Извиняйте таблица вставилась несколько кривовато.
P.S. Всякую мелкоту: пяток диодов, десяток резисторов, 10 метров мгтф, биполярный транзистор, пару конденсаторов не считал.
По поводу включения nRF24L01+ позже тоже поправил)).....
ales2k, подскажи, как ты подключал Lir123 3.7V ...какое у него напряжение при полном заряде?...обычно у Li аккумуляторов при полном заряде выдает 4,2 вольта....отсюда затыка по поводу nRF24L01+...max напруга на него должна быть не более 3,6 В...ставил резистор?..да и было бы интересно посмотреть полную схему питания с подзарядкой)
Li-ion при полном заряде 4.2 вольта. nRF24L01+ питается через стабилизатор L78L33ACZ. У nRF24L01+ по инструкции диапазон питающего напряжения 1.9-3.3в, если не допускать глубокого разряда LiIon, менее 2.8, то у него всегда с питанием ОК.
Видел схемы где nRF питают от ноги цифрового выхода МК, но у меня не так.
Схему питания вечерком набросаю. Но там все просто: Солнечная батарея (11 элементов по 0.5V = 5.5v, при освещении 1000вт на м2 ток 70ма) -> диод Шотки -> Микруха контроля заряда tp4056 -> Li-ion.
Минус такой схемы, что заряжает только при достаточно хорошем освещении, когда напряжение на солнечной батарее больше 4v. В моих условиях выходит максимум 1 час в не очень пасмурный день.
Из последнего что делал с внешним датчиком
1 включил автоматические повторы передачи, поставил значение на 15 повторов при не доставке. Не знаю как работает, на форуме рекомендовали.
2 выключил brown-out детектор на МК. Экономия 20 мка. Итого во время сна МК сейчас потребляет 5.2 мка.
Прикинул на сколько должно хватить полностью заряженного Li-Ion 500mah без солнечной батареи.
По данным http://maniacbug.wordpress.com/2011/10/19/sensor-node/ время когда мк работает и не спит 0.03 сек - проверю вечером, при этом потребляет ток примерно 15 ма. У меня цикл передачи раз в 24 секунды.
Во время сна примем 6 мка.
За час 0,025mAh!
У меня получилось 20000 часов!!! Больше 2-х лет! Может я где ошибся?
Эх....в том то и затыка...я тоже хотел Li-Ion поставить....L78L33ACZ...его собственное потребление портит всю картину энергосбережения...порядка 6 мА
А может просто поставить резистор по питанию на nRF24L01+...?....где тут могут быть подводные камни?
Да с линейным регулятором лопухнулся.
По графику для 4 вольт гдето 1.5-2 ma, но все равно много. Проверю наживую вечерком, а то заменю банально на диод, или на пару - падение 1 вольт -> на входе 4.2 -> на выходе 3.2 -> все довольны доп потребления нет и ура :)
Итак на старте доработки было 1.35ma во сне и 6ma при передаче
Убрал линейный регулятор, заменил на 2 диода - общее падение на них 0,7 вольта (0,5+0,2).
Стало во сне 52мка при передаче 4,7ma
Оказалось что та библиотека которую мы используем вместе с spa-sam криво кладет в сон nRF24L01+
Запитал nRF24L01+ от цифрового пина МК на digitalout, отключаю от него питание насовсем на время сна.
Стало во сне 6мка при передаче 4,7ma - цель достигнута.
По моим прикидкам получилось, что от полностью заряженого Li-ion на 500 mah должно работать 658 суток.
Нужно опробовать будет...вот только это покатит с обычным модулем nRF24L01+, а тот который + PA на ногу МК не посадить, там потребление может достигать 115mA ...и в случае модернизации модуля можно попасть в неловкое положение)
Можно через транзистор на ногу посадить. Кстати на биполярном падение примерно 1 вольт - можно без диодов обойтись.
Фьюзы и параметры прошивки МК для внешнего датчика
#include <SPI.h> #include "nRF24L01.h" #include "RF24.h" #include <avr/sleep.h> #include <avr/wdt.h> #include <Wire.h> #include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS 3 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); int count; //переменная для счётчика циклов volatile boolean wdt_tripped=1; RF24 radio(8,7); const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL }; //создаём структуру для передачи значений typedef struct{ int W; int X; float Y; int Z; long U; } B_t; B_t duino2; //режим сна для МК void system_sleep(byte t) { delay(2); // Wait for serial traffic _SFR_BYTE(ADCSRA) &= ~_BV(ADEN); // Switch ADC off set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_enable(); sleep_mode(); // System sleeps here sleep_disable(); _SFR_BYTE(ADCSRA) |= _BV(ADEN); // Switch ADC on } void wdt_interrupt_mode() { wdt_reset(); WDTCSR |= _BV(WDIE); // Restore WDT interrupt mode } ISR(WDT_vect) { wdt_tripped=1; // set global volatile variable } void setup() { wdt_disable(); wdt_reset(); wdt_enable(WDTO_8S); //пробуждение каждые 8 сек count = 0; pinMode(2, OUTPUT); //Пин на который подключено питание радио модуля digitalWrite(2,HIGH); sensors.begin(); sensors.setWaitForConversion(false); //Без ожидания конверсии температуры sensors.requestTemperatures(); //Запросить температуру delay(1000); // Подождать первой конверсии } void loop(void) { wdt_interrupt_mode(); if (wdt_tripped) { count++; wdt_tripped = 0; if (count == 3) //тут можно увеличить интервал времени между отправками данных по RF24 за счёт счётчика циклов 8*3 { count = 0; float t = sensors.getTempCByIndex(0); //Читаем температуру sensors.requestTemperatures(); //Запрашиваем подготовку температуры для следующего раза //записываем в структуру данные для передачи duino2.W = 11; // этот номер передатчика для идентификации в принятом пакете данных duino2.X = getBandgap (); // передаём напряжение батареи duino2.Y = t; // передаём температуру duino2.Z = (int)(1.48* analogRead(A2)); // Солнышко - читаем освещенность солнечной батареи duino2.U++; // счетчик передач используется для контроля качества канала digitalWrite(2,HIGH); //подаём питание на NRF24, затем готовим канал radio.begin(); radio.setRetries(10,15); radio.openWritingPipe(pipes[0]); radio.powerUp(); radio.stopListening(); // отключаем режим приёма bool ok = radio.write( &duino2, sizeof(duino2) ); //отправляем данные по RF24 delay (20); radio.powerDown(); // гасим штатно RF24 digitalWrite(2,LOW); // отключаем питание RF24 } } system_sleep(WDTO_8S); //МК засыпает } //внутренний контроль напряжения на батарее const long InternalReferenceVoltage = 1062; int getBandgap () { // REFS0 : Selects AVcc external reference // MUX3 MUX2 MUX1 : Selects 1.1V (VBG) ADMUX = _BV (REFS0) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); ADCSRA |= _BV( ADSC ); // start conversion while (ADCSRA & _BV (ADSC)) { } // wait for conversion to complete int results = (((InternalReferenceVoltage * 1024) / ADC) + 5) / 10; return results; } // end of getBandgapПо сегодняшним замерам работы всего устройства вышло потребление во сне 5.8мка, max потребление в работе 4,7ma длительность рабочего цикла 62 микросекунды. На батарее 500mah протянет 860 дней.
Столкнулся с непонятной траблой...тестирую два внешних датчика...один на DS18B20...работает отлично....второй на DHT22...так вот с ним вся загвоздка....пока на батарейках 2.8 -2.75 В, то вроде нормально, но как ниже сползает, то начинает врать (завышать) влажность...температура показывает нормально...в этом плане хорошо LI-Ion...там кривая разряда отличная...как писал выше, было бы неплохо использовать именно аккумулятор на Li-Ion, но полный заряд в 4.2 В портит всю картину...попробовал я через два диода...да...вольтаж падает, но не пойму почему при одинаковом напряжении на Li аккумуляторе (от моб. телефона) и батарейках...разница в 10% не в пользу аккумулятора... При этом заметил, что в момент отправки данных на аккумуляторе с диодами идет довольно сильная просадка напруги (порядка 0.5 В)...на батарейках такого нет...мож аккумулятор не тянет?
Решил попробовать cтабилизаторы напряжения, но с очень низким потреблением...заказал вот такой
MCP1701AT-3302I/CB Uвх: 2.8...10 В ...Uвых: 3.234...3.366 В...Iвых: 150 мА: Iпотр: 2 мкА
В серии DHT, насколько я в курсе, внутри стоит свой микроконтроллер для обсчета датчиков влажности и температуры и он довольно нежный по питанию. Просадку на диодах надо смотреть под твоей нагрузкой. Может диод не удачный попался, у меня получился FR107 0.5v + N5819 0.2v и падение напряжения на них стабильно на моем токе потребления до 10ma. В pdf есть график падения прямого вольтажа от тока нагрузки.
MCP1701AT-3302I/CB - прикольный регулятор но на ebay их нет а до магаза мне будет лениво тащиться.
До меня еще DHT22 пока не доехал... Я в добавок взял еще HS1101 - может его приручить удастся.
У DHT ток потребления 1.5ma, время измерения 2 сек. Можно конечно влажность реже мерять раз в 10 минут например...
На ebay я заказал этот регулятор...не хуже того)
http://www.ebay.com/itm/140790390510?ssPageName=STRK:MEWNX:IT&_trksid=p3...
Спасибо, заказал таких же.
Пришли мне сегодня MCP1701AT...собрал небольшую платку с регулятором и сразу опробовал...одним словом, замечательная штука...держит отлично 3.3 В, ток потребления как и обещали в пределах 2 мкА...теперь буду свой DHT22 тестировать с аккумулятором) Единственное, что прийдется схему внешнего датчика менять, дабы был контроль по напряжению на аккумуляторе...
У тебя в коде есть измерение напяжения питания МК, чем оно не подходит?
А сколько потребляет DHT22 в реальности а не по описанию?
Код изменил немного, но дело не в нем, а в схеме....я делал отдельным модулем стабилизатор на MCP1701AT и ставил его сразу после аккумулятора....поэтому на МК всегда было бы 3.3 В. В итоге пока временно припаял к разрезанным дорожкам между питанием nRF24L01+ и аккумулятором.
Потребление DHT22 ....в режиме ожидания 10 мкА и 1.5 мА в активном
//внутренний контроль напряжения на батареи ...измеренное множим на поправку 1.05 int getBandgap(void) // Returns actual value of Vcc (x 100) { #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) // For mega boards const long InternalReferenceVoltage = 1115L; // Adjust this value to your boards specific internal BG voltage x1000 // REFS1 REFS0 --> 0 1, AVcc internal ref. -Selects AVcc reference // MUX4 MUX3 MUX2 MUX1 MUX0 --> 11110 1.1V (VBG) -Selects channel 30, bandgap voltage, to measure ADMUX = (0<<REFS1) | (1<<REFS0) | (0<<ADLAR)| (0<<MUX5) | (1<<MUX4) | (1<<MUX3) | (1<<MUX2) | (1<<MUX1) | (0<<MUX0); #else // For 168/328 boards const long InternalReferenceVoltage = 1056L; // Adjust this value to your boards specific internal BG voltage x1000 // REFS1 REFS0 --> 0 1, AVcc internal ref. -Selects AVcc external reference // MUX3 MUX2 MUX1 MUX0 --> 1110 1.1V (VBG) -Selects channel 14, bandgap voltage, to measure ADMUX = (0<<REFS1) | (1<<REFS0) | (0<<ADLAR) | (1<<MUX3) | (1<<MUX2) | (1<<MUX1) | (0<<MUX0); #endif delay(50); // Let mux settle a little to get a more stable A/D conversion // Start a conversion ADCSRA |= _BV( ADSC ); // Wait for it to complete while( ( (ADCSRA & (1<<ADSC)) != 0 ) ); // Scale the value int results = (((InternalReferenceVoltage * 1023L) / ADC) + 5L) / 10L; // calculates for straight line value return results; }Пришли ко мне новые модули из китая nRF24L01+. Подключил на готовящийся датчик - не работает, всю голову сломал в чем дело. Оказалось если на питание самого модуля, прямо на плату припаять конденсатор 100 мкф устойчивость работы резко возрастает. Очень рекомендую. Может это вариант питания от ноги контроллера так работает, но не я такой один http://arduino.ru/forum/programmirovanie/nrf24l01?page=2#comment-31054
По документации DHT22 / AM2302
Stand-by 40-50 мка Measuring 1-1,5 ma
Измерение более 2-х секунд, выдача результатов по 250мс на каждый.
По факту получается хуже - отключал и проверял.
Stand-by 70-90 мка Measuring 1-2 ma
Планирую попробовать на замену DHT22 -> SHT10
http://www.dfrobot.com/image/data/DFR0066/Datasheet-humidity-sensor-SHT1x.pdf
Заказал из китая 14$.
Не дешево, но если это даст возможность работать только от солнца, то подойдет.
Как получил 10 мкА?!...да фиг его знает....мож погрешность измерений))...ничего спецом не делал)...мож библиотеки разные...
4 Вынести в отдельный комнатный радио модуль датчик влажности и внутренней температуры
Сделано.
Столкнулся со странной ситуацией - при использовании 2-х каналов (pipe) на чтение, общая чуствительность приемника стала хуже!
Если работает 1 датчик то две стены пробивает замчательно, если оба, то дальний две стены пробивает через раз. Может я в доке чтото пропустил? На днях подключу третий и поменяю модуль в основном блоке на мощный, с антенной, возможно пройдет.
>> Столкнулся со странной ситуацией - при использовании 2-х каналов (pipe) на чтение, общая чуствительность приемника стала хуже! Решено настройкой модулей. 100 мкф обязательно
В моем случае оказалось оптимально
digitalWrite(radiopwrpin,HIGH); //подаём питание на NRF24, затем готовим канал radio.begin(); radio.setDataRate(RF24_2MBPS); // Скорость передачи radio.setPayloadSize(16); radio.setChannel(97); // свободный radio.setRetries(10,15); radio.openWritingPipe(pipes[1]); radio.powerUp(); radio.stopListening(); // отключаем режим приёмаДалее передача
Также заменил в часах модуль
Сделано 2 На часы поставить модуль nRF24L01+ с усилителем и внешней антенной.
интересная тема про батарейное питание
есть уже опыт эксплуатации lion аккумуляторов зимой? некоторые ставят setp-up преобразователи и питают от них, но это все равно потери минимум 10%. мне видится выгодней мк питать напрямую, но нужен подходящий источник. заряжается ли он реально от солнца?
кстати есть вот такие ldo с заявленнным потреблением 1мка и падением не более 250мв, правда хорошая цена идет за сотню http://www.aliexpress.com/item/XC6206P332MR-XC6206P252MR-SOT-23-SMD-trio...
функция в суктче system_sleep откуда она? В avr/sleep.h не могу найти
033voidsystem_sleep(bytet) {034delay(2);// Wait for serial traffic035_SFR_BYTE(ADCSRA) &= ~_BV(ADEN);// Switch ADC off036set_sleep_mode(SLEEP_MODE_PWR_DOWN);037sleep_enable();038sleep_mode();// System sleeps here039sleep_disable();040_SFR_BYTE(ADCSRA) |= _BV(ADEN);// Switch ADC on041}На улице стоит ионистор. Как показала практика - Li-ion при +20 вполне заряжается от тока в 1ма :)
Сам не проверял, но по доке -> Li-ion при -20 не заряжаются вообще, а емкость падает в 5-10 раз.
С ионистором другая засада - емкость очень маленькая,даже не так страшен саморазряд Panasonic вполне долго держат.
Для стабилизации напряжения заряда сейчас везде использую светодиоды - просто и надежно.
Для стабилизации на модулях примерно 3,3 диод с замеренным падением.
спасибо за добавку кода! извиняюсь если ее пропустил
ионистор - очень интересно. он уже работал зимой? хватает ли его на ночь?
диод для стабилизации или вы имели в виду он для того чтобы погасить излишек напряжения, чтобы не превысить 3.6в которые положены радиомодулю?
Да на одну-две ночи ионистора хватает и темпратура ему не важна.
Ионистор нужен с малым саморазрядом, паралельно ему 2 светодиода - 1,8+1,8v. Когда напряжение превысит 3,6 они начнут светиться и скидывать излишек. Солнечная батарея с большим запасом по напржению - вольт на 8-10, в пасмурное время будет давать 3-4 вольта.
Диод вместо стабилизатора для падения напряжения. nRF24L01+ очень не любят линейные стабилизаторы, начинают глюкать.
Насчет линейных стабилизаторов...работает в квартире одновременно 3 передатчика...все от Li-ion с лин.стаб. никаких глюков, потери мощности не было замечено (единственная поправка - все они в спящем режиме и передают данные 1 раз в минуту, поэтому одновременная работа это очень условно)....работает как часы месяца 4 уже. Хочу попробовать перейти на Li-Fe там говорят рабочий режим до -20...думаю заказать и поставить на один из модулей (скоро зима...)), проверим)
ales2k спасибо за разъяснение. Еще несколько вопросов. Ионистор на какую емкость? Если я правильно понял то основная харарктеристика ионистора это его емкость в фарадах. Саморазряд как-то указывается, нормируется? У вас я так понял ионистор фирмы филипс?
если солнечная батарея 10в, а на ионисторе со светодиодами 3.6в, то они напрямую соеденены или между солнечной батареей и ионичтором есть буфер типа резистора на котором падает излишек напряжения?
поясните что значит nrf24 не любят линейных стабилизаторов? Не понятна природа такой нелюбви. У меня несколько устройств на этих радио чипах и там как раз стоят линейные стабилизаторы из 5в в 3.3в
spa-sam - видимо те которые мы в теме обсуждали работают хорошо - обычные LM - реально плохо.
Характеристики ионистора - максимально напряжение, ёмкость, число циклов до потери 30% емкости, график разряда, график саморазряда, график заряда разными токами.
Ескость в фарадах, 1 фарад помоему примерно равен 0,07mah (если не перепутал ноли). Напруга садится примерно линейно заряду, как у конденсатора, в отличие от батареек.
Многие китайские саморазряжаются за несколько часов, отечественные, которые ко мне попадали за пол часа.
Панасоники - спец серия - дома буду номинал напишу - за 20 дней.
любой линейный стабилизатор надо подключать согласно даташиту. Если не те конденсаторы использовать что рекоменованы они могут самовозбуждаться. lm очень разные есть и врядли с ними есть какие-то проблемы. Я использую на которые ссылалася и более дешевые (для не батарейного питания, так как у них падение напряжение до 1в) - AMC1117
Да именно с AMC1117 и именно в момент передачи данных nRF24L01+ чтото происходит - конденсаторы все стоят. Возможно у меня неудачная партия этих стабилизаторов.
Кроме того я за диод, потому что он не потребляет доп ma :)
P/S/ Пришла мысль - возможно конденсаторы полудохлые, нужно проверить, мож когда с платы феном сдувал - перегрел.
AMC весьма требовательны к конденсаторам, рекомендуют ставить на выходе тантал на 22мкф или больше, XC6206P332MR о которых писал выше требуют всего два керамических на 1мкф.
что значит диод не потребляет дополнительных ма? На нем падает напряжение, а это полюбому расход электроэнергии, стабилизатор это тот же диод, только управляемый, а диод неуправляемый
разница между расходом энергии на диоде и на стабилизаторе только в токе, который течет через ту ногу, которая на землю
AMC1117 через ногу на землю потребляет порядка 5 ма, но они и не предназначены для батарейного питания. А вот XC6206P332MR предназначена и ее потребление 1мка
Про диод - Я о том что стабилизатор будет кушать постоянно, а диод только когда будет ток через него.
постоянно стабилизатор будет кушать только то, что течет через его ногу на землю, для вашего устройства для стабилизатора с потреблением 1мка увелиение тока потребления в относительных единицах будет не более 1/40. Это не так страшно, разве нет?
Именно для моего устройства, где радио питается с ноги и обесточивается совсем на время сна - правда так, но для других задач
MK во сне потребляет 4.7 мка и еще доп 1 мка - весомо.
Для сравнения, какой расход тока вызовет тот же диод с падением 0,6v - даже не знаю как посчитать.
согласен
диод не ток потребляет а ампер-часы - падение тока на нем умножаем на напряжение падающее на нем и на время
сравнить наверно можно с альтернативой - step-down с типичной эффективностью 90%. Но это в лоб справедливо при постоянной нагрузке. А если речь идет об устройстве которое засыпает - опять будет важен ток потребления в состоянии покоя. Не знаю есть ли такие step-up/step-dowm чтобы в состоянии покоя потребляли совершенный минимум? Опыта пока не имею, размышляю на эту тему, думаю как буду делать
что касается батарейного питания изучил какие есть микросхемы для этого и чот что получилось. основной ориентир в моем поиске был на питание от 1-2 батареек устройств с питанием 3.3в
есть два вида микросхем для этого:
- конденсаторные умножители (так называемые charge-pump), в свою очередь деляться на регулируемые и нет. Среди них есть устройства с малым потреблением. Особый интерес представляют mcp1256-1259, но почему-то их купить не так то просто. Они имеют стабилизацию выходного напряжения и режимы низкого потребления. Точнее 1256-1257 умеют переключаться в режим сна (сохраняя небольшой ток на выходе), а 1258-1259 имеют режим замыкания входа на выход с сильным снижением потребления - можно держать этот режим пока батарейка не разрядится настолько, что нужно будет включить умножение. Минимальное входное напряжение для таких схем что мне попались 1.5В, т.е. для питания от одной алкалиновой батарейки или одного nimh не подходит, минимум от двух или от одного lion. Чем интересны - минимумом компонентов, только конденсаторы, иногда диоды. Испытал такой max1044 для питания подсветки дисплея от нокия 1616 - там нужно 7в
вывод - для батарейного питания не очень применимы, в редких случаях, особенно из-за недоступности таких микросхем как 1256-1259, хотя эффективность преобраования конденсоторных доходит почти до 100%! ( в даташитах пишут >99%)
- индуктивные step-up. вот тут уже интереснее. Есть схемы которые запускаются при напряжениях меньше вольта (0.6-0.8) и могут работать до разрядки до 0.3в. Компонентов тоже не много - индуктивность, пара конденсаторов и пара резисторов (для задания выходного напряжения). Некоторые имеют режимы низкого потребления сохраняя выходное напряжение под низкой нагрузкой - самое то для батарейного питания. Из того недорого что мне удалось найти это mcp1640 от микрочипа, есть по цене 30р на chip-nn.ru. Очень хороший вариант мне видится. Второй вариант ncp1402. Они есть на алиэкспресс десятком от 20р за штуку. ncp1402 требует болшую индуктивность (47мкгн против 4.7мкгн для macp1640) и требует еще один диод шотки
вывод - единственный вариант для питания от одной батарейки, хороший вариант для питания батарейных устройств, особенно если есть режимы низкого потребления. эффективность преобразования ниже чем у первых - порядка 85%
буду пробовать индуктивные step-up. интересно как строить логику включения/выключения режима низкого потребления? при полном засыпании МК это наверно не получится сделать
Пробовал для StepUP L6920D Реально работает с 0.6V.
Я пытался на ней сделать преобразователь для подъема напряжения с Солнечной батареи для заряда Ионистора или Li-Ion
Столкнулся с проблемой импульсов потребления тока при которых напряжение на батарее просаживается ниже плинтуса и степап не запускается, накопительный конденсатор тоже не очень помогает.
В результате подобрал солнечники на большее напряжение и меньший ток. Но от батареек работает все супер устойчиво.
L6920D тоже вариант, хотя дороже
поднятие напруги?) напругой обычно ток называют, ток как раз снижается, поднимается напряжение. Видимо степапу нужен ток который солнечная батарея не смогла обеспечить.
кстати подробная статься про управление потреблением электроэнергии ардуино http://www.gammon.com.au/forum/?id=11497
Напруга - от слова напряжение, а не от слова ток
понятна, я ни в автомобильном жаргоне ни в украинсокй мове не силен (http://dic.academic.ru/dic.nsf/dic_synonims/230366/%D0%BD%D0%B0%D0%BF%D1%80%D1%83%D0%B3%D0%B0)
в русском языке такого слова (согласно словарю Ожегова) нет
Поправился :)