Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.07.2018, 17:45   #861
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Цитата:
Вопрос к вам: неужели дуина на 600мкс где-то подтормаживает!?
Светодиоду нужно как минимум 1,2В - 3В напряжения и 1-2мА ток, для открытия транзистора
В нулевой точке напряжение =0, ток =0
Admin вне форума   Ответить с цитированием
Старый 27.07.2018, 17:52   #862
red_lion
Junior Member
 
Регистрация: 27.07.2018
Сообщений: 3
Вес репутации: 0
red_lion is an unknown quantity at this point
По умолчанию

Понятно, т.е. наш детектируемый ноль - это событие, которое размазано на 1,2В - 3В по убывающему фронту и на столько же по восходящему?
Если верить моим цифрам - ровно 600мкс)
red_lion вне форума   Ответить с цитированием
Старый 27.07.2018, 19:39   #863
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Все верно, но только цифры будут другие, так как при напряжении 3В , тока открывания транзистора будет не достаточно
Admin вне форума   Ответить с цитированием
Старый 27.07.2018, 20:45   #864
red_lion
Junior Member
 
Регистрация: 27.07.2018
Сообщений: 3
Вес репутации: 0
red_lion is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Admin Посмотреть сообщение
Все верно, но только цифры будут другие, так как при напряжении 3В , тока открывания транзистора будет не достаточно
С цифрами и током не понял. Цифры вы имеете ввиду табличные значения или время, которое у нас будет ноль "висеть"?
По идее таблица должна остаться верной, ведь синусоида-то она не поменялась в розетке от того, что мы не с той точки начали наши вычисления, а этот сдвиг между желаемым детектированием и действительным мы скомпенсируем какой-то константой. Или я что-то упускаю?

Последний раз редактировалось red_lion; 27.07.2018 в 20:51.
red_lion вне форума   Ответить с цитированием
Старый 27.07.2018, 20:58   #865
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Цитата:
С цифрами и током не понял. Цифры вы имеете ввиду табличные значения или время, которое у нас будет ноль "висеть"?
Я имел ввиду ток и напряжение.
Цитата:
Сообщение от red_lion Посмотреть сообщение
Понятно, т.е. наш детектируемый ноль - это событие, которое размазано на 1,2В - 3В по убывающему фронту и на столько же по восходящему?
Admin вне форума   Ответить с цитированием
Старый 10.10.2018, 12:52   #866
ZombikPC
Junior Member
 
Регистрация: 10.10.2018
Сообщений: 23
Вес репутации: 0
ZombikPC is an unknown quantity at this point
По умолчанию

Всем привет, нашел Ваш скетч на ютубе один блогер его выдавал за свой. Разбираясь с кодом нашел эту тему и автора скетча -). Хочу сделать мозги для твердотопливного котла, мне нужно управлять оборотами турбины.
Вот такая турбина стоит.
Для начала хочу понять как работает скетч.
Вопрос один что делает вот эта функция??
PHP код:
StartTimer1(timer_interrupt40); 
Я понимаю это так - запускаем таймер на 40мс как только натикало 40 мс. вызывается функция
PHP код:
timer_interrupt() 
Почему именно 40 мс, откуда эта цифра взята?
ZombikPC вне форума   Ответить с цитированием
Старый 10.10.2018, 14:07   #867
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Цитата:
Всем привет, нашел Ваш скетч на ютубе один блогер его выдавал за свой
Я видел это AlexG..r , я писал ему, но он не отвечает на письма. пусть будет на его совести.
Он так же как и Вы интересовался всеми подробностями в этой ветке форума, а потом выдал у себя в блоге за свою разработку. Надеюсь Вы выложите ссылку на первоисточник?

Цитата:
Вопрос один что делает вот эта функция??
PHP код:
StartTimer1(timer_interrupt, 40);
Срабатывает прерывание по таймеру каждые 40 мкс и выполняется код timer_interrupt

Цитата:
Почему именно 40 мс, откуда эта цифра взята?
Не 40 мс, а 40 мкс. В нашей электросети частота 50 Гц, это 20 мс, 1 полупериод это 10 мс.
максимальное значение Byte=255, в итоге получается разрешение 1 бит 40 мкс
то есть полупериод(10 мс) у нас разбит на семплинги по 40 мкс
Можно уменьшить, до 10 семплов (1мс), но тогда яркость будет изменяться от минимума до максимума с шагом 1 мс и будет иметь всего 10 уровней яркости.
Учитывая то, что мы разрезаем на кусочки синусоидальный сигнал, то изменение яркости будет не линейным и на 10 ступеньках будет изменятся не равномерно. Эффект плавного, медленного включения света тоже не получится.
Admin вне форума   Ответить с цитированием
Старый 10.10.2018, 17:11   #868
ZombikPC
Junior Member
 
Регистрация: 10.10.2018
Сообщений: 23
Вес репутации: 0
ZombikPC is an unknown quantity at this point
По умолчанию

Если значение в мКс то:
1) tic = 1; по времени будет равен 40 мкс?
255 - тиков будет равно 1ному нашему полупериоду (10мс)
получается мы можем отрезать от полупериода кусочки равные только 40 мкс?

А если хочется отрезать от полупериода кусочек в 1 мкс, регулировка будет плавней.
2) Можно так реализовать?
Пример кода
PHP код:
//********************обработчики прерываний*******************************
void timer_interrupt()  // прерывания таймера срабатывают каждые 40 мкс
{
 
D4_High;  //   <<<<<<<   управляем выходом
}

void  detect_up()  // обработка внешнего прерывания. Сработает по переднему фронту
{
    
StartTimer1(timer_interruptDimmer1); // <<<<<<  запустить таймер                                      
    
attachInterrupt(0detect_downHIGH);  //перепрограммировать прерывание на другой обработчик
}

void  detect_down()  // обработка внешнего прерывания. Сработает по заднему фронту
{
    
StopTimer1(); //остановить таймер
    
D4_Low;            //логический ноль на выходы
    
attachInterrupt(0detect_upLOW); //перепрограммировать прерывание на другой обработчик
}
//*************************************************************************
void loop()
{
    
Start
        Dimmer1 
map(analogRead(0), 0102310000);

    
End

3) Или я вопще все не так понял ?

Цитата:
Он так же как и Вы интересовался всеми подробностями в этой ветке форума, а потом выдал у себя в блоге за свою разработку. Надеюсь Вы выложите ссылку на первоисточник?
У меня нет блогов, и в соц сетях я не активен. Но если где-то на просторах интернет буду выкладывать вашу работу обязательно укажу первоисточник.
ZombikPC вне форума   Ответить с цитированием
Старый 10.10.2018, 19:13   #869
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Цитата:
Если значение в мКс то:
1) tic = 1; по времени будет равен 40 мкс?
255 - тиков будет равно 1ному нашему полупериоду (10мс)
получается мы можем отрезать от полупериода кусочки равные только 40 мкс?
Все верно

Цитата:
А если хочется отрезать от полупериода кусочек в 1 мкс, регулировка будет плавней.
2) Можно так реализовать?
Пример кода
Можно, но нужно считать, что бы код в обработчике за это время успевал отрабатывать
И да значение Byte уже не подойдет, нужно uint16_t

Цитата:
У меня нет блогов, и в соц сетях я не активен. Но если где-то на просторах интернет буду выкладывать вашу работу обязательно укажу первоисточник.
Спасибо
Admin вне форума   Ответить с цитированием
Старый 10.10.2018, 21:21   #870
ZombikPC
Junior Member
 
Регистрация: 10.10.2018
Сообщений: 23
Вес репутации: 0
ZombikPC is an unknown quantity at this point
По умолчанию

Цитата:
Можно, но нужно считать, что бы код в обработчике за это время успевал отрабатывать
Код в обработчике - это наш loop ???

Как рассчитать время выполнения программы в обработчике?

Если использовать ваш скетч в чистом виде без подключения каких либо библиотек и функций. сможет он отрезать по 1 мкс от полупериода? Или тогда времени не останется на другие функции??

Последний раз редактировалось ZombikPC; 10.10.2018 в 21:23.
ZombikPC вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 66 (пользователей: 0 , гостей: 66)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:03. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика