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

Защита входа микроконтроллера от помех


tropican

Рекомендуемые сообщения

Добрый день. Имеется устройство на pic  контроллере 16f876   у которого один из входов работает на достаточно весьма удаленный концевой выключатель. 

Не подскажет ли кто реально эффективную и простую схему защиты входа от наводок? Скорость изменения полезного сигнала (срабатывания) очень низкая, допустимо до 1-2  секунд,  но из-за протяженности линии  наводки могут иметь достаточно большой ток и полагаю, напряжение, в том числе конечно и отрицательной полярности, поэтому навесить электролит в уме имею, но может есть и реально ограничивающие напряжение решения.

Сейчас защита решена так, см рисунок, но это не работает. Полагаю из-за того что отрицательные выбросы напряжения где-то до  - 6 вольт могут попадать на вход процессора. Беднягу плющит. Помогите советом. (К развязке оптроном, реле, прокладывать тросик и ставить конечник рядом, итд морально не готовы... ) Спасибо.

 

 

цццццц000000000.jpg

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

а если реле поставит рядом с контроллером? 

По пятницам мы с коллегой мучаем старые платы (ненужные или не рабочие). Они либо горят либо взрываются.

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Некуда... места там достаточно мало... и удорожать массовое изделие не хочется.

У меня есть идейка применить супрессоры на меньшее напряжение,  в качестве которого применить двунаправленный светодиод!  Но какого цвета ?  Если в прямом направлении будет гореть красный, то на входе пика будет порядка 1 вольта,  воспримет как ноль. Если зеленый - то 1,9 что ли и тогда уже даже не знаю. Синий даст вольта 4 и однозначно единица, но двунаправленные с синим уже не достать :). Мысли вслух.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

значит нужен экранированый кабель и то не 100% вариант.

По пятницам мы с коллегой мучаем старые платы (ненужные или не рабочие). Они либо горят либо взрываются.

Ссылка на комментарий
Поделиться на другие сайты

Там... проблема в том,  что поскольку кабель проходит в сыром месте да еще с химией, на висящем в воздухе "сухом" проводе может появиться что угодно, вплоть до нескольких вольт постоянного отрицательного напряжения.  

Пока боремся экранированием и герметизацией, но вообще нужно реальное решение чтобы на входе пик контроллера не могло появляться отрицательных напряжений, напряжений больше +5 вольт итд.   

Как видно, просто навешивать кондёры, даже электролиты, бесполезно. Их благополучно перезарядит в обратном направлении.

Ссылка на комментарий
Поделиться на другие сайты

Ещё раз: стабилитрон! В отличие от супрессоров, на нём напряжение не может быть более напряжения стабилизации (5,6В, что для PIC безопасно), а в обратную сторону он работает как диод, т.е. напряжение на нём не может быть более -0,7В (что тоже безопасно). А конденсатор спасёт от наводок переменного тока. И резистор подтяжки - чем меньше, тем лучше, наводкам труднее будет перевесить его потенциал. Проверено неоднократно в условиях промышленного предприятия.

PS В совсем тяжёлых случаях используется обычное электромагнитное реле с обмоткой на 24 вольты, ставится рядом с МК. Концевик включает его, а уже контакты реле - дают сигнал МК. Уж если реле даст ложные срабатывания - то нужно думать о другом типе датчика.

Изменено пользователем oldmao
Ссылка на комментарий
Поделиться на другие сайты

19 минут назад, tropican сказал:

Там... проблема в том,  что поскольку кабель проходит в сыром месте да еще с химией, на висящем в воздухе "сухом" проводе может появиться что угодно, вплоть до нескольких вольт постоянного отрицательного напряжения.  

Провода к датчику должны быть витой паров.

Ссылка на комментарий
Поделиться на другие сайты

Ну... оптрон наверное еще лучше... Попробую стабилитрон,  вот только раз уж есть выбор, что заказывать,  может на 4,7 вольта с мощностью рассеяния до 1,3 ватт? 

BZV85-C4V7.113

Изменено пользователем tropican
поправка
Ссылка на комментарий
Поделиться на другие сайты

Витая пара не всегда возможна в промышленности. Например при модернизации старого оборудования приходится пользоваться уже проложенными кабелями. Причём сигнальные могут идти рядом с силовыми. Релейная развязка помогает в самых тяжёлых случаях (сигнальный кабель рядом с кабелем 10 кВ например).

Ссылка на комментарий
Поделиться на другие сайты

Привет.

Мысли  в слух.

Концевики обычно могут работать на замыкание и размыкание. Если основное время концевик разомкнут и в это время наводки, то может сделать вариант прошивки и схемы когда концевик нормально замкнут.  На схему когда нормально замкнут концевик на землю наводок не будет или меньше.

Или вообще заменить концевик с контактами на бесконтактный (емкостной или индуктивный) с  выходом  4...20 мА более устойчивым к помехам.

 

Изменено пользователем Сергей_Харьков
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Релюхи не причём. При неисправности релюх симптомы были бы другие. И ИБП даже не клацает когда переходит в  "аварию".   Да. Аккум новый. Более того - 2 новых пробовал. И без АКБ тоже. Не влияет.
    • #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 в. Причем голая ардуинка с таймером работает в нормальном режиме некоторое время, но потом все равно слетает и начинает питать мк постоянно( Причем это происходит всегда через разный промежуток времени.
    • На фото может быть название , характеристики и т.д. И по этому фото я смогу выбрать такой же в инете.. самому мне не собрать..
    • А что даст фотка? Тот же щуп, только чуть крупнее и с проводами питания.
    • Для меня наверное лучше купить готовый.. цель повысить чувствительность до 1 mV.. Наверное на Авто стоит покупать , мне бы фотку какую нить..такого активного щупа..))
    • Так на схемах обозначается подключение к сети 220 В.
  • Похожий контент

×
×
  • Создать...