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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.08.2015, 14:50   #11
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 вне форума   Ответить с цитированием
 


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

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

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

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


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


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