Gроект для аквариума (акваконтроллер для led, temp, time, co2)

bwn
Offline
Зарегистрирован: 25.08.2014

Так может и реле не понадобится.

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

Что то не сраслоь :( , а куда надо написать delay(1350); ? Сейчас симитировался рассвет и диод горит постоянн а потом гаснет, заката нет :(.  сделал так заодно  убрал реле не помогло свет сразу закарается на 3 сек потом гаснет и тогда начинается цкл.

                                                //обзываем выводы
int REDpin = 9;
int BLUEpin = 10;
int WHITEpin = 11;
int RELAYpin = 2;

void setup()

 {   
                                                 //включение реле 
   pinMode(RELAYpin, OUTPUT);  
   digitalWrite(RELAYpin, LOW);   
   delay(3000);                                  //пауза
   digitalWrite(RELAYpin, HIGH);}  

void loop(){    
  
   for(int value = 0 ; value <= 255; value +=1)
  { 
                                                  //яркость света увеличивается
    analogWrite(REDpin, 255-value);
    analogWrite(BLUEpin, 255-value);
    analogWrite(WHITEpin, 255-value);
    delay(60);                                    //пауза
  }
  
 
   {   
                                                //свет горит 
   
    delay(3500);                                 //пауза
   }   

  
  for(int value = 0 ; value <= 255; value +=1)
  {  
                                               //яркость света уменьшается
     analogWrite(REDpin, 0);                    
    analogWrite(BLUEpin, 0); 
    analogWrite(WHITEpin, 0);
   
    delay(60);                                   //пауза
  }
 
   for(int value = 0 ; value <= 255; value +=1)
   {   
                                                //свет не горит 
    analogWrite(REDpin, 255);
    analogWrite(BLUEpin, 255); 
    analogWrite(WHITEpin, 255);
    delay(60);                                 //пауза
   }   

}

 

bwn
Offline
Зарегистрирован: 25.08.2014

delay напишите вместо циклов, где свет - горит, не горит  и не 1350 а сколько вам надо секунд*1000. По закату - сравните два for-а на рассвет и закат((((

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014
   {   
                                                //свет горит 
   
    delay(3500);                                 //пауза
   }
вот так? про сек. я конечно понял там потом это все выставится на более долгое время.  
bwn
Offline
Зарегистрирован: 25.08.2014

Еще раз советую, выбросьте delay() и перейдите не это .
Скобки кстати в 304 посте не нужны. Там нечего ограничивать.

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

Спасибо за наводки. Пойду грызть гранит науки :). Надо плотно изучить вопрос и переписать код. Как будут результаты сразу отпишусь. Еще раз спасибо.

bwn
Offline
Зарегистрирован: 25.08.2014

Сразу последний код не увидел, попробуйте так. Реле из цепи исключить.

                                                //обзываем выводы
int REDpin = 9;
int BLUEpin = 10;
int WHITEpin = 11;
int RELAYpin = 2;

void setup()

 {   
    analogWrite(REDpin, 255);
    analogWrite(BLUEpin, 255); 
    analogWrite(WHITEpin, 255);   
   //включение реле 
   
   //pinMode(RELAYpin, OUTPUT);  
   //digitalWrite(RELAYpin, LOW);   
   //delay(3000);                                  //пауза
   //digitalWrite(RELAYpin, HIGH);
 }  

void loop(){    
  
   for(int value = 255 ; value = 0; value--)
  { 
                                                  //яркость света увеличивается
    analogWrite(REDpin, value);
    analogWrite(BLUEpin, value);
    analogWrite(WHITEpin, value);
    delay(60);                                    //пауза
  }
  
 
  // {   
                                                //свет горит 
   
    delay(5000);                                 //пауза
  // }   

  
  for(int value = 0 ; value >= 255; value ++)
  {  
                                               //яркость света уменьшается
     analogWrite(REDpin, value);                    
    analogWrite(BLUEpin, value); 
    analogWrite(WHITEpin, value);
   
    delay(60);                                   //пауза
  }
 
  // for(int value = 0 ; value <= 255; value +=1)
   //{   
                                                //свет не горит 
   // analogWrite(REDpin, 255);
   // analogWrite(BLUEpin, 255); 
   // analogWrite(WHITEpin, 255);
   // delay(60);                                 //пауза
   //}
   delay(5000);   

}

 

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

Сейчас попробовал Ваш код все работает. но при включении диод все равно падла на 3 сек загарается без релюхи.

 прикладываю фото 

 

Так схема выглидит с реле 

Я думаю, что проблема возникает из за драйвера при его включении сразу подается питание на диод. Вот как побороть эту проблему минуя реле?

bwn
Offline
Зарегистрирован: 25.08.2014

Если планируете дальше постоянную работу устройства, то зачем вам реле? Ну мигнуло один раз после ресета, а дальше сутками молотит корректно.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Vallu пишет:

Сейчас попробовал Ваш код все работает. но при включении диод все равно падла на 3 сек загарается без релюхи.

Вам надо линию включения драйвера делать делителем, т.е., принудительно подтягивать ее потенциал в какую-то сторону. Тогда, во время переходных процессов, оно не будет зажигаться...

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

Andrey_Y_Ostanovsky пишет:

Vallu пишет:

Сейчас попробовал Ваш код все работает. но при включении диод все равно падла на 3 сек загарается без релюхи.

Вам надо линию включения драйвера делать делителем, т.е., принудительно подтягивать ее потенциал в какую-то сторону. Тогда, во время переходных процессов, оно не будет зажигаться...

А это как? дайте наводку как погуглить правельно, пожалуйста. Резистором к земле или +? ( простите за глупые вопросы, я бывший алкофолик , а теперь начинающий ардуинщик)

 

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

Andrey_Y_Ostanovsky пишет:

Vallu пишет:

Сейчас попробовал Ваш код все работает. но при включении диод все равно падла на 3 сек загарается без релюхи.

Вам надо линию включения драйвера делать делителем, т.е., принудительно подтягивать ее потенциал в какую-то сторону. Тогда, во время переходных процессов, оно не будет зажигаться...

ну когда мигнут 240 диодов то рыбкам я думаю будет, что рассвет что закат ... :).

bwn
Offline
Зарегистрирован: 25.08.2014

Возьмите 2к2 и попробуйте так и так. С драйверами не баловался, не могу сказать как правильно. Хотя если при 255 выключено, наверно к +.

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

bwn пишет:

Возьмите 2к2 и попробуйте так и так. С драйверами не баловался, не могу сказать как правильно. Хотя если при 255 выключено, наверно к +.

ОК ща попробую.

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

Ребята, ВЫ гении! Спасибо огромное за помощь, все заработало без релюхи. Подцепил ЩИМ к + через 4к. УРА!!!

                                                //обзываем выводы
const int REDpin = 9;
const int BLUEpin = 10;
const int WHITEpin = 11;
int REDState = LOW;
int BLUEState = LOW;
int WHITEState = LOW; 

void setup()
{}
void loop(){    
  
   for(int value = 255 ; value >= 0; value--)
  { 
                                                  //яркость света увеличивается
    analogWrite(REDpin, value);
    analogWrite(BLUEpin, value);
    analogWrite(WHITEpin, value);
    delay(60);                                    //пауза
  }
    
                                                //свет горит 
   
    delay(5000);                                 //пауза
  
  for(int value = 0 ; value <= 255; value ++)
  {  
                                               //яркость света уменьшается
     analogWrite(REDpin, value);                    
    analogWrite(BLUEpin, value); 
    analogWrite(WHITEpin, value);
   
    delay(60);                                   //пауза
  }
     
                                                //свет не горит 
  
   delay(5000);                                 //пауза
 
}

 

bwn
Offline
Зарегистрирован: 25.08.2014

int-ы на byte поменяйте, зачем память кушать?

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

bwn пишет:

int-ы на byte поменяйте, зачем память кушать?

я в этом ни чего пока не понимаю, но советом вашим воспользовался :)

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

bwn пишет:

int-ы на byte поменяйте, зачем память кушать?

я в этом ни чего пока не понимаю, но советом вашим воспользовался :)

bwn
Offline
Зарегистрирован: 25.08.2014

Здесь . Типы данных.

serega.gram
Offline
Зарегистрирован: 15.04.2015

sketch_jun28a.ino: In function 'void setup()':
sketch_jun28a.ino:303:10: error: 'class TwoWire' has no member named 'send'
sketch_jun28a.ino:304:10: error: 'class TwoWire' has no member named 'send'
sketch_jun28a.ino: In function 'void readTime()':
sketch_jun28a.ino:476:16: error: 'RTC' was not declared in this scope
sketch_jun28a.ino:476:24: error: 'DS1307_HR' was not declared in this scope
sketch_jun28a.ino:477:22: error: 'DS1307_MIN' was not declared in this scope
sketch_jun28a.ino:478:22: error: 'DS1307_SEC' was not declared in this scope
sketch_jun28a.ino:479:22: error: 'DS1307_DATE' was not declared in this scope
sketch_jun28a.ino:480:23: error: 'DS1307_MTH' was not declared in this scope
sketch_jun28a.ino:481:22: error: 'DS1307_YR' was not declared in this scope
sketch_jun28a.ino: In function 'void korTime()':
sketch_jun28a.ino:492:5: error: 'RTC' was not declared in this scope
sketch_jun28a.ino: In function 'void writeTime()':
sketch_jun28a.ino:730:3: error: 'RTC' was not declared in this scope
sketch_jun28a.ino:730:11: error: 'DS1307_SEC' was not declared in this scope
sketch_jun28a.ino:731:11: error: 'DS1307_MIN' was not declared in this scope
sketch_jun28a.ino:732:11: error: 'DS1307_HR' was not declared in this scope
sketch_jun28a.ino:734:11: error: 'DS1307_DATE' was not declared in this scope
sketch_jun28a.ino:735:11: error: 'DS1307_MTH' was not declared in this scope
sketch_jun28a.ino:736:11: error: 'DS1307_YR' was not declared in this scope
sketch_jun28a.ino: In function 'void ustTime()':
sketch_jun28a.ino:747:3: error: 'RTC' was not declared in this scope
Ошибка компиляции.

здраствуйте. помогите с вашим кодом не проходит компиляцию, и библиотеки стоят нужные.

 

bwn
Offline
Зарегистрирован: 25.08.2014

А к чему у вас этот код? Работающий выложен у ТС в 282 посте. А то, что вы пытаетесь компилировать к акваконтроллеру имеет очень далекое отношение.

serega.gram
Offline
Зарегистрирован: 15.04.2015

Это ошибки которые вылетают. А скетч именно ваш в проекте где вы человеку помогали пульт подключать к акваконтроллеру

bwn
Offline
Зарегистрирован: 25.08.2014

Я вижу, что мой, но это термостат для погреба, я его ТС для примера давал. На версиях выше 1.0 может и не скомпилится, также правильность библиотеки RTC сомнения вызывает.

serega.gram
Offline
Зарегистрирован: 15.04.2015

Всё понял извините

bwn
Offline
Зарегистрирован: 25.08.2014

serega.gram пишет:
Всё понял извините

Вы уж юзайте тот, который ТС крайним выложил, а то мой вам аквариум нарегулирует)))

Rmario
Offline
Зарегистрирован: 15.07.2015

Господа прошу помощи, пытаюсь загрузить скейч из 282 поста уважаемого ТС, при проверке вылетает ошибка

ткините плиз в чем может быть проблемма

Arduino: 1.6.5 (Windows 8.1), Плата"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

controler.ino.ino: In function 'void setup()':
controler.ino:164: error: 'class LiquidCrystal_I2C' has no member named 'init'
'class LiquidCrystal_I2C' has no member named 'init'

  Это сообщение будет содержать больше информации чем
  "Отображать вывод во время компиляции"
  включено в Файл > Настройки

 

bwn
Offline
Зарегистрирован: 25.08.2014

Попробуйте на другом IDE скомпилировать, ниже 1.6.*.
Либо не та библиотека.

Rmario
Offline
Зарегистрирован: 15.07.2015

bwn пишет:

Либо не та библиотека.

библиотека LiquidCrystal_I2C ?

bwn
Offline
Зарегистрирован: 25.08.2014

Rmario пишет:

bwn пишет:

Либо не та библиотека.

библиотека LiquidCrystal_I2C ?

Какая была у ТС я не знаю, сам бы начал с IDE, поставьте типа 1.0.5, они обычно друг другу не мешают. У меня стоят и 0023 и 1.0.5.

Rmario
Offline
Зарегистрирован: 15.07.2015

Спасибо, связался с ТС , все "ок" скейч всал)))

Psalmir
Offline
Зарегистрирован: 21.07.2015

bwn, добрый день, Вы в 148 сообщении выкладывали скетч где можно несколькими реле управлять. Но у меня он всячески отказывается работать.

Я пытался написать скетч по управлению 4мя реле, которые будут включать цепочки светодиодов в определенное время. 4 дня пролетели мгновенно пока я пытался разобраться, как настроить скетч. Но пока безрезультатно. Буду признателен Вашей помощи.
 
За основание, я взял скетч вот отсюда http://arrduinolab.blogspot.ru/2014/10/blog-post.html
Он отлично управляет 1 реле, я назначил время в 7.00 утра включить и в 20.00 выключить, все работает, как часы, но только с одим реле.
 
Для наглядности моего железа, сделал фото. 
Arduino UNO; LCD Keypad Shield 16,2; 8Relay Module; Часы DS3231
 
 
И еще такой вопрос, я не смогу подключить к LCD Keypad Shield все 8 реле? Так как у него всего лишь 7 цифровых выходов. Или я не правильно понимаю?
 
 
Просто на будущее хотелось к этим реле подключить СО2, охлождение/обогрев воды в аквариуме
Psalmir
Offline
Зарегистрирован: 21.07.2015

Наверно лучше надо было обычный дисплей брать без кнопок..

bwn
Offline
Зарегистрирован: 25.08.2014

Psalmir, сегодня не смогу посмотреть, но у ТС это неплохо прописано, посмотрите внимательно код.
По дисплею, вам нужен с I2C. Варианты - купить готовый, купить дисплей и переходник (спаять), купить переходник и выпаять из шилда. На али можно за нормальные деньги взять.

Psalmir
Offline
Зарегистрирован: 21.07.2015

Написал скетч для 4х реле, пока что без кнопок. С меню нужно будет еще поработать. А так все работает отлично. Буду рад выслушать дополнения к скетчу, может что то стоит переделать?

//----------ИМПОРТ БИБЛИОТЕК-------------------------

#include <Wire.h>                                    //Подключаем библиотеку для использования I2C интерфейса с модулем RTC 
                                                     //И модуля ЖК дисплея 16Х2, который также испольует I2C
#include <LiquidCrystal.h>                           //Подключаем библиотеку для Модуля ЖК дисплея 16Х2 
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
#include <RTClib.h>                                  //Подключаем библиотеку для использования модуля часов реального времени RTC
RTC_DS1307 RTC;                                      //Создаем переменную класса - для использования RTC

#define mn 60UL;                                     //Присваиваем переменную минут
#define hr 3600UL;                                   //Присваиваем переменную часа

//----------Объявляем разные переменные--------------
const int RelayChn1 = 13;                            //Используем цифровой ПОРТ 13 для ПЕРВОГО канала релейного модуля
const int RelayChn2 = 12;                            //Используем цифровой ПОРТ 12 для ВТОРОГО канала релейного модуля
const int RelayChn3 = 11;                            //Используем цифровой ПОРТ 11 для ТРЕТЬЕГО канала релейного модуля
const int RelayChn4 = 3;                             //Используем цифровой ПОРТ 3 для ТРЕТЬЕГО канала релейного модуля

//----------Настройки времени и продолжительности включения реле
//----------ПЕРВЫЙ канал----------------------------
const long StartRelCn_1 = 7*hr;                      // Первый канал включается в 7 утра и до 20.00
                                                     //
const long DurationCh_1 = 13*hr;                        //ДЛИТЕЛЬНОСТЬ срабатывания реле в ПЕРВОМ канале  
//----------ВТОРОЙ канал----------------------------
const long StartRelCn_2 = 8*hr;                      //Второй канал включается в 8 утра и до 19.00
                                                     //
const long DurationCh_2 = 11*hr;                        //ДЛИТЕЛЬНОСТЬ срабатывания реле во ВТОРОМ канале  
//----------ТРЕТИЙ КАНАЛ----------------------------
const long StartRelCn_3 = 10*hr;                     //Третий канал включается в 10 и до 17.00
                                                     // 
const long DurationCh_3 = 7*hr;                        //ДЛИТЕЛЬНОСТЬ срабатывания реле во ВТОРОМ канале 
//----------ЧЕТВЕРТЫЙ КАНАЛ----------------------------
const long StartRelCn_4 = 12*hr;                     // Четвертый канал включается в 12.00 и до 15.00
                                                     //
const long DurationCh_4 = 3*hr;                        //ДЛИТЕЛЬНОСТЬ срабатывания реле во ВТОРОМ канале 

//----------Модуль инициализации setup() - выполняется один раз при инициализации платы при подаче напряжение (и аналогичных событиях) 
void setup(){
  
    //digitalWrite(TSensorPin,HIGH); 
    pinMode(RelayChn1,OUTPUT);                       //Инициализируем порт для ПЕРВОГО канала как ВЫХОД
    pinMode(RelayChn2,OUTPUT);                       //Инициализируем порт для ВТОРОГО канала как ВЫХОД   
    pinMode(RelayChn3,OUTPUT);                       //Инициализируем порт для ТРЕТЬЕГО канала как ВЫХОД
    pinMode(RelayChn4,OUTPUT);                       //Инициализируем порт для ЧЕТВЕРТОГО канала как ВЫХОД

    digitalWrite(RelayChn1,HIGH);                    //Устанавливаем на входах релейного модуля ВЫСОКИЙ уровень 
    digitalWrite(RelayChn2,HIGH);                    
    digitalWrite(RelayChn3,HIGH);                       
    digitalWrite(RelayChn4,HIGH);

    Wire.begin();                                    //Инициируем I2C интерфейс
    RTC.begin();                                     //Инициирум RTC модуль

    lcd.begin(16,2);                                 //Инициализируем ЖК дисплей 
    lcd.clear();                                     //Очищаем дисплей
//    RTC.adjust(DateTime(__DATE__, __TIME__));      //С этой строки необходимо убрать комментарии один раз в начале, 
                                                     //для того, чтобы загрузить в RTC дату и время на момент компиляции программы  
                                                     //Иногда необходимо заливать СКЕТЧ на плату со снятым комментарием - для поправки 
                                                     //времени в RTC, НО оставлять такой СКЕТЧ в работе НЕЛЬЗЯ !!!!!!!!!!!!!

//----------Подготавливаем экран ЖК дисплея - выводим на него статичные поля
    lcd.clear();
    lcd.setCursor(10, 0);
    lcd.print("R4=0");
    lcd.setCursor(0, 1);
    lcd.print("R1=0");
    lcd.setCursor(5, 1);
    lcd.print("R2=0");
    lcd.setCursor(10, 1);
    lcd.print("R3=0");

}                                                    // КОНЕЦ ИНИЦИАЛИЗАЦИИ
//--------------------------------------------------
void loop()                                          // ПРОГРАММЫй безусловный ЦИКЛ 
{
    DateTime myTime = RTC.now();                     //Читаем данные времени из RTC   

    //---------Вывод часов на ЖК--------------------
    lcd.setCursor(0, 0);                             //Перемещаем курсор ЖК дисплея в первую строку в 5-ю позицию
    if (myTime.hour() < 10) lcd.print ("0");         //так дополняются лидирующие нули - когда есть необходимость
    lcd.print(myTime.hour());                        //Выводим значение ЧАСОВ               
    lcd.print(':');                                  //Выводим символ разделителя (:) 
    if (myTime.minute() < 10) lcd.print ("0");    
    lcd.print(myTime.minute());                      //Выводим значение МИНУТ 
//    lcd.print(':');                                //Выводим символ разделителя (:) 
//    if (myTime.second() < 10) lcd.print ("0");
//    lcd.print(myTime.second());                    //Выводим значение СЕКУНД
 
    //----------Раздел обработки реле по времени ----
    long utime = myTime.unixtime();                  //сохраняем время в формате UNIX
    utime %= 86400;                                  //Сохраняем в переменной остаток деления на кол-во секнд в сутках, 
                                                     //Это дает количество секунд с начала текущих суток
 
    //------------КАНАЛ 1------------------------------
    if ((utime >= StartRelCn_1) && 
       (utime < (StartRelCn_1+DurationCh_1)))
                                                     //Если секунд с начала суток больше, чем задано для включения 
                                                     //Но, одновременно и меньше, чем задано для включения + длительность 
      {
          digitalWrite(RelayChn1,LOW);               //Устанавливаем на ПЕРВОМ входе релейного модуля НИЗКИЙ уровень - реле срабатывает
         lcd.setCursor(3, 1);
         lcd.print("1");
      }  
    else
      {
          digitalWrite(RelayChn1,HIGH);              //Устанавливаем на ПЕРВОМ входе релейного модуля ВЫСОКИЙ уровень - реле выключается
          lcd.setCursor(3, 1);
          lcd.print("0");
      } 

    //------------КАНАЛ 2 - все аналогично -----------
    if ((utime >= StartRelCn_2) && 
       (utime < (StartRelCn_2+DurationCh_2)))
      {
        digitalWrite(RelayChn2,LOW);                 //Устанавливаем на ВТОРОМ входе релейного модуля НИЗКИЙ уровень - реле срабатывает
        lcd.setCursor(8, 1);
        lcd.print("1");
      }  
    else
      {
          digitalWrite(RelayChn2,HIGH);              //Устанавливаем на ВТОРОМ входе релейного модуля ВЫСОКИЙ уровень - реле выключается
          lcd.setCursor(8, 1);
          lcd.print("0");
      } 
 //------------КАНАЛ 3 - все аналогично -----------
    if ((utime >= StartRelCn_3) && 
       (utime < (StartRelCn_3+DurationCh_3)))
      {
        digitalWrite(RelayChn3,LOW);                 //Устанавливаем на ТРЕТЬЕМ входе релейного модуля НИЗКИЙ уровень - реле срабатывает
        lcd.setCursor(13, 1);
        lcd.print("1");
      }  
    else
      {
          digitalWrite(RelayChn3,HIGH);              //Устанавливаем на ТРЕТЬЕМ входе релейного модуля ВЫСОКИЙ уровень - реле выключается
          lcd.setCursor(13, 1);
          lcd.print("0");
      }    
      
 //------------КАНАЛ 4 - все аналогично -----------
    if ((utime >= StartRelCn_4) && 
       (utime < (StartRelCn_4+DurationCh_4)))
      {
        digitalWrite(RelayChn4,LOW);                 //Устанавливаем на ЧЕТВЕРТОМ входе релейного модуля НИЗКИЙ уровень - реле срабатывает
        lcd.setCursor(13, 0);
        lcd.print("1");
      }  
    else
      {
          digitalWrite(RelayChn4,HIGH);              //Устанавливаем на ЧЕТВЕРТОМ входе релейного модуля ВЫСОКИЙ уровень - реле выключается
          lcd.setCursor(13, 0);
          lcd.print("0");
      }  

}//------------Конец ЦИКЛА-----------------------------
//*****************************************************

 

Psalmir
Offline
Зарегистрирован: 21.07.2015

Насчет СО2 подумал, что его стоит подсоеденить к одному из 4х реле света. Включился свет и началась подача СО2, все логично.

bwn
Offline
Зарегистрирован: 25.08.2014

Переделать нужно все, но возможно вас устраивает такой вариант работы. Хороший скетч, это тот, который устраивает разработчика и выполняет без глюков свои функции. ИМХО.
Правда в этом варианте непонятно назначение дисплея. Максимум четыре светика (если на шилде с реле нет).
Для более сложного проекта, сравните ваш луп и ТС. Найдите отличия в подходе и попробуйте сформулировать на что они влияют.

Psalmir
Offline
Зарегистрирован: 21.07.2015

Первый день такая программа отработала хорошо, но на следущий день столкнлся с проблемой. Когда включились 2 реле со светом, ардуино стал отключаться. Место на плате, куда подключена зарядка 9 вольт, сильно греется. Погуглил информацию по этому поводу, пишут, что возможно проблема из за шилда дисплея. Отключил его, пока что в течение часа ардуина не выключалась.

По поводу скетча. Потихоньку разбираюсь. Буду рад помощи.

bwn
Offline
Зарегистрирован: 25.08.2014

Большое потребление у подсветки дисплея, до 100мА. Ваши 9В - 5В =4В*0,1А=0,4Вт теплоты (немало однако). Лучше питайте нормальной 5 вольтовой. И кстати вы реле как питаете? Не от этой ли зарядки, а то и от самой дуины?

Psalmir
Offline
Зарегистрирован: 21.07.2015

Вот такой зарядкой я питаю и ардуино и реле http://ru.aliexpress.com/item/AC-100V-240V-Converter-Adapter-DC-9V-1A-Power-Supply-EU-Plug-DC-5-5mm-x/1965820134.html Разве этого не достаточно? 1 Ампер 9 вольт

bwn
Offline
Зарегистрирован: 25.08.2014

Psalmir пишет:

Вот такой зарядкой я питаю и ардуино и реле http://ru.aliexpress.com/item/AC-100V-240V-Converter-Adapter-DC-9V-1A-Power-Supply-EU-Plug-DC-5-5mm-x/1965820134.html Разве этого не достаточно? 1 Ампер 9 вольт

Питание реле я так понимаю, 5В. Откуда вы их берете?

Psalmir
Offline
Зарегистрирован: 21.07.2015

Да, 5 вольт я беру с платы ардуино для запитки часов и реле. Я не правильно делаю?

bwn
Offline
Зарегистрирован: 25.08.2014

Psalmir пишет:

Да, 5 вольт я беру с платы ардуино для запитки часов и реле. Я не правильно делаю?

На реле лучше отдельный стабилизатор, как и на любую индуктивную нагрузку. Дополнительно и стабилизатор дуины разгрузите, он для этого не предназначен.

Psalmir
Offline
Зарегистрирован: 21.07.2015

Спасибо за совет. А реле питать от 9 вольт не стоит?

bwn
Offline
Зарегистрирован: 25.08.2014

Для начала можно попробовать: Ваши 9В расходятся на дуину и на 5В стабилизатор для реле. 9В напрямую на реле, думаю пожгете.

dimon_9597
Offline
Зарегистрирован: 26.04.2016

здратвуйте формучане! Пишу ночью по этому с ошибками!:) спасибо что такие люди как Thor и bwn занимаються таким делом!!!!

я по их каментом собрал такое чудо. Рыбкам так нравиться,что нериститься начали! Начало есть мой акваконтрол умееет включать 1-ю.2-.ю лампу, компресор, фильтр, кормуку все по таймерам,работа по темрературе если ниже 24,5 :включается нагреватель ;если 27 вентилятор ( нагр и ветил) выключаются в 26 стамый стабильный для моих рыб:)

работаю с железом: LCD 16/2; arduino uno; ds 18/20; на часах 32.. не помню ; и 8 релюшками(т.к.стоят люминисценки 3шт.)

Так что пришлось переделать их скетчи под мою банку можно но:(очень,очень трудно,темболее в темноте:))

Спасибо вам всем!!! Кому интерестно такое продляйте тему!!! 

Я пока на 4 странице буду всем презателен в помощи!(мудрю с меню)!!!!

 

bwn
Offline
Зарегистрирован: 25.08.2014

dimon_9597 пишет:

работаю с железом: LCD 16/2; arduino uno; ds 18/20; на часах 32.. не помню ; и 8 релюшками(т.к.стоят люминисценки 3шт.)

Ну вот, самую вкусную фишку убили, рассвет-закат.)))

 

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

bwn пишет:
Ну вот, самую вкусную фишку убили, рассвет-закат.)))

Заката солнца вручную реализовать легко.
Поисковики выдают море ответов.

Киргуду! (Шутка!)

bwn
Offline
Зарегистрирован: 25.08.2014

Олег М. пишет:

bwn пишет:
Ну вот, самую вкусную фишку убили, рассвет-закат.)))

Заката солнца вручную реализовать легко.
Поисковики выдают море ответов.

Киргуду! (Шутка!)

Так с этого у ТС вся тема начиналась, а потом во вкус вошел.))))

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

bwn пишет:

Ну вот, самую вкусную фишку убили, рассвет-закат.)))

люминисцентные лампы для аквариума, а не для гламурного светильнега.

dimon9597
Offline
Зарегистрирован: 18.02.2016

Привет формучане! Кто с может помочь с кнопками IR (чтобы работало вкл/выкл и с пульта и по таймерам).Заранее спасибо!