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

Вход На Порт Мк И Земля И Питание


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

Подскажите пожалуйста как реализовать такое:Есть устройство. В нем Микроконтроллер.Из устройства или в устройство есть один спец провод который можно прицепить либо к питанию (например +12) либо к землеИ вот на порту нужно иметь 1 если есть на проводе или питание или земля, либо 0 если они отсутствуют.Сам я в протеусе накидал такой вариант:

post-171021-0-61242600-1401218778_thumb.jpg

Но что-то подозреваю что это не правильно. Ибо в качестве эксперимента вместо порта МК брал светодиод. И когда там, где +5в сейчас, я подавал +3 в оба места и все работало, но поменял на +5 и эта схема перестала работать. (Т.н. при выключенных обоих выключателях светодиод горел)В обще я думал что на эмиттер транзистора будет +5v (или vdd) а на провод +12 и сделать на резисторах и стабилитроне делитель на 5в.

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

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

Собственно вопрос как одним проводом можно контролировать на одном порту МК, в зависимости от того куда его(провод) подключат, либо наличие земли, либо наличие питания?

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

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

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

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

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

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

Попробую в двух словах: нужно отловить факт изменения входящего сигнала, притом что его начальное состояние неизвестно (0 или 1). Так?

Изменено пользователем Dr. West

"Я не знаю какой там коэффициент, я просто паять умею. "

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

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

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

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

0 или 1 это в МК. Да, это нужно отловить. Но самое главное, что 1 должен появится в МК если на проводе будет либо земля, либо питание +12.

Т.е. взяли этот самый проводок из устройства и коснулись им земли, в МК на порту появилась 1. Потом отсоединили от земли, в МК на порту стало 0. Затем коснулись этим проводом до питания +12(относительно той самой земли) и в МК на порту стало снова 1.

Вот файл протеуса:

1.zip

Один из выключателей(любой) замыкаем - загорается светодиод.

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

...как одним проводом можно контролировать...

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

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

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

Ну это я образно. У меня в схеме тоже не один провод, но в итоге один идет на ногу МК, а вторым как раз контролируем(анализируем) подключен ли он к земле или к питанию или вообще никуда не подключен....

Ведь как то это в протеусе (файл выше) заработало.... вот я и подумал, что так можно сделать.

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

Ну в протеусе много чего может работать не так как в железе. А в данном случае на входе МК в исходном состоянии без наличия контролируемого сигнала уже будет либо "0" либо "1", т.е. состояние без сигнала совпадает с одним из контролируемых сигналов. Тут тогда уж использовать 2 порта МК один для контроля "0" другой для "1", развязать их через диоды и уже им контролировать сигнал, а нужную реакцию сделать программно.

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

Использовать АЦП или компаратор МК, на вход порта вешаем делитель, чтобы в отсутствие "нуля" или "питания" было 2,5В. Таким образом отслеживаем три состояния. Это если устройство на МК самопальное.

Ну или так как-то:

post-163091-0-24164100-1401249295_thumb.jpg

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

КЭС, если вход в воздухе на линии МК будет чуть больше 1В (в верхней схеме, нижнюю не смотрел). Лучше АЦП.

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

На щуп подаем + или -. На выходе +5В. В противном случае на выходе 0В-земля (общий).

Как-то так.

post-127757-0-41141400-1401261200_thumb.jpg

- А совесть в курсе? - А совесть в доле! :-D

Эксперт — это человек, который совершил все возможные ошибки в некотором узком поле.

Все грамматические ошибки являются авторским стилем изложения материала.

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

Предлагаю такой вариант:

post-163091-0-52729100-1401263096_thumb.jpg

ПС. Диоды и транзисторы- это оптроны. Просто так проще понять задуманное.

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

Можно и так

post-127757-0-93999800-1401263931_thumb.jpg

- А совесть в курсе? - А совесть в доле! :-D

Эксперт — это человек, который совершил все возможные ошибки в некотором узком поле.

Все грамматические ошибки являются авторским стилем изложения материала.

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

Спасибо всем ответившим. Я остановился на варианте Rhime из #17

Минимум деталей и более менее понятно. У КЭС'а еще меньше деталей, но я там не разобрался.

Но я не могу заставить работать схему:

post-171021-0-24351200-1401290280.jpg

если на вход подать 12-13 вольт. Т.е. землю он чувствует, з вольта на вход тоже, но если больше, то нет.

Вот файл протеуса: 1.zip

R3 - 3k В схеме на рисунке не правильно и в файле протеуса тоже. Но суть этого не меняет, я и с 3k пробовал.

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

...кондуктор, нажми на тормоза!

Предыдущая схема достаточно хороша. Вот один из вариантов с встречно - параллельным включением светодиодов, работает четко. По тому же принципу делали индикацию в Простом и Доступном БП.

Бонусом гальваническая развязка.

post-166497-0-95702200-1401290071_thumb.gif

"Я не знаю какой там коэффициент, я просто паять умею. "

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

И ее тоже нет в протеусе :(

Не мог бы кто нибудь сделать проект в протеусе схемы предложенной КЭС и Dr.West

Я еще не понял что это за D1, D2 в #20.... Это же не диоды и не стабилитроны, так ведь?

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

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

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

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

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

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

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

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

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

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

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

    • Релюхи не причём. При неисправности релюх симптомы были бы другие. И ИБП даже не клацает когда переходит в  "аварию".   Да. Аккум новый. Более того - 2 новых пробовал. И без АКБ тоже. Не влияет. Да мелкие особо не вздуваются ж. Хотя С21 под подозрением..   Спасибо. Буду иметь ввиду.
    • #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 В.
×
×
  • Создать...