Как детектировать контроллером ток а не напряжение или детектор наличия 220В

osetroff
Offline
Зарегистрирован: 27.08.2014

Понадобилось ставить сушилку, управляемую контроллером, на паузу автоматически при пропадании в сети 220В.

Спаял детектор 220В отсюда, работает.

Т.е. диод горит, если есть 220В в проводке (снаружи на провод 220В намотан тонкий провод идущий к базе первого транзистора).

Теперь, хочется вместо горящего диода получать 1 и 0 на пине ардуино.

Пробовал подавать 5В на аналоговый пин и с этого пина через резисторы разного номинала на коллектор транзистора и через нег на землю.

Токи текут большие при наличии/пропадании 220В, а напряжение падает на десятые вольта :( Так что трудно различать значения из analogRead.

Т.е. я не соображу, как ток преобразовать в напряжение.

Подскажите, пожалуйста, что почитать или как сделать?

 

osetroff
Offline
Зарегистрирован: 27.08.2014

Так, сделал маленький шаг : резистор оставил, диод убрал (на рисунке он неправилно по полярности нарисован). Резистор пусть будет шунт. Теперь как измерить с помощью ардуино падение напряжения на этом резисторе?

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

osetroff пишет:

Так, сделал маленький шаг : резистор оставил, диод убрал (на рисунке он неправилно по полярности нарисован). Резистор пусть будет шунт. Теперь как измерить с помощью ардуино падение напряжения на этом резисторе?

давал же правильное направление в хугл - нахрена городить веловипеды?

osetroff
Offline
Зарегистрирован: 27.08.2014

Мне нужно измерить с помощью ардуино падение напряжения на резисторе.

Через этот резистор течет либо 1,2mA либо практически 0.

Туплю. Уже и оптрон пробовал, не выходит.

Т.е. надо на ардуино как-то получить два разных сигнала: один когда ток течет, второй, когда ток около 0.

Как?

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

osetroff пишет:

Т.е. надо на ардуино как-то получить два разных сигнала: один когда ток течет, второй, когда ток около 0.

Как?

ну, а я тебе что даю? https://www.google.com/search?q=arduino+датчик+тока

Araris
Offline
Зарегистрирован: 09.11.2012

Для определения наличия&&отсутствия напряжения в сети достаточно 

подключить к сети неонку||светодиод (схемы подключения просты и легко находимы),

прицепить к нему||к ней фоторезистор, достаточно куска непрозрачной термоусадки, 

завести выходы терморезистора на землю и аналоговый вход Ардуино (подтянутый||через делитель от пяти Вольт)

и читать состояние аналогового входа.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Правильно ! Строим опртрон! Или берём готовый. Или ставим реле.

Gres
Gres аватар
Offline
Зарегистрирован: 26.03.2013

Если Вы о схеме детектора на 3 транзисторах из первого поста,то там все просто.Батарею питания от 3 до 5 вольт, выбрасываете светодиод, тоесть вместо него перемычка. К Дуне цепляете из точки соединения этого резистора 220 Ом и коллектора транзистора. Резистор можно увеличить Ом до 500 примерно , чтоб снизить ток коллектора. Когда транзистор откроется, тоесть есть напряжение, в этой точке будет практически ноль, когда за кроется, напряжение питания. Читайте Дуней состояние порта, если 1 есть напряжение, если 0, то 220 вольт нет. Минус Дуни естественно должен быть соединён с минусом детектора, записать все можно от 5 вольт Дуни. Только позаботтесь о хорошей изоляции схемы от сетевых 220 вольт.

osetroff
Offline
Зарегистрирован: 27.08.2014

Дык, и я так думал!

Повторил еще раз то, что вы описали, 500K, питание 5V от arduino, транзисторы c945.

Есть 220В, ток, который течет на землю 2.5ma, analogread раз в 300ms:

 





69
68
89
1023
1023
1023
1023
1023
1023
1023
68
68
1019
1023
1023
1023
1023
1023
1023
68
68

 

Нет 220В, ток плавает 0-0.3ma (рука рядом и тп наводки):



814
1023
1023
1023
1023
1023
1023
1023
1023
1023
991
1011
1023
1023
1023
1023
1023
1023
1023
1023
1023
913
1023
1023
1023
1023
1023
1023
1023
1023
1023
1023
865
1023
1023

 

Что это значит? Пульсации? Осцилла у меня нет.

Т.е. ток-то течет постоянный, а вот напруга скачет.

С оптроном тоже пока неудачно: нужно подобрать резистор, чтобы он открывал транзистор при токе 2mA. 

Gres
Gres аватар
Offline
Зарегистрирован: 26.03.2013

Напряжение переменное, следовательно частота 50 герц, тоесть полярность меняется переходя через ноль, мерцание светодиода Вы просто не видите. Не нужно Вам аналоговое напряжение считывать, есть ТТЛ уровни цифровые. Но, есть одно НО, переходы через ноль! Придётся усреднять считанные значения, тоесть время срабатывания устройства снижается. Тоесть, например Вам нужно считывать значение в переменную суммируя его в цикле, переход через ноль 50 раз в секунду. Скажем считываете и суммируете цифровое значение в течении четверти секунды, если оно не равно нулю, значить есть напруга, если нет, её нет. Если хотите измерять ток, то для переменки нужно ставить трансформатор тока, для постоянки - шунт, и измерять на них все также напряжения.

osetroff
Offline
Зарегистрирован: 27.08.2014

Благодарю. Попробую на прерывание по изменению сигнала с внешнего источника повесить. Т.е. , если надо узнать наличие 220В, тогда подключаем прерывание, через сеунду смотрим, сколько натикало, отключаем прерывание. Если натикало - есть 220.

 

Gres
Gres аватар
Offline
Зарегистрирован: 26.03.2013

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

osetroff
Offline
Зарегистрирован: 27.08.2014

Вот что получилось.

скетч









void setup(){
  sb(115200);spln("start");
}
volatile uint c=0;
void pc(){c++;}
void loop(){ 
 c=0;
 attachInterrupt(0,pc,LOW);
 dms(50);
 detachInterrupt(0);
 spln(c);
 dms(1000);
}

Потребляет макс 180ua.

Результат:

0 - чисто, >=2000 если есть 220Вольт, >=1500 если щуп взял человек.

p.s. чтобы еще чуть уменьшить потребление:

- вместо 47k поставил 100k ;

- добавил 10k после входа 5В.

Результат : >4000 - есть 220В (arduino pro mini 16Mhz 5B).

 

Самая большая прелесть, что датчик бесконтактный.

В SMD варианте он выглядел бы еще красивей :)

Всем большое спасибо!