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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.08.2015, 21:02   #1
niarbagem
Junior Member
 
Регистрация: 27.06.2015
Адрес: Зеленоград
Сообщений: 12
Вес репутации: 0
niarbagem is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Так в схеме используется МОС3021 переключающийся в любой момент времени, а вы используете MOC3061 который переключается в момент прохождения через ноль.
Не в этом ли дело? )
niarbagem вне форума   Ответить с цитированием
Старый 13.08.2015, 22:04   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824
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
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Сообщение от niarbagem Посмотреть сообщение
Так в схеме используется МОС3021 переключающийся в любой момент времени, а вы используете MOC3061 который переключается в момент прохождения через ноль.
Не в этом ли дело? )
Все верно проблема в оптроне, нужен оптрон без детектора ноля
Admin вне форума   Ответить с цитированием
Старый 13.08.2015, 23:55   #3
olegoriy
Junior Member
 
Регистрация: 13.08.2015
Сообщений: 6
Вес репутации: 0
olegoriy is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Сообщение от Admin Посмотреть сообщение
Все верно проблема в оптроне, нужен оптрон без детектора ноля
Большое спасибо. Только после вашего вопроса, задумался а все ли в порядке у меня с оптроном(оптопарой).
Когда приобретал запчасти, негодяй продавец заверил что разницы между MOC3061 и МОС3021 абсолютно не какой нет.
По этому даже не грешил на оптрон.
Менял все подряд кроме него.
пару фоток если интересно:
Выход с семистора

Выход с оптрона без семистора

Завтра пойду покупать.

Последний раз редактировалось olegoriy; 13.08.2015 в 23:57.
olegoriy вне форума   Ответить с цитированием
Старый 15.08.2015, 14:50   #4
SmartDragon
Junior Member
 
Регистрация: 15.08.2015
Сообщений: 1
Вес репутации: 0
SmartDragon is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Ребят всем привет!
Очень нужна ваша помощь! Приобрел ваш Диммер - классная вещь, все работает, но вот незадача. Когда я использую Ардуино + Wi-Fi Shield все идеально, регулирую уровень свечения через wi-fi все гуд. Но когда я использую WIFI ESP8266-07, используя для обмена с ним информацией SoftwareSerial, то при передаче данных к этому модулю напряжение на PIN 3 подключенному к димммеру падает до нуля и восстанавливается, т.е. пытаясь изменить свечение лампы она моргает. Менял пины ничего не помогает, все время на это пине пропадает напряжение.
Сетую на SoftwareSerial, но не знаю что делать, может кто знает в чем дело?

Вот скетч:
PHP код:
#include <ESP8266.h>
#include <SPI.h>
#include "CyberLib.h"
#include <SoftwareSerial.h>

#define SSID        "---"
#define PASSWORD    "---"
#define HOST_NAME   "0"
#define HOST_PORT   2390

volatile uint8_t ticDimmer1=100;

SoftwareSerial mySerial(10,11); // RX, TX для отладки
ESP8266 wifi(mySerial);

String packet "";
int level 100;
//********************обработчики прерываний******************************* 
void halfcycle()  //прерывания таймера 
{  
  
tic++;  //счетчик   
  
if(Dimmer1 tic D3_High//управляем выходом 


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

void  detect_down()  // обработка внешнего прерывания. Сработает по заднему фронту 
{    
 
StopTimer1(); //остановить таймер 
 
D3_Low;       //логический ноль на выходы 
 
tic=0;       //обнулить счетчик 
 
attachInterrupt(0detect_upFALLING); //перепрограммировать прерывание на другой обработчик 
}  

void connectionWiFi(){
    
mySerial.begin(115200);
    
delay(1000);
    
mySerial.println("AT+CIOBAUD=9600");
    
mySerial.begin(9600);
    
    
Serial.begin(9600);  
    
Serial.print("setup begin\r\n");
    
    
Serial.print("FW Version:");
    
Serial.println(wifi.getVersion().c_str());
      
    if (
wifi.setOprToStation()) {
        
Serial.print("to station ok\r\n");
    } else {
        
Serial.print("to station err\r\n");
    }
 
    if (
wifi.joinAP(SSIDPASSWORD)) {
        
Serial.print("Join AP success\r\n");
        
Serial.print("IP: ");
        
Serial.println(wifi.getLocalIP().c_str());       
    } else {
        
Serial.print("Join AP failure\r\n");
    }

    
Serial.print("setup end\r\n");
    
    if (
wifi.registerUDP("0",0HOST_PORT,2)) {
        
Serial.print("register udp ok\r\n");
    } else {
        
Serial.print("register udp err\r\n");
    }
    
}

void setup() {
  
D3_Out;
  
D3_Low;//установить на выходах низкий уровень сигнала 
  
D2_In//настраиваем порт на вход для отслеживания прохождения сигнала через ноль   
  
attachInterrupt(0detect_upLOW);  // настроить срабатывание прерывания interrupt0 на pin 2 на низкий уровень 
  
StartTimer1(halfcycle40); //время для одного разряда ШИМ 
  
StopTimer1(); //остановить таймер 
  
  
connectionWiFi();
}

void loop() {
    
uint8_t buffer[128] = {0};
    
uint32_t len wifi.recv(buffersizeof(buffer),10000);
    
    if (
len 0) {
        
packet "";
        
//Serial.print("Received:[");
        
for(uint32_t i 0leni++) {
            
packet += (char)buffer[i];        
        }
        
//Serial.print(packet);
        
level packet.toInt();
        
Serial.print(level);
        
//Serial.print("]\r\n");
        
    
}

    
Dimmer1 level;
 

SmartDragon вне форума   Ответить с цитированием
Старый 15.08.2015, 22:19   #5
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824
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
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Похоже что какая то библиотека использует запрет прерываний
Admin вне форума   Ответить с цитированием
Старый 09.09.2015, 11:23   #6
foxvlad
Junior Member
 
Регистрация: 09.09.2015
Сообщений: 4
Вес репутации: 0
foxvlad is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Подскажите пожалуйста возможно что-то сделать или нет.
Нужно на 10,11 пин перекинуть Software порты, но как только подключаю библиотеку "SoftwareSerial" и объявляю пины SoftwareSerial mySerial(10, 11);
То получается косяк, как только что-то приходит на эти пины лампа моргает, что то не стыкуется в библиотеках, может кто подскажет как можно сделать по другому.
foxvlad вне форума   Ответить с цитированием
Старый 09.09.2015, 12:21   #7
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824
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
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Похоже используется один и тот же таймер
Admin вне форума   Ответить с цитированием
Старый 09.09.2015, 13:51   #8
foxvlad
Junior Member
 
Регистрация: 09.09.2015
Сообщений: 4
Вес репутации: 0
foxvlad is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Сообщение от Admin Посмотреть сообщение
Похоже используется один и тот же таймер
И ничего не сделать?
foxvlad вне форума   Ответить с цитированием
Старый 09.09.2015, 14:35   #9
Scorpion
Junior Member
 
Регистрация: 03.03.2014
Сообщений: 21
Вес репутации: 0
Scorpion is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Попробуйте таймер для диммера поменять?
Scorpion вне форума   Ответить с цитированием
Старый 09.09.2015, 16:58   #10
foxvlad
Junior Member
 
Регистрация: 09.09.2015
Сообщений: 4
Вес репутации: 0
foxvlad is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Таймер
Timer1.
Настройку прерываний таймера можно настраивать от 6 мкс. до 4000000 мкс.(4 сек.) с шагом 1 мкс.
StartTimer1(obrobotchik, 1000) запуск таймера, первый параметр это Ваш обработчик прерывания, второй параметр это время, может принимать значения от 6 до 4000000
StopTimer1() Выключить таймер
ResumeTimer1() возобновить отсчет после остановки
RestartTimer1() перезапустить отсчет таймера заново
Все что я нашел про таймер, а как его поменять не знаю.
foxvlad вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 17 (пользователей: 0 , гостей: 17)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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


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


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