Перейти к содержанию

Gomerchik

Members
  • Постов

    48
  • Зарегистрирован

  • Посещение

Информация

  • Город
    Москва

Электроника

  • Стаж в электронике
    Более 20 лет
  • Сфера радиоэлектроники
    ремонт
  • Оборудование
    mestek, weller

Посетители профиля

2 129 просмотров профиля

Достижения Gomerchik

Новобранец

Новобранец (2/14)

  • Преданный
  • 10 постов на форуме
  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. Получается либо таймер работает наполовину и идет передача, либо таймер работает как надо, но передача не идет(
  2. Спасибо v1ct0r. Попробовал поиграться по Вашему со скетчем - не помогло( запитывать от 5в датчик тоже. Пересобрал на макетке схему и теперь с подключенным BME280 и передатчиком таймер работает нормально несколько циклов, но потом все равно переходит на постоянную подачу питания(( Да и станция не ловит сигнал( Что касательно последнего - время подачи питания с таймера обусловлено протоколом работы погодных датчиков: датчики передают показания с интервалом 39, 41 и 43 секунды на 1-ом, 2-ом и 3-ем канале соответственно. Совсем запутался( Waiting for BMEsensor... Found BME280 sensor! Success. Temperature = 27.7C Humidity = 26.2% Pressure = 745.9mmHg Battery voltage = 1DC 528ms
  3. Данная схема передатчика температуры и влажности для метеостанции OREGON BAR388HG.
  4. На некоторых схемах между А1 и GND ставят резистор на 1 мОм. Я поставил и таймер стал работать как надо, НО!!! сигнал перестал приниматься станцией(((( Убираю резистор и все возвращается на круги своя((
  5. Спасибо за совет. Автором данного проекта я не являюсь, мне нужно было воссоздать уличный датчик для метеостанции взамен пропавшего(( Из разного найденного в интернете этот проект работает с моей станцией Орегон (спасибо автору). В понедельник попробую последовать Вашему совету. Но все равно куча непоняток как блин это работает)) Если дело в неправильной отправки команды, то как на это влияет подключение датчика температуры? Если совсем не подключать таймер, то передача идет один раз (как и прописано в программе), станция принимает и отображает, но минут через сколько-то естественно станция уже ни чего не показывает, но с таймером питание полностью не пропадает с ардуинки, но передача сигнала каким-то образом работает по таймеру. В моем понимании данная команда подается один раз потому, что таймер должен отключать питание МК после передачи сигнала и каждые 43 сек снова подавать питание (так того требует станция). Ардуино передает показания температуры отключается полностью и 43 секунды мк не работает. Сейчас у меня питание пока сделано на подпитке от солнечной батареи, но пару пасмурных дней и аккумулятор съедается до отключения(
  6. #include <Wire.h> #include <Oregon_TM.h> #include <BME280I2C.h> //////////////////////////////////////////////////////////////////////////////////////////////////////////// //Скетч для устройства, передающего данные датчика BME280 в формате Oregon Scientific THGN132N //Принципиальная схема прилагается. //Для работы необходима библиотека https://github.com/finitespace/BME280/ //Устройство работает от 3-ех пальчиковых батареек, для экономии электричества заливать скетч нужно через ISP //////////////////////////////////////////////////////////////////////////////////////////////////////////// //Также возможна передача данных в формате - THP (температура, влажность, давление, напряжение батареи) //Пример с приёмником поддерживает расшифоовку THP //////////////////////////////////////////////////////////////////////////////////////////////////////////// # define THGN_SEND 1 // Передавать ли данные в формате THGN132 # define THP_SEND 0 // Передавать ли данные в формате THP # define DEVICE_LOG 1 //Писать ли лог В Serial # define DONE_PIN 15 // вывод сигнала об окончании работы на таймер # define BME_WAIT 10 // Сколько мс ожидать датчик BME # define BATTERY_THR 3.5 // Порог напряжения для выставляения флага разряда батарейки (THGN) ///////////////////////////////////////////////////////////////////////////////////////////////// //Ниблы датчика THP //Во всех полях младшие ниблы идут вперёд!!! // 1-2 - тип (55) // 3 - канал (0-7) // 4-6 - (температура от -100С) * 10. Т.е. +25.1С = 1251 = 4E3h // 7-9 - Влажность *10 Т.е. 25.1% = 251 = 0FBh // 10-12 - (давление от 500ммртст) * 10. Т.е. 765мм = 2650 = A5Ah // 13-15 - данные с АЦП (A0) // 16-17 - CheckSUM // 18-19 - CRC8 (poly 0x07 start 0x00) ///////////////////////////////////////////////////////////////////////////////////////////////// Oregon_TM transmitter(4); BME280I2C bme; bool bme_present = false; float bme_temp(NAN), bme_hum(NAN), bme_pres(NAN); ///////////////////////////////////////////////////////////////////////////////////////////////// void setup() { digitalWrite(DONE_PIN, LOW); pinMode(DONE_PIN, OUTPUT); #ifdef DEVICE_LOG Serial.begin(115200); Serial.println("Waiting for BMEsensor..."); #endif //Обмен данными с BME////////////////////////////////// Wire.begin(); while(!bme.begin()) { if (millis() > BME_WAIT) break; } if (!bme.begin()) { #ifdef DEVICE_LOG Serial.println("No BME sensor found"); #endif bme_present = false; } else { switch(bme.chipModel()) { case BME280::ChipModel_BME280: bme_present = true; bme.read(bme_pres, bme_temp, bme_hum); #ifdef DEVICE_LOG Serial.println("Found BME280 sensor! Success."); Serial.print("Temperature = "); Serial.print(bme_temp, 1); Serial.println("C"); Serial.print("Humidity = "); Serial.print(bme_hum, 1); Serial.println("%"); Serial.print("Pressure = "); Serial.print(bme_pres * 0.75, 1); Serial.println("mmHg"); #endif break; default: #ifdef DEVICE_LOG Serial.println("Found UNKNOWN sensor! Error!"); #endif bme_present = false; } } //Напряжения батареи/////////////////////////////////////////// word battvotage = (word)(((float)(1.1 * 16368) / Vbg()) * 100); #ifdef DEVICE_LOG Serial.print("Battery voltage = "); Serial.println(battvotage,HEX); #endif //Подготовка и отправка данных THGN////////////////////////////////////// transmitter.protocol == 2; if (THGN_SEND) { transmitter.setType(THGN132); transmitter.setChannel(3); transmitter.setBatteryFlag(battvotage < BATTERY_THR); if (bme_present) { if (bme_hum > 98) bme_hum = 98; if (bme_hum < 2) bme_hum = 2; if (bme_temp > 70) bme_temp = 70; if (bme_temp < -50) bme_temp = -50; transmitter.setTemperature(bme_temp); transmitter.setHumidity(bme_hum); transmitter.setComfort(bme_temp, bme_hum); } else { transmitter.setTemperature(-49.9); transmitter.setHumidity(2); transmitter.setComfort(-49.9, 2); } transmitter.SendPacket(); } // Если отправляются оба формата пакетов, межу ними надо выдержать паузу if (THP_SEND && THGN_SEND) delay(100); //Подготовка и отправка данных THP////////////////////////////////////// if (THP_SEND) { transmitter.setType(THP); transmitter.setChannelTHP(1); transmitter.setBatteryTHP( battvotage); if (bme_present) { transmitter.setTemperatureTHP(bme_temp); transmitter.setHumidityTHP(bme_hum); transmitter.setPressureTHP(bme_pres * 0.75); // перевод Pa в mmHg } else { transmitter.setErrorTHP(); } transmitter.SendPacket(); } #ifdef DEVICE_LOG Serial.println(); Serial.print(millis()); Serial.println("ms"); Serial.println(); #endif //Команда на отключение питания digitalWrite(DONE_PIN, HIGH); } ///////////////////////////////////////////////////////////////////////////////////////////////// void loop(){} ///////////////////////////////////////////////////////////////////////////////////////////////// int Vbg() { ADMUX = (1<<REFS0)|(0<<REFS1)|(1<<MUX3)|(1<<MUX2)|(1<<MUX1)|(0<<MUX0); long buffersamp=0; for (int n=0x0; n<=0xff; n++ ) { ADCSRA = 0xc7; while (bit_is_set(ADCSRA,ADSC)); buffersamp += ADC; } buffersamp >>=4; //16368 full scale 14bit ADCSRA &= ~(1 << ADEN); // отключаем АЦП return buffersamp; } Вот код программы. Пробовал по разному и от 5в запитывал и всю систему от 3,3 в. Причем голая ардуинка с таймером работает в нормальном режиме некоторое время, но потом все равно слетает и начинает питать мк постоянно( Причем это происходит всегда через разный промежуток времени.
  7. Да код вроде понятный, одна команда, после передачи... #endif //Команда на отключение питания digitalWrite(DONE_PIN, HIGH);
  8. Всем привет. Собрал схему с таймером на TPL5110. Должна работать на подачу питания на МК каждые 43 сек. С одним МК без подключенных передатчика и датчика так и происходит. МК каждые 43 секунды включается и передает сигнал, но стоит только к схеме подключить хотя бы датчик и питание подается постоянно, хотя сигнал продолжает посылаться с периодичностью 43 сек. Что не так в работе таймера?
  9. Всем спасибо. Аккумуляторы Liitokala HG2 18650 3000 мАч. Сборка сейчас осталась на даче, но похоже, что один и тот же. Если в выходные поеду уточню. Режим заряда ставлю на плате 22 в и ток заряда 2а, В последний раз заряжал 3 амперами (хотелось побыстрее , один аккум у шурика)
  10. Всем знатокам вопрос. Перевел шурик 21 в на литий. BMS 5S. После нескольких зарядов-разрядов один из пяти аккумуляторов разрядился в ноль. Заменил все аккумуляторы на новые , но оставил ту же плату BMS и снова такая же хрень. разрядился аккумулятор поставил на зарядку - на базе xl4015 - аккумулятор зарядился - амперы упали в ноль - вставляю в шурик не крутит(. Разбираю аккум и снова та же фигня один из пяти аккумов в ноль((( Я так думаю это проблема одной конкретной bms? BMS С али НА 60 АМПЕР. Что скажете?
  11. спасибо за советы все приму к сведению)) Торопиться с ремонтом нет надобности у отца уже давно другой на 5кВт работает да и летний сезон закончился) Завтра на Али закажу конденсаторы... По поводу постоянного писка.... На прошлые выходные на другой даче отключили электричество и пришлось подключить к машине подобный на 1кВт, похоже я переборщил с нагрузкой и он начал так же противно пищать. Осмотр выявил что один из предохранителей подплавил контакты (там их два и они на торцевой панели в открытом доступе на 40А) закоротил куском провода и нормально проработал 5,5 часов.
  12. Отец отдал сказал "не работает". При включении постоянный писк зумера
  13. Спасибо. Значит к замене все 12 конденсаторов? Фирменные это какие?
  14. Всем доброго ..... С вашего позволения вклинюсь в данную тему и задам пару вопросов. Преобразователь на 2000 Вт использовался на даче при отключении напряжения на холодильник, люстру, телевизор... При вскрытии показал вот такую картину. три (как я думаю) конденсатора приказали долго жить. Вопрос причина такого , что могло еще сгореть и заменять на тот же номинал? 2200 мкф 16в?
  15. Плюнул я на эти конденсаторы. Надыбал трансформатор от микроволновки, заказал с АЛИ плату управления. Осталось перемотать трансформатор и собрать агрегат))) Один вопрос по переделке транса. Высверливать обмотку? или разрезать трансформатор и потом собрать?
×
×
  • Создать...