Перейти к содержимому

Open

Фотография
* * * * * 17 Голосов

Аква-контроллер от Олега


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7638

#3961 Andrey66

Andrey66

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 1 286
  • Меня зовут:Андрей
  • Откуда:Саратов

Отправлено 15 Февраль 2016 - 17:58

Я ж не с претензиями. Просто у автора обычно "глаз замыливается". А вообще прошивка получилась очень удачная, за что отдельное спасибо.

#3962 Andrey66

Andrey66

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 1 286
  • Меня зовут:Андрей
  • Откуда:Саратов

Отправлено 20 Февраль 2016 - 09:33

Читая форум, я заметил что у многих возникают проблемы при подключении вентиляторов на регулировку оборотов с помощью ШИМ. Вентиляторы, естественно, начинают "выть" если на них подавать менее 100% ШИМа. Я всегда справлялся с этим подключая параллельно вентилятору электролитический конденсатор емкостью от 1000 до 6800 мкФ (зависит от потребляемого тока вентилятором). Вентиляторы естественно подключены через транзисторный ключ.

#3963 oleg_il

oleg_il

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 711
  • Откуда:Israel

Отправлено 21 Февраль 2016 - 13:17

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



#3964 Как то так

Как то так

    Новичок

  • Пользователи
  • Pip
  • Cообщений: 36
  • Меня зовут:Николай
  • Откуда:Краснодар

Отправлено 23 Февраль 2016 - 15:44

Всех с праздником !!!!!!


  • Filter это нравится

#3965 Andrey66

Andrey66

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 1 286
  • Меня зовут:Андрей
  • Откуда:Саратов

Отправлено 24 Февраль 2016 - 09:48

Согласен, Олег, с 11-битным скетчем проблем нет. Кстати твой скетч работает у меня уже около двух лет и не одного сбоя в работе не было. Контроллер собран в отдельном корпусе и подключен короткими проводами. Просто у меня есть блок из пятнадцати 12 см. вентиляторов скрученных в одну решетку, я их использую летом для проветривания комнаты. Так вот подключены они через радиокнопку для управления яркостью светодиодных лент. В блоке управления я заменил выходной мосфет на более мощный и поставил его на радиатор. Долго боролся с гудением вентиляторов на разной частоте заполнения ШИМ. Помогла установка электролитов на 30 000 мкФ.

#3966 oleg_il

oleg_il

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 711
  • Откуда:Israel

Отправлено 24 Февраль 2016 - 13:18

 Так вот подключены они через радиокнопку для управления яркостью светодиодных лент.

 

Тогда да, без конденсаторов будут гудеть, там относительно большая частота для них.



#3967 sergeyaz

sergeyaz

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 327
  • Меня зовут:Сергей
  • Откуда:г.Рига

Отправлено 05 Март 2016 - 14:59

Артефакты появляются и у меня. Пока не отловил этот баг. При отключённом скринсейвере не появляются.

 
У меня скринсейвер крэшился не менее двух раз в неделю. Выглядело это так : остатки цифр скринсейвера на фоне главного экрана.
Лечилось тыканьем в экран. Программа не сбивалась.
Неделю назад подкорректировал несколько процедур - пока ни одного сбоя.

 

Прикрепленные файлы



#3968 eramish

eramish

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 131
  • Откуда:Баку,Азербайджан

Отправлено 10 Март 2016 - 11:29

Привет всем. Обратил внимание, на работу холодильника.Раньше я писал о такой же проблеме на нагревателе. Включение и выключение реагирует на десятые доли градуса.Например задана температура включения нагревателя 25,0 гистерзис 0,5 градус. При опускании температуры на 24,4 включается , как и положено, нагреватель нагревает до 24,5 и отключается.То ли из-за датчика, то ли по какой то другой причине,этот цикл  может в минуту повторится раза 4-5.То же самое с холодильником , при т-ре 25,6 включаются вертушки, 25,5 выключились. За минуту могут  так дергаться раз 5. Можно как-то программно это убрать.Хотелось бы , как на моем примере, при включении нагревателя 24,4 градуса выключался на 25 .ТО же самое с холодильником при включении на 25,6, выключались на 25.Т.е, грубо говоря тащили до заданной температуры. Думаю эти подергивания укорачивают жизнь как нагревателю , так и вертушкам.Я сильно не разбираюсь, но думаю что програмно это возможно



#3969 oleg_il

oleg_il

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 711
  • Откуда:Israel

Отправлено 10 Март 2016 - 11:36

О какой программе речь?



#3970 sergeyaz

sergeyaz

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 327
  • Меня зовут:Сергей
  • Откуда:г.Рига

Отправлено 10 Март 2016 - 11:36

Андрей, посмотри в void TimeSaver 

 

     if (RTC.hour < 10) {
            myGLCD.printNumI(0,80,65);
            myGLCD.printNumI(RTC.hour,115, 65);  
               } else myGLCD.printNumI(RTC.hour,80, 65);
       
      // myGLCD.print(":",CENTER, 65);
       myGLCD.+(156, 75, 164, 83);
       myGLCD.fillRoundRect(156, 93, 164, 101);
   
       if (RTC.minute < 10) {
         myGLCD.printNumI(0,175,65);
            myGLCD.printNumI(RTC.minute,208, 65);
       }else myGLCD.printNumI(RTC.minute,175, 65);
 
 
можно заменить на 
 
        myGLCD.printNumI(RTC.hour, 80, 65, 2, '0');       //Display HOURS      
        myGLCD.print(":",CENTER, 65); 
        myGLCD.printNumI(RTC.minute, 175, 65, 2, '0');    //Display MINUTES
 
и "сопля" около цифр не появляется ...
я так понимаю fillRoundRect ее и убирал


#3971 Akorg

Akorg

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 1 321
  • Меня зовут:Андрей
  • Откуда:Рязань

Отправлено 10 Март 2016 - 11:55

О какой программе речь?

Судя по симптомам, о моей :)

Есть такой косяк с нагревом - охлаждением. Я на него забил, так как температуру держит нормально. Да и релюшки твердотельные стоят. Не щелкают. Я по началу, даже и не знал, что оно так часто иногда включается.  :)



#3972 Akorg

Akorg

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 1 321
  • Меня зовут:Андрей
  • Откуда:Рязань

Отправлено 10 Март 2016 - 11:59

 

Андрей, посмотри в void TimeSaver 

 

    

Спасибо. Не копал так глубоко. Исправлю.

Вижу еще одного конкретно засосало в программирование контроллера. :)

Если запала хватит, можем увидеть и еще одну версию программы...



#3973 sergeyaz

sergeyaz

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 327
  • Меня зовут:Сергей
  • Откуда:г.Рига

Отправлено 10 Март 2016 - 12:08

Спасибо. Не копал так глубоко. Исправлю.

Вижу еще одного конкретно засосало в программирование контроллера. :)

Если запала хватит, можем увидеть и еще одну версию программы...

Ну до своей версии мне далеко как до луны. Просто есть желание чем-то помочь.

А то все на халяву, да на халяву   :)



#3974 avp8853

avp8853

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 146
  • Откуда:Пятигорск

Отправлено 10 Март 2016 - 12:26

Ну и я немного,

Все кнопки можно переделать так

ПРИМЕР

void ButtonSave(void){ strcpy_P(buffer, (char*)pgm_read_word_near(&(Text_table[322])));
                    printButton(buffer, prSAVE[0], prSAVE[1], prSAVE[2], prSAVE[3],1,3,3);} // кнопка СОХРАНИТЬ
 
Выводим так
ButtonSave(); // кнопка СОХРАНИТЬ
Экономит много места.


#3975 avp8853

avp8853

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 146
  • Откуда:Пятигорск

Отправлено 10 Март 2016 - 12:29

 

Андрей, посмотри в void TimeSaver 

 

     if (RTC.hour < 10) {
            myGLCD.printNumI(0,80,65);
            myGLCD.printNumI(RTC.hour,115, 65);  
               } else myGLCD.printNumI(RTC.hour,80, 65);
       
      // myGLCD.print(":",CENTER, 65);
       myGLCD.+(156, 75, 164, 83);
       myGLCD.fillRoundRect(156, 93, 164, 101);
   
       if (RTC.minute < 10) {
         myGLCD.printNumI(0,175,65);
            myGLCD.printNumI(RTC.minute,208, 65);
       }else myGLCD.printNumI(RTC.minute,175, 65);
 
 
можно заменить на 
 
        myGLCD.printNumI(RTC.hour, 80, 65, 2, '0');       //Display HOURS      
        myGLCD.print(":",CENTER, 65); 
        myGLCD.printNumI(RTC.minute, 175, 65, 2, '0');    //Display MINUTES
 
и "сопля" около цифр не появляется ...
я так понимаю fillRoundRect ее и убирал

 

Вроде правильней

myGLCD.printNumI(RTC.hour, 80, 65, 2, '00');       //Display HOURS 
        myGLCD.print(":",CENTER, 65); 

        myGLCD.printNumI(RTC.minute, 175, 65, 2, '00');    //Display MINUTES



#3976 sergeyaz

sergeyaz

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 327
  • Меня зовут:Сергей
  • Откуда:г.Рига

Отправлено 10 Март 2016 - 12:44

Вроде правильней

myGLCD.printNumI(RTC.hour, 80, 65, 2, '00');       //Display HOURS 
        myGLCD.print(":",CENTER, 65); 

        myGLCD.printNumI(RTC.minute, 175, 65, 2, '00');    //Display MINUTES

 

тот пример, что я привел работает,

а в надо указывать ту цифру, которая дополняет до 2х знаков слева - это у нас '0'

т.е если у нас 3 часа, то плучается 03



#3977 oleg_il

oleg_il

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 711
  • Откуда:Israel

Отправлено 10 Март 2016 - 13:32

Судя по симптомам, о моей :)

Есть такой косяк с нагревом - охлаждением. Я на него забил, так как температуру держит нормально. Да и релюшки твердотельные стоят. Не щелкают. Я по началу, даже и не знал, что оно так часто иногда включается.  :)

Значит просто гистерезис неправильно считается. Тогда проверь формулу, сам понимаешь, несложно.  :)



#3978 avp8853

avp8853

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 146
  • Откуда:Пятигорск

Отправлено 10 Март 2016 - 13:49

тот пример, что я привел работает,

а в надо указывать ту цифру, которая дополняет до 2х знаков слева - это у нас '0'

т.е если у нас 3 часа, то плучается 03

Ну дело хозяйское, мой тоже работает.



#3979 Andrey66

Andrey66

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 1 286
  • Меня зовут:Андрей
  • Откуда:Саратов

Отправлено 10 Март 2016 - 14:04

quote name="eramish" post="385122"

С проблемой частого включения/выключения нагревателя можно бороться без изменения прошивки.
Аквариум сам по себе достаточно инертная система и достаточно поставить грелку меньшей мощности или отодвинуть термодатчик от нее подальше. У меня в трех аквариумах так работает уже очень давно. Частых включений/выключений не видел.

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

#3980 eramish

eramish

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 131
  • Откуда:Баку,Азербайджан

Отправлено 10 Март 2016 - 14:09

quote name="eramish" post="385122"

С проблемой частого включения/выключения нагревателя можно бороться без изменения прошивки.
Аквариум сам по себе достаточно инертная система и достаточно поставить грелку меньшей мощности или отодвинуть термодатчик от нее подальше. У меня в трех аквариумах так работает уже очень давно. Частых включений/выключений не видел

Грелка и холодильник в сампе, датчик в дисплее.На мой взгляд достаточно далеко друг от друга)))






Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных

Ветка управляется: