да я понял, как вы говорите, но я не пойму другое, если изначально можно использовать подтягивающий резистор (соответственно, не требуя подачи дополнительного питания на 4-й контакт), почему при использовании внешнего реза требуется питание?
На внутреннем подтягивающем оно подано внутри чипа. В принципе можете и его использовать, как выше уже писали. Линия у вас короткая, вряд ли помех наловить получится.
странно все это. собрал, запустил. При выключенном 220 - в мониторе показывает OFF. Включаю 220, начинает моргать ON, OFF. Закрываю монитор, открываю заново - все время ON. Так как же можно протестить, если код не меняется, а значения в мониторе пляшут сами как захотят?
Код в студию, подозреваю вы синусоиду ловите. Если никаких программных таймеров не задействовано, параллельно транзистору RC цепочку из конденсатора 0,5-1мКф и резистора Ом на десять.
Вроде нормально все, чет не соображу. В 22 строке, 10 секунд, явный перебор. Оставьте 0,5-1 секунду.
В ифах я запутался, а проверить не на чем. Поставьте сериалы прямо внутрь условий после 17 и 25 строки и посмотрите как логика отрабатывается.
код вернул обратно и уменьшил до 1 секунды ожидание. в итоге, запускаю с выключенным 220 - OFF, включаю 220 - ON, выключаю 220 - OFF - так несколько раз, и в некоторый раз (на 6-й наверное) начинается мешанина, хотя при выключении - строго OFF. Я вот думаю, может у этого монитора есть напряги с глубиной? Т.е. может буфер переполняется и начинается свистопляска? Ведь если я закрываю монитор и открываю его заново - все начинает работать как надо.
UPD: Дело было не в бабине, либо автор прикололся, либо он был в кабине. Срок жизни скетча 32 секунды, а дальше опа. Во второй строке, не int, а unsigned long. Потом проверяй, все должно работать.
да, что то я не додумал (как обычно). если я так посчитал, то unsigned long будет заполняться в течении 8 лет. За этот период и свет отрубится 500 раз и еще что нить произойдет. Кстати, а если добавить делей - работоспособность кода не пострадает? Зачем мне куча обновлений в секунду - раз в секунду достаточно.
Миллиса хватает примерно на 49-50 суток.
Обновления у вас не раз в секунду, а каждый проход loop (это гораздо чаще). Секунда в коде, это задержка "нечуствительности" (она должна быть больше периода синусоиды), если за этот период эл-во пропадет и восстановится, код этого не заметит.
Чтобы не долбило на дисплей, сделайте "защелку", если значение не изменилось, ничего не выводим.
Чтобы не долбило на дисплей, сделайте "защелку", если значение не изменилось, ничего не выводим.
а вот это мысль. Просто я думаю, ведь функциональность всего модуля не будет только в этом вышеприведенном коде, там и другие датчики и функции будут. Не было бы конфликтов.
Как раз этот практически ничего не замедляет. Да и наличие напряжения вы ведь наверно не на мониторе смотреть будете. А отработка лишнего IF-а по скорости будет эквивалентна лишней записи значения в регистр. Все остальные задумки выводить в отдельные функции и вызывать с требуемыми интервалами.
Поищите по форуму, на предмет "переполнение миллис". Этот холивар здесь мульен раз поднимался. Уважаемый Клапауций даже демонстрационный скетч выкладывал.
Сейчас задумался про подтягивающие резисторы. По ТЗ мне нужно будет задействовать 16 релюшек, на каждую по такой схеме. Но на ардуинке нет достаточного количества пинов для подключения схем, значит надо подключать какую то плату расширения, а на ней, скорее всего, этих подтягивающих рещисторов уже не будет, так?
Atmega 1280, 2560, на них будет. Только не забывайте, макет со светодиодом и реальная силовая схема, это две большие разницы. Лично я предусматриваю место под них всегда, жрать не просят, а впаять или нет, потом решим.
Нет, он просто рядом с каждым пином добавил землю и питание для удобства подключения датчиков. Количество пинов осталось неизменным. Честно говоря, не считая расширителей I2C, я вроде больше никаких и не встречал. Может из сообщества кто то присоветует.
Для начала вам придется освоить ЛУТ и приобрести знания по электронике (судя по вопросам о подключении резистора, вы от этого весьма далеки). Потом программирование. Наиболее безбольно, можете купить I2C преобразователь для LCD и побаловаться с его входами-выходами (их восемь). Для отслеживания оптронов он вполне подойдет.
UPD: Доступных на этой плате семь, восьмой на управление подсветкой (только подпаиваться).
В принципе, если сумеете через нее, то есть подобные, но на 16 входов-выходов (в виде мелкосхемы). В итоге два корпуса дадут вам искомых 32 вывода, забрав от МК два или три.
Да, они дешовые, но могут работать только как выход. PCF8574 дороже, но может работать в две стороны (есть проблемы при коммутации выхода). Если правильно помню, то к земле тянет нормально, а к питанию очень слаботочная.
Да, они дешовые, но могут работать только как выход.
ну если мне нужно чисто контролировать состояние 220 с реле и сами реле - они подходят? в принципе по статье описано интересно и не сложно. стоимость действительно копеечная, а если для моих нужд подходят, так мне большего и не надо. Заказываю.
Реле разные нужны, реле разные важны. Вот у Колиного дяди, две жены и обе ... Ой, это не о том.))))
Напрямую реле не включит, китайские модули с обвязкой, да. Смотрите максимальный ток с пина и корпуса в даташите. Принимать что то извне с них нельзя, для этого вроде 165 регистры (не пользовал, не уверен).
Подойдут, возможно резистор токоограничительный надо будет добавить. Их я тоже не юзал, не знаю какой ток на оптроне жрут. Проверить, прикинуть суммарный и сравнить с даташитом регистра, если вписываетесь, то можете спокойно подключать.
да я то же думаю что подойдет. жаль, что доставка долгая. ну пока ПО писать буду. кстати, очередной глупый вопрос, а в чем лучше всего рисовать схемы для переноса на платы? вчера качнул какую то муть, там какой то скудный набор элементов.
Для эмуляции подключите светики и ориентируйтесь по ним.
Для рисовалки я использую DipTrace, там и новые элементы легко создавать и библиотек навалом.
Пока реле не приедут и не поэкспериментируете с реальными нагрузками на макете, схему не торопитесь рисовать. Бывают нюансы.
что за светики? светодиоды что ли? Реле у меня есть в наличии (модуль на 4 реле). Я уже с ним экспериментировал и со смартфона включал/выключал, но мне нужно знать текущее состояние реле, поэтому и подсел на эту тему.
PS. DipTrace, походу, навороченая тема, судя по 7 гигам на торренте
ладно, попробую, хотя все равно не врубаюсь
Вы нарисуйте, как поняли, а я скажу правильно или нет.
да я понял, как вы говорите, но я не пойму другое, если изначально можно использовать подтягивающий резистор (соответственно, не требуя подачи дополнительного питания на 4-й контакт), почему при использовании внешнего реза требуется питание?
На внутреннем подтягивающем оно подано внутри чипа. В принципе можете и его использовать, как выше уже писали. Линия у вас короткая, вряд ли помех наловить получится.
странно все это. собрал, запустил. При выключенном 220 - в мониторе показывает OFF. Включаю 220, начинает моргать ON, OFF. Закрываю монитор, открываю заново - все время ON. Так как же можно протестить, если код не меняется, а значения в мониторе пляшут сами как захотят?
Код в студию, подозреваю вы синусоиду ловите. Если никаких программных таймеров не задействовано, параллельно транзистору RC цепочку из конденсатора 0,5-1мКф и резистора Ом на десять.
да код то из этой же темы
Вроде нормально все, чет не соображу. В 22 строке, 10 секунд, явный перебор. Оставьте 0,5-1 секунду.
В ифах я запутался, а проверить не на чем. Поставьте сериалы прямо внутрь условий после 17 и 25 строки и посмотрите как логика отрабатывается.
в оригинальном коде вообще 20000 стоит - сам думал, зачем столько. сейчас попробую.
Можно просто руками проверить, выставить задержку на 5 секунд, а вместо оптрона (транзистора) включить кнопку на землю, ею импульсы имитировать.
че то перестало работать с сериалами внутри функции
код вернул обратно и уменьшил до 1 секунды ожидание. в итоге, запускаю с выключенным 220 - OFF, включаю 220 - ON, выключаю 220 - OFF - так несколько раз, и в некоторый раз (на 6-й наверное) начинается мешанина, хотя при выключении - строго OFF. Я вот думаю, может у этого монитора есть напряги с глубиной? Т.е. может буфер переполняется и начинается свистопляска? Ведь если я закрываю монитор и открываю его заново - все начинает работать как надо.
Разобрал макет, попробовал, таже хня (с кнопкой).
UPD: Дело было не в бабине, либо автор прикололся, либо он был в кабине. Срок жизни скетча 32 секунды, а дальше опа. Во второй строке, не int, а unsigned long. Потом проверяй, все должно работать.
а как вы определили что "Срок жизни скетча 32 секунды,"
В int помещается 32768 положительных значений.
ясно, значит тупо в лонге и вся фишка? но ведь его величина то же конечна. там опять начнутся косяки?
Не начнутся, мы работаем с переменными одинаковой "емкости". Но запись должна быть как в скетче.
ясно, значит тупо в лонге и вся фишка? но ведь его величина то же конечна. там опять начнутся косяки?
если в конце лонга начать его умножать на -1, то он не окончится никогда
Не начнутся, мы работаем с переменными одинаковой "емкости". Но запись должна быть как в скетче.
так?
unsigned long ac_timer = 0;
Я вот подумал, а может просто переменную через некоторый промежуток обнулять?
unsigned long ac_timer = 0;
Я вот подумал, а может просто переменную через некоторый промежуток обнулять?
Истинно.
Как вы видите обнуление millis, минуя reset?
да, что то я не додумал (как обычно). если я так посчитал, то unsigned long будет заполняться в течении 8 лет. За этот период и свет отрубится 500 раз и еще что нить произойдет. Кстати, а если добавить делей - работоспособность кода не пострадает? Зачем мне куча обновлений в секунду - раз в секунду достаточно.
не так посчитал :-(
Миллиса хватает примерно на 49-50 суток.
Обновления у вас не раз в секунду, а каждый проход loop (это гораздо чаще). Секунда в коде, это задержка "нечуствительности" (она должна быть больше периода синусоиды), если за этот период эл-во пропадет и восстановится, код этого не заметит.
Чтобы не долбило на дисплей, сделайте "защелку", если значение не изменилось, ничего не выводим.
Миллиса хватает примерно на 49-50 суток.
во второй раз я так и высчитал 49 суток. Мало :-(
Чтобы не долбило на дисплей, сделайте "защелку", если значение не изменилось, ничего не выводим.
а вот это мысль. Просто я думаю, ведь функциональность всего модуля не будет только в этом вышеприведенном коде, там и другие датчики и функции будут. Не было бы конфликтов.
Как раз этот практически ничего не замедляет. Да и наличие напряжения вы ведь наверно не на мониторе смотреть будете. А отработка лишнего IF-а по скорости будет эквивалентна лишней записи значения в регистр. Все остальные задумки выводить в отдельные функции и вызывать с требуемыми интервалами.
ясно, еще объясните, плиз вашу запись:
Не начнутся, мы работаем с переменными одинаковой "емкости".
Если мы все поняли что лонг заполнится через 49 суток, как же перейти рубеж что бы не начались траблы?
Поищите по форуму, на предмет "переполнение миллис". Этот холивар здесь мульен раз поднимался. Уважаемый Клапауций даже демонстрационный скетч выкладывал.
Сейчас задумался про подтягивающие резисторы. По ТЗ мне нужно будет задействовать 16 релюшек, на каждую по такой схеме. Но на ардуинке нет достаточного количества пинов для подключения схем, значит надо подключать какую то плату расширения, а на ней, скорее всего, этих подтягивающих рещисторов уже не будет, так?
Atmega 1280, 2560, на них будет. Только не забывайте, макет со светодиодом и реальная силовая схема, это две большие разницы. Лично я предусматриваю место под них всегда, жрать не просят, а впаять или нет, потом решим.
У меня уно r3, светодиоды без надобности.
Может я вас не понял, но 16 модулей контроля и 16 реле, это 32 вывода. В 168/328 никак не помещаются.
Так я и говорю нужна какая то плата расширения
Регистры 595, шинные расширители PCF8574, мультиплексоры-демультиплексоры и всякое другое. Только боюсь, вам они пока не по зубам.
NANO I/O Expansion датчик Щит Модуль для Arduino UNO R3 Nano V3.0
http://s.aliexpress.com/IJFveMBr
(from AliExpress Android)
А это не подойдет?
Нет, он просто рядом с каждым пином добавил землю и питание для удобства подключения датчиков. Количество пинов осталось неизменным. Честно говоря, не считая расширителей I2C, я вроде больше никаких и не встречал. Может из сообщества кто то присоветует.
Хотелось бы. Ну а то, что вы перечислили в посте 132 очень трудно реализовать спмостоятельно?
Для начала вам придется освоить ЛУТ и приобрести знания по электронике (судя по вопросам о подключении резистора, вы от этого весьма далеки). Потом программирование. Наиболее безбольно, можете купить I2C преобразователь для LCD и побаловаться с его входами-выходами (их восемь). Для отслеживания оптронов он вполне подойдет.
UPD: Доступных на этой плате семь, восьмой на управление подсветкой (только подпаиваться).
Как раз вчера заказал и lcd и преобразователь для него. Знаний немного, что есть то есть. Век живи век учись.
В принципе, если сумеете через нее, то есть подобные, но на 16 входов-выходов (в виде мелкосхемы). В итоге два корпуса дадут вам искомых 32 вывода, забрав от МК два или три.
Регистры 595...
речь об этом?
Да, они дешовые, но могут работать только как выход. PCF8574 дороже, но может работать в две стороны (есть проблемы при коммутации выхода). Если правильно помню, то к земле тянет нормально, а к питанию очень слаботочная.
Да, они дешовые, но могут работать только как выход.
ну если мне нужно чисто контролировать состояние 220 с реле и сами реле - они подходят? в принципе по статье описано интересно и не сложно. стоимость действительно копеечная, а если для моих нужд подходят, так мне большего и не надо. Заказываю.
Реле разные нужны, реле разные важны. Вот у Колиного дяди, две жены и обе ... Ой, это не о том.))))
Напрямую реле не включит, китайские модули с обвязкой, да. Смотрите максимальный ток с пина и корпуса в даташите. Принимать что то извне с них нельзя, для этого вроде 165 регистры (не пользовал, не уверен).
вот такие модули реле
Подойдут, возможно резистор токоограничительный надо будет добавить. Их я тоже не юзал, не знаю какой ток на оптроне жрут. Проверить, прикинуть суммарный и сравнить с даташитом регистра, если вписываетесь, то можете спокойно подключать.
Подойдут, возможно резистор токоограничительный надо будет добавить.
Куда?
Подойдут, возможно резистор токоограничительный надо будет добавить.
Куда?
Да вы сперва токи померяйте, скорее всего и так пойдет.
да я то же думаю что подойдет. жаль, что доставка долгая. ну пока ПО писать буду. кстати, очередной глупый вопрос, а в чем лучше всего рисовать схемы для переноса на платы? вчера качнул какую то муть, там какой то скудный набор элементов.
Для эмуляции подключите светики и ориентируйтесь по ним.
Для рисовалки я использую DipTrace, там и новые элементы легко создавать и библиотек навалом.
Пока реле не приедут и не поэкспериментируете с реальными нагрузками на макете, схему не торопитесь рисовать. Бывают нюансы.
Для эмуляции подключите светики и ориентируйтесь по ним.
Для рисовалки я использую DipTrace, там и новые элементы легко создавать и библиотек навалом.
Пока реле не приедут и не поэкспериментируете с реальными нагрузками на макете, схему не торопитесь рисовать. Бывают нюансы.
что за светики? светодиоды что ли? Реле у меня есть в наличии (модуль на 4 реле). Я уже с ним экспериментировал и со смартфона включал/выключал, но мне нужно знать текущее состояние реле, поэтому и подсел на эту тему.
PS. DipTrace, походу, навороченая тема, судя по 7 гигам на торренте
7 гигов? Наверно библиотек наворотили, у меня 1,38Г установочная папка весит.