Нужно отслеживать наличие 220 вольт на линии

bwn
Offline
Зарегистрирован: 25.08.2014

pix_l пишет:

ладно, попробую, хотя все равно не врубаюсь

Вы нарисуйте, как поняли, а я скажу правильно или нет.

pix_l
Offline
Зарегистрирован: 19.02.2017

да я понял, как вы говорите, но я не пойму другое, если изначально можно использовать подтягивающий резистор (соответственно, не требуя подачи дополнительного питания на 4-й контакт), почему при использовании внешнего реза требуется питание?

bwn
Offline
Зарегистрирован: 25.08.2014

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

pix_l
Offline
Зарегистрирован: 19.02.2017

странно все это. собрал, запустил. При выключенном 220 - в мониторе показывает OFF. Включаю 220, начинает моргать ON, OFF. Закрываю монитор, открываю заново - все время ON. Так как же можно протестить, если код не меняется, а значения в мониторе пляшут сами как захотят?

bwn
Offline
Зарегистрирован: 25.08.2014

Код в студию, подозреваю вы синусоиду ловите. Если никаких программных таймеров не задействовано, параллельно транзистору RC цепочку из конденсатора 0,5-1мКф и резистора Ом на десять.

pix_l
Offline
Зарегистрирован: 19.02.2017

да код то из этой же темы

  int ac_status = 0;
  int ac_timer = 0;
  int r1pin220 = 9;
  
void setup() {
  // put your setup code here, to run once:
  pinMode(r1pin220, INPUT);           // назначить выводу порт ввода
  digitalWrite(r1pin220, HIGH);       // включить подтягивающий резистор
  Serial.begin(9600);
}

uint8_t acCheck() {
  if(!digitalRead(r1pin220)) {
    ac_timer = millis();
    if(ac_status != 1) {
      // AC ON
      ac_status = 1; 
      return 1;
    }
  }

  if(ac_status && millis() - ac_timer > 10000) {
    // AC OFF
    ac_status = 0;
    ac_timer = 0;
    return 1;
  }
  return 0;
}


void loop() {
acCheck();
if (ac_status != 1) {
Serial.println("Off");
} else {
Serial.println("On");
}
}

 

bwn
Offline
Зарегистрирован: 25.08.2014

Вроде нормально все, чет не соображу. В 22 строке, 10 секунд, явный перебор. Оставьте 0,5-1 секунду.
В ифах я запутался, а проверить не на чем. Поставьте сериалы прямо внутрь условий после 17 и 25 строки и посмотрите как логика отрабатывается.

pix_l
Offline
Зарегистрирован: 19.02.2017

в оригинальном коде вообще 20000 стоит - сам думал, зачем столько. сейчас попробую.

bwn
Offline
Зарегистрирован: 25.08.2014

Можно просто руками проверить, выставить задержку на 5 секунд, а вместо оптрона (транзистора) включить кнопку на землю, ею импульсы имитировать.

pix_l
Offline
Зарегистрирован: 19.02.2017

че то перестало работать с сериалами внутри функции

pix_l
Offline
Зарегистрирован: 19.02.2017

код вернул обратно и уменьшил до 1 секунды ожидание. в итоге, запускаю с выключенным 220 - OFF, включаю 220 - ON, выключаю 220 - OFF - так несколько раз, и в некоторый раз (на 6-й наверное) начинается мешанина, хотя при выключении - строго OFF. Я вот думаю, может у этого монитора есть напряги с глубиной? Т.е. может буфер переполняется и начинается свистопляска? Ведь если я закрываю монитор и открываю его заново - все начинает работать как надо.

bwn
Offline
Зарегистрирован: 25.08.2014

Разобрал макет, попробовал, таже хня (с кнопкой).

UPD: Дело было не в бабине, либо автор прикололся, либо он был в кабине. Срок жизни скетча 32 секунды, а дальше опа. Во второй строке, не int, а unsigned long. Потом проверяй, все должно работать.
 

pix_l
Offline
Зарегистрирован: 19.02.2017

а как вы определили что "Срок жизни скетча 32 секунды,"

bwn
Offline
Зарегистрирован: 25.08.2014

В int помещается 32768 положительных значений.

pix_l
Offline
Зарегистрирован: 19.02.2017

ясно, значит тупо в лонге и вся фишка? но ведь его величина то же конечна. там опять начнутся косяки?

bwn
Offline
Зарегистрирован: 25.08.2014

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

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

pix_l пишет:

ясно, значит тупо в лонге и вся фишка? но ведь его величина то же конечна. там опять начнутся косяки?

если в конце лонга начать его умножать на -1, то он не окончится никогда

pix_l
Offline
Зарегистрирован: 19.02.2017

bwn пишет:

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

так?

unsigned long ac_timer = 0;

Я вот подумал, а может просто переменную через некоторый промежуток обнулять?

bwn
Offline
Зарегистрирован: 25.08.2014

pix_l пишет:

unsigned long ac_timer = 0;

Я вот подумал, а может просто переменную через некоторый промежуток обнулять?

Истинно.
Как вы видите обнуление millis, минуя reset?

pix_l
Offline
Зарегистрирован: 19.02.2017

да, что то я не додумал (как обычно). если я так посчитал, то unsigned long будет заполняться в течении 8 лет. За этот период и свет отрубится 500 раз и еще что нить произойдет. Кстати, а если добавить делей - работоспособность кода не пострадает? Зачем мне куча обновлений в секунду - раз в секунду достаточно.

pix_l
Offline
Зарегистрирован: 19.02.2017

не так посчитал :-(

bwn
Offline
Зарегистрирован: 25.08.2014

Миллиса хватает примерно на 49-50 суток.
Обновления у вас не раз в секунду, а каждый проход loop (это гораздо чаще). Секунда в коде, это задержка "нечуствительности" (она должна быть больше периода синусоиды), если за этот период эл-во пропадет и восстановится, код этого не заметит.
Чтобы не долбило на дисплей, сделайте "защелку", если значение не изменилось, ничего не выводим.
 

pix_l
Offline
Зарегистрирован: 19.02.2017

bwn пишет:

Миллиса хватает примерно на 49-50 суток.

во второй раз я так и высчитал 49 суток. Мало :-(

bwn пишет:

Чтобы не долбило на дисплей, сделайте "защелку", если значение не изменилось, ничего не выводим.

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

bwn
Offline
Зарегистрирован: 25.08.2014

Как раз этот практически ничего не замедляет. Да и наличие напряжения вы ведь наверно не на мониторе смотреть будете. А отработка лишнего IF-а по скорости будет эквивалентна лишней записи значения в регистр. Все остальные задумки выводить в отдельные функции и вызывать с требуемыми интервалами.

pix_l
Offline
Зарегистрирован: 19.02.2017

ясно, еще объясните, плиз вашу запись:

bwn пишет:

Не начнутся, мы работаем с переменными одинаковой "емкости".

Если мы все поняли что лонг заполнится через 49 суток, как же перейти рубеж что бы не начались траблы?

bwn
Offline
Зарегистрирован: 25.08.2014

Поищите по форуму, на предмет "переполнение миллис". Этот холивар здесь мульен раз поднимался. Уважаемый Клапауций даже демонстрационный скетч выкладывал.

pix_l
Offline
Зарегистрирован: 19.02.2017

Сейчас задумался про подтягивающие резисторы. По ТЗ мне нужно будет задействовать 16 релюшек, на каждую по такой схеме. Но на ардуинке нет достаточного количества пинов для подключения схем, значит надо подключать какую то плату расширения, а на ней, скорее всего, этих подтягивающих рещисторов уже не будет, так?

bwn
Offline
Зарегистрирован: 25.08.2014

Atmega 1280, 2560, на них будет. Только не забывайте, макет со светодиодом и реальная силовая схема, это две большие разницы. Лично я предусматриваю место под них всегда, жрать не просят, а впаять или нет, потом решим.

pix_l
Offline
Зарегистрирован: 19.02.2017

У меня уно r3, светодиоды без надобности.

bwn
Offline
Зарегистрирован: 25.08.2014

Может я вас не понял, но 16 модулей контроля и 16 реле, это 32 вывода. В 168/328 никак не помещаются.

pix_l
Offline
Зарегистрирован: 19.02.2017

Так я и говорю нужна какая то плата расширения

bwn
Offline
Зарегистрирован: 25.08.2014

Регистры 595, шинные расширители PCF8574, мультиплексоры-демультиплексоры и всякое другое. Только боюсь, вам они пока не по зубам.

pix_l
Offline
Зарегистрирован: 19.02.2017

NANO I/O Expansion датчик Щит Модуль для Arduino UNO R3 Nano V3.0
http://s.aliexpress.com/IJFveMBr
(from AliExpress Android)
А это не подойдет?

bwn
Offline
Зарегистрирован: 25.08.2014

Нет, он просто рядом с каждым пином добавил землю и питание для удобства подключения датчиков. Количество пинов осталось неизменным. Честно говоря, не считая расширителей I2C, я вроде больше никаких и не встречал. Может из сообщества кто то присоветует.

pix_l
Offline
Зарегистрирован: 19.02.2017

Хотелось бы. Ну а то, что вы перечислили в посте 132 очень трудно реализовать спмостоятельно?

bwn
Offline
Зарегистрирован: 25.08.2014

Для начала вам придется освоить ЛУТ и приобрести знания по электронике (судя по вопросам о подключении резистора, вы от этого весьма далеки). Потом программирование. Наиболее безбольно, можете купить I2C преобразователь для LCD и побаловаться с его входами-выходами (их восемь). Для отслеживания оптронов он вполне подойдет.

UPD: Доступных на этой плате семь, восьмой на управление подсветкой (только подпаиваться).

pix_l
Offline
Зарегистрирован: 19.02.2017

Как раз вчера заказал и lcd и преобразователь для него. Знаний немного, что есть то есть. Век живи век учись.

bwn
Offline
Зарегистрирован: 25.08.2014

В принципе, если сумеете через нее, то есть подобные, но на 16 входов-выходов (в виде мелкосхемы). В итоге два корпуса дадут вам искомых 32 вывода, забрав от МК два или три.

pix_l
Offline
Зарегистрирован: 19.02.2017

bwn пишет:

Регистры 595...

речь об этом?

bwn
Offline
Зарегистрирован: 25.08.2014

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

pix_l
Offline
Зарегистрирован: 19.02.2017

bwn пишет:

Да, они дешовые, но могут работать только как выход. 

ну если мне нужно чисто контролировать состояние 220 с реле и сами реле - они подходят? в принципе по статье описано интересно и не сложно. стоимость действительно копеечная, а если для моих нужд подходят, так мне большего и не надо. Заказываю.

bwn
Offline
Зарегистрирован: 25.08.2014

Реле разные нужны, реле разные важны. Вот у Колиного дяди, две жены и обе ... Ой, это не о том.))))
Напрямую реле не включит, китайские модули с обвязкой, да. Смотрите максимальный ток с пина и корпуса в даташите. Принимать что то извне с них нельзя, для этого вроде 165 регистры (не пользовал, не уверен).

pix_l
Offline
Зарегистрирован: 19.02.2017

вот такие модули реле

bwn
Offline
Зарегистрирован: 25.08.2014

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

pix_l
Offline
Зарегистрирован: 19.02.2017

bwn пишет:

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

Куда?

bwn
Offline
Зарегистрирован: 25.08.2014

pix_l пишет:

bwn пишет:

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

Куда?

Да вы сперва токи померяйте, скорее всего и так пойдет.

pix_l
Offline
Зарегистрирован: 19.02.2017

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

bwn
Offline
Зарегистрирован: 25.08.2014

Для эмуляции подключите светики и ориентируйтесь по ним.
Для рисовалки я использую DipTrace, там и новые элементы легко создавать и библиотек навалом.

Пока реле не приедут и не поэкспериментируете с реальными нагрузками на макете, схему не торопитесь рисовать. Бывают нюансы.

pix_l
Offline
Зарегистрирован: 19.02.2017

bwn пишет:

Для эмуляции подключите светики и ориентируйтесь по ним.
Для рисовалки я использую DipTrace, там и новые элементы легко создавать и библиотек навалом.

Пока реле не приедут и не поэкспериментируете с реальными нагрузками на макете, схему не торопитесь рисовать. Бывают нюансы.

что за светики? светодиоды что ли? Реле у меня есть в наличии (модуль на 4 реле). Я уже с ним экспериментировал и со смартфона включал/выключал, но мне нужно знать текущее состояние реле, поэтому и подсел на эту тему.

PS. DipTrace, походу, навороченая тема, судя по 7 гигам на торренте

bwn
Offline
Зарегистрирован: 25.08.2014

7 гигов? Наверно библиотек наворотили, у меня 1,38Г установочная папка весит.