![]() |
|
Магазин Arduino | WIKI | Регистрация | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#921 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Лучше 1-2 сек=100%
С детектором ноля для нагревателя предпочтительней |
![]() |
![]() |
![]() |
#922 |
Junior Member
Регистрация: 07.11.2018
Сообщений: 11
Вес репутации: 0 ![]() |
![]()
Все получилось собрать, но в какой то момент симистор начинает самопроизвольно открываться, при том, что подачи на на оптрон никакой нет. Может это быть из-за близости схемы к электропроводке?
Или это вообще проблема из-за rc цепи? Последний раз редактировалось hoiho; 18.11.2018 в 09:39. |
![]() |
![]() |
![]() |
#923 |
Junior Member
Регистрация: 20.11.2018
Сообщений: 2
Вес репутации: 0 ![]() |
![]()
Всем привет. Спсб автору за статью.
Схему повторил, работает отлично. Добавил в код OLED дисплей (Ini). Создал простой счетчик. При попытке вывода, появилось мерцание (Loop#2). Если закомментировать display.print (Loop#1), все отлично. Подскажите в чем проблема? I2C конфликтует с прерыванием? Кто-то не успевает? Как заставить OLED дисплей выводить информацию, без какого-то влияния на диммер? Ini: Развернуть для просмотраPHP код:
[свернуть] Loop#1 Развернуть для просмотраPHP код:
[свернуть] Loop#2 Развернуть для просмотраPHP код:
[свернуть] |
![]() |
![]() |
![]() |
#924 | ||
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#925 |
Junior Member
Регистрация: 20.11.2018
Сообщений: 2
Вес репутации: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#926 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Прежде чем посылать данные в шину I2C нужно дождаться прерывания INT0(перехода через ноль). Засовывать в обработчик прерывания вывод на дисплей не нужно, достаточно изменять статус какой либо переменной.
|
![]() |
![]() |
![]() |
#927 |
Junior Member
Регистрация: 07.01.2019
Сообщений: 1
Вес репутации: 0 ![]() |
![]()
Скажите код написан под мегу, а каким образом мне использовать ардуино про мини?? Понятно, пины сменить, но какие и на какие?? Более того в коде подключена неизвестная мне библиотека.
Скажите как мне поступить??целью ставлю использовать димер для управления мотором от стиралки?? |
![]() |
![]() |
![]() |
#928 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Код в шапке темы можно использовать для arduino pro mini
|
![]() |
![]() |
![]() |
#929 |
Junior Member
Регистрация: 19.09.2019
Сообщений: 4
Вес репутации: 0 ![]() |
![]()
Правильно ли я понял?
Развернуть для просмотраvoid detect_up() // обработка внешнего прерывания. Сработает по переднему фронту
{ tic=0; //обнулить счетчик ResumeTimer1(); //запустить таймер attachInterrupt(0, detect_down, HIGH); //перепрограммировать прерывание на другой обработчик } void detect_down() // обработка внешнего прерывания. Сработает по заднему фронту { StopTimer1(); //остановить таймер D4_Low; D5_Low; D6_Low; //логический ноль на выходы tic=0; //обнулить счетчик attachInterrupt(0, detect_up, LOW); //перепрограммировать прерывание на другой обработчик } [свернуть] Как я понимаю, при появлении LOW на входе мы запускаем таймер и ставим ожидание HIGH. LOW у нас появляется на 2м входе сразу же после прохождения синусоидой "0". После этого мы ждем несколько отсчетов уже по прерыванию таймера и подаем сигнал. При появлении HIGH мы отключаем таймер и обнуляем счетчик. Имеем мертвую зону, что хорошо для гарантированного выключения тиристора. Желтым - сигнал с детектора "0", Голубым - сигнал на управление нагрузкой. |
![]() |
![]() |
![]() |
#930 |
Junior Member
Регистрация: 19.09.2019
Сообщений: 4
Вес репутации: 0 ![]() |
![]()
Если все работает так, как я написал в предыдущем посте, то тогда при задержке в 1 должно быть больше мертвого времени. Однако мы четко видим короткое пропадание сигнала управления.
При попытке выставить максимальную задержку, при значениях больше 205 получается нестабильное появление управляющего сигнала, а при значениях больше 210 управляющий сигнал вообще не появляется. Грубо 20% диапазона. Видимо, я не правильно понял алгоритм. Подскажите в чем ошибка. П.С. Если кому интересно взаимное расположение сигналов, розовым синусоида сети через разделительный трансформатор. Уровни смещены по вертикали. |
![]() |
![]() |
![]() |
Здесь присутствуют: 200 (пользователей: 0 , гостей: 200) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|