Перейти к контенту
МОРСКОЙ АКВАРИУМ - форум Аква Лого

Оформление Хотите украсить аквариумом помещение, чтобы и сам аквариум, и его содержание вписывались в стиль комнаты? В статье мы расскажем, как самостоятельно оформить аквариум растениями, камнями и корягами с примерами. Пошаговая инструкция для начинающего аквариумиста.
Несколько лет назад я в своём блоге задал читателям загадку, показав картинку стеклянного приспособления из второго тома «Аквариума Любителя» Н.Ф. Золотницкого 1910 года издания. А вы угадаете?
svyaz

DIY 6-Канальный контроллер LED c тач-панелью "3.2"

Рекомендуемые сообщения

Привет, да, перевод отправил, но нужно будет подкорректировать перевод (уже скетч) в зависимости от оставшегося свободного места на экране, зачем сильно сокращать, если есть возможность еще пару букв втиснуть.

 

Нового пока особо нет ни чего, про те, что есть, у Александра Авдеева не получалось скомпилировать, уже получилось ?

 

Это подключение относится к моему скетчу, если так не устраивает, можно самому переназначить как удобно.

------------ светодиоды -----------

pin 7 - канал LED White (белый)

pin 8 - канал LED Blue (голубой)

pin 9 - канал LED RoyalBlue (темно-синий)

pin 10 - канал LED Red (красный)

pin 11 - канал LED UV (фиолетовый)

pin 12 - канал LED Orange (оранжевый)

pin 13 - Луна

Зеленый канал на 14 пине не будет работать как PWM, нужно поменять его с луной, назначить 13 пин, либо переподключить тач-панель на другие пины, так, как свободных пинов с ШИМ уже не осталось.

------------- таймеры --------------

A0 - Таймер 1

A1 - Таймер 2

A2 - Таймер 3

A3 - Таймер 4

A4 - Таймер 5

 

A5 - Автокормушка

A6 - Нагреватель on/off

A7 - Холодильник on/off

 

pin 42 - Hydor Koralia (помпа 1)

pin 43 - Hydor Koralia (помпа 2)

pin 44 - Управление PWM Вентелятором основного освещения (частота = 25kHz)

pin 45 - Управление PWM Вентелятором В сампе (частота = 25kHz)

pin 47 - Вентелятор на радиаторе основного освещения on/off

pin 48 - Вентелятор на радиаторе Sump on/off

pin 49 - Buzzer

 

pin 19 - DS18B20 (все 3 датчика параллельно)

 

Схемы на первой странице

На какие тогда выводы подключать TFT 3.2 SSD1289. Если они уже используются 46,45,44,43,42.

Поделиться этим сообщением


Ссылка на сообщение

На какие тогда выводы подключать TFT 3.2 SSD1289. Если они уже используются 46,45,44,43,42.

Если использовать готовый согласующий экран шилд, то без перепаивания, по-другому кроме как на пины 38,39,40,41, не будет работать.

И то этими пинами мы указываем сигналы RS, WR, CS, RST, а еще есть DB0-DB15 и Reset

В левой колонке пины экрана, в правой пины ардуино, тач-панель (для экономии шим выводов) подключена не к пинам 6,5,4,3,2 а к 46,45,44,43,42

Но нужно учитывать, что на пинах 44,45,,46 находятся таймеры OC5C,OC5B,OC5A которые в оригинале управляют шим вентиляторов на частоте 25kHz и либо перенести сигналы экрана на другие свободные пины, либо не использовать шим вентиляторов, а только вкл/выкл.

 

post-972-1352662859_thumb.jpg

Поделиться этим сообщением


Ссылка на сообщение

Oleg_il я не могу писать приватные сообщения, скиньте в личку, пожалуйста, цену Вашего шилда и условия получения.

Поделиться этим сообщением


Ссылка на сообщение

Алексей, у тебя отключена личка и на прием, проверь состояние "ящика" или установки. :tuplu:

Поделиться этим сообщением


Ссылка на сообщение

По новым правилам, личка включается только по достижении 30 сообщений.

Поделиться этим сообщением


Ссылка на сообщение

Если использовать готовый согласующий экран шилд, то без перепаивания, по-другому кроме как на пины 38,39,40,41, не будет работать.

И то этими пинами мы указываем сигналы RS, WR, CS, RST, а еще есть DB0-DB15 и Reset

В левой колонке пины экрана, в правой пины ардуино, тач-панель (для экономии шим выводов) подключена не к пинам 6,5,4,3,2 а к 46,45,44,43,42

Но нужно учитывать, что на пинах 44,45,,46 находятся таймеры OC5C,OC5B,OC5A которые в оригинале управляют шим вентиляторов на частоте 25kHz и либо перенести сигналы экрана на другие свободные пины, либо не использовать шим вентиляторов, а только вкл/выкл.

 

post-972-1352662859_thumb.jpg

 

Спасибо за ответ. Есть еще вопрос по питанию TFT. Я испльзую вот этот.http://www.aqualogo.ru/phpbb2/index.php?act=Attach&type=post&id=123157

Мне надо подать питания на выв.2 TFT 5В, выв.6 TFT 3,3В, и на выв.19 TFT через резистор 100ом 3,3в. Это будет правильно?

Поделиться этим сообщением


Ссылка на сообщение

Спасибо за ответ. Есть еще вопрос по питанию TFT. Я испльзую вот этот.http://www.aqualogo.ru/phpbb2/index.php?act=Attach&type=post&id=123157

Мне надо подать питания на выв.2 TFT 5В, выв.6 TFT 3,3В, и на выв.19 TFT через резистор 100ом 3,3в. Это будет правильно?

Шилд я так понимаю будет самодельный ?

Да, все правильно, только подсветку экрана (выв.19 TFT) лучше подключить через 10ом - картинка намного лучше, чем у меня было до этого 80ом.

В первом сообщении есть распиновка экрана.

Поделиться этим сообщением


Ссылка на сообщение

Алексей, у тебя отключена личка и на прием, проверь состояние "ящика" или установки. :tuplu:

Я даже личные данные изменить не могу. Надеюсь это можно - PshenichnikovAV@mail.ru может сюда пришлете?

 

P.S. У меня все заработало, огочает тепловыделение на плате, но это буду решать, видимо с 9 вольт перейду на 7. Жаль, что ступеньки при изменении интенсивности света резкие, а не размазаны по 15 минутному интервалу.

Изменено пользователем Алексей Пшеничников (см. историю изменений)

Поделиться этим сообщением


Ссылка на сообщение
P.S. У меня все заработало, огочает тепловыделение на плате, но это буду решать, видимо с 9 вольт перейду на 7. Жаль, что ступеньки при изменении интенсивности света резкие, а не размазаны по 15 минутному интервалу.

:)

 

Да, с 12в стабилизатор меги перегревается. Снижай до 7-9в.

Насчет ступенек - ты просто не понял, это недостаток графического интерфейса. На самом деле яркость вычисляется как среднее арифметическое между двк=умя временными интервалами, поэтому резкие скачки там невозможны. Т.е например если ты поставишь 1ю 15мин секцию в 0, а вторую в максимум 255,

то яркость возрастет с 0 и до 255 за 15минут. Это самый резкий скачок что возможен.

Остальное ответил на почту.

;)

Поделиться этим сообщением


Ссылка на сообщение

Насчет ступенек - ты просто не понял, это недостаток графического интерфейса. На самом деле яркость вычисляется как среднее арифметическое между двк=умя временными интервалами, поэтому резкие скачки там невозможны. Т.е например если ты поставишь 1ю 15мин секцию в 0, а вторую в максимум 255,

то яркость возрастет с 0 и до 255 за 15минут. Это самый резкий скачок что возможен.

Остальное ответил на почту.

Странно, но я отчетливо вижу. Поставил для проверки 2 крайних значения - сейчас гляну.

P.S. есть, прыгает по несколько %, т.е. не совсем плавно, а раз в минуту.

Изменено пользователем Алексей Пшеничников (см. историю изменений)

Поделиться этим сообщением


Ссылка на сообщение

Мы вообще о чем? О какой программе.

Я сказал как сделанно в оригинальной программе Jarduino ( Джейми).

И отсчеты там 5 секундные, а не раз в минуту.

А ты о чем?

Поделиться этим сообщением


Ссылка на сообщение

И я о ней.

Стою перед контроллером смотрю на свет диодов и в контроллер. Раз в минуту происходит изменение % от силы света и диоды скачком увеличивают мощность.

Но у меня были первые неприятности с запуском, может ардуино накрылся...

Поделиться этим сообщением


Ссылка на сообщение

Попробую описать как все работает.

Сутки (24часа) разделены на минуты, получается 1440 минут if (min_cnt>=1440) {min_cnt=1;}(смотрим секцию LED LEVELS)

Изминение уровней происходит каждую минуту min_cnt= (t.hour*60)+t.min; (смотрим в главном цикле)

Обновление графики в главном экране происходит каждые 5 секунд if (currentMillis - previousMillisFive > 5000){

Для проверки, в главный цикл пишем следующий код:

 

Serial.print(F("Time: "));

Serial.println(rtc.getTimeStr(FORMAT_LONG)); // время

Serial.print(F(" >Wh-")); Serial.print(int(wled_out)); // White

Serial.print(F(" >Bl-")); Serial.print(int(bled_out)); // Blue

Serial.print(F(" >RB-")); Serial.print(int(rbled_out)); // RBlue

Serial.print(F(" >Re-")); Serial.print(int(rled_out)); // Red

Serial.print(F(" >Uv-")); Serial.print(int(uvled_out)); // UV

Serial.print(F(" >Or-")); Serial.print(int(orange_out));// Orange

Serial.print(F(" >Gr-")); Serial.print(int(grled_out)); // Green

Serial.print(F(" .. ")); Serial.println(min_cnt);

 

В мониторе порта включаем NL и CR вместе и автопрокрутку и наблюдаем следующую картину:

Обновление - каждые 5 секунд

 

post-972-1352836102_thumb.jpg

Поделиться этим сообщением


Ссылка на сообщение

Подскажите. Не могу откомпелировать скетч Jarduino 1_2.

Выдает такие ошибки

post-19378-1352841021_thumb.jpg

Поделиться этим сообщением


Ссылка на сообщение
Подскажите. Не могу откомпелировать скетч Jarduino 1_2.

Выдает такие ошибки

 

Выглядит так, что все ошибки оттого, что компилятор видит несколько копий одних и тех же файлов с определениями переменных. Похоже рядом положили два проекта: стандартный и с _Graph16

Удалите один из них- все встанет на места.

Изменено пользователем netscape (см. историю изменений)

Поделиться этим сообщением


Ссылка на сообщение
Попробую описать как все работает.

Сутки (24часа) разделены на минуты, получается 1440 минут if (min_cnt>=1440) {min_cnt=1;}(смотрим секцию LED LEVELS)

Изминение уровней происходит каждую минуту min_cnt= (t.hour*60)+t.min; (смотрим в главном цикле)

Обновление графики в главном экране происходит каждые 5 секунд if (currentMillis - previousMillisFive > 5000){

Для проверки, в главный цикл пишем следующий код:

 

Serial.print(F("Time: "));

Serial.println(rtc.getTimeStr(FORMAT_LONG)); // время

Serial.print(F(" >Wh-")); Serial.print(int(wled_out)); // White

Serial.print(F(" >Bl-")); Serial.print(int(bled_out)); // Blue

Serial.print(F(" >RB-")); Serial.print(int(rbled_out)); // RBlue

Serial.print(F(" >Re-")); Serial.print(int(rled_out)); // Red

Serial.print(F(" >Uv-")); Serial.print(int(uvled_out)); // UV

Serial.print(F(" >Or-")); Serial.print(int(orange_out));// Orange

Serial.print(F(" >Gr-")); Serial.print(int(grled_out)); // Green

Serial.print(F(" .. ")); Serial.println(min_cnt);

 

В мониторе порта включаем NL и CR вместе и автопрокрутку и наблюдаем следующую картину:

Обновление - каждые 5 секунд

 

Тем не менее "ступенька" между уровнями вполне заметна глазу, особенно на низкой яркости каналов. думаю это и имелось в виду Алексеем.

Поделиться этим сообщением


Ссылка на сообщение

Подскажите. Не могу откомпелировать скетч Jarduino 1_2.

Выдает такие ошибки

Посмотрите, правильно ли выбран чип.

 

post-972-1352842686_thumb.jpg

Поделиться этим сообщением


Ссылка на сообщение

Тем не менее "ступенька" между уровнями вполне заметна глазу, особенно на низкой яркости каналов. думаю это и имелось в виду Алексеем.

Абсолютно верно, казалось, я понятно написал :hmmm:

Поделиться этим сообщением


Ссылка на сообщение

Тем не менее "ступенька" между уровнями вполне заметна глазу, особенно на низкой яркости каналов. думаю это и имелось в виду Алексеем.

 

для уменьшения ступенчатости надо:

 

увеличить разрядность ШИМ + пересчитывать уровень чаще одной минуты.

 

причем, для уменьшения ступенчатости на низких уровнях ШИМ, необходимо использовать именно и большую разрядность ШИМ (штатная 8 бит) и плавнее менять (чаще чем раз в минуту) одновременно.

ибо низкая разрядность не позволяет оперировать "микротоками", а грубое приращение уровня сведет на нет и 10-12 битные ШИМы.

 

также частота ШИМа желательна именно низкой, ибо высокочастотные ШИМы также не обеспечат приемлеемую плавность рассветов и закатов на низких уровнях.

 

в принципе и все эти действия не гарантируют, что вы не увидите ступеньки.... а оно надо?

это не так критично :) но если хочется заморочиться, можно поэкпериментировать, да еще и попробовать менять частоту ШИМа в зависимости от уровня, к примеру сигнал с малой скважностью выдавать на низкой частоте 100-200 Гц, далее с увеличением уровня, частоту можно и поднять... это гиморрно, но возможно... но моё личное имха: в сад

Поделиться этим сообщением


Ссылка на сообщение

в принципе и все эти действия не гарантируют, что вы не увидите ступеньки.... а оно надо?

 

При 8 бит ШИМ ступеньки очень сильно видны, особенно когда идет закат.

 

Для себя переписал код ШИМ, сделал по счету до 2000, ну и у меня другие таймеры.

Теперь ступенек вообще не замечаю, специально сидел, всматривался.

P.S. Ну и перерасчет каждую секунду.

 

TCCR5A = B00000010; // mode 14Fast PWM

TCCR5B = B00011010; //8no prescalering

TCCR4A = B00000010; // mode 14Fast PWM

TCCR4B = B00011010; //8no prescalering

OCR5A = 0;

OCR5B = 0;

OCR5C = 0;

OCR4A = 0;

OCR4B = 0;

OCR4C = 0;

ICR5 = 2000;

ICR4 = 2000;

Поделиться этим сообщением


Ссылка на сообщение

При 8 бит ШИМ ступеньки очень сильно видны, особенно когда идет закат.

 

Для себя переписал код ШИМ, сделал по счету до 2000, ну и у меня другие таймеры.

P.S. Ну и перерасчет каждую секунду.

 

все правильно, аналогично можно сделать для Т1 и Т3

 

зы: за счет ICRx и можно варьировать частоту ШИМа (в некоторой степени вместе с разрядностью, тобишь зависимо) в купе с prescale

Поделиться этим сообщением


Ссылка на сообщение
При 8 бит ШИМ ступеньки очень сильно видны, особенно когда идет закат

Ты хочешь сказать что если я поставлю прирост в 1бит/минута, то это видно?

 

Для себя переписал код ШИМ, сделал по счету до 2000, ну и у меня другие таймеры. Теперь ступенек вообще не замечаю, специально сидел, всматривался.

Т.е ты сделал "почти" 11битный шим, так? Аппаратный или программный?

Поделиться этим сообщением


Ссылка на сообщение

Ты хочешь сказать что если я поставлю прирост в 1бит/минута, то это видно?

 

При 8-ми битном шиме, да. Но только при значениях меньше 10, выше уже не так критично.

 

 

Тут два момента:

1) 8 битный шим, 256 значений. Минимальное значение 1, леды при этом светят еще достаточно ярко(по крайней мере луна мне не нравилась). При 11битном шиме(у меня 2000, это близко к 2048) такое же значение яркости это 8. У меня к примеру луна это значение 1 при шиме 11(12 ледов).

Аквариум кажется темным, но если подойти поближе, то видны очертания камней.

 

2) Насчет менять в минуту или по секундам. У меня за 15 минут может измениться значение света к примеру с 25 до 50(с 3-х до 6 при 8-ми бит шиме достаточно менять раз в минуту) в моем случае, чтобы было плавно а не 25 27 29, я провожу расчет по секундам, если значение меняется на 1-цу, то обновляю порты таймеров.

 

 

Т.е ты сделал "почти" 11битный шим, так? Аппаратный или программный?

 

аппаратно, это один из режимов работы таймеров.

Поделиться этим сообщением


Ссылка на сообщение

2Oleg_il

 

аппаратные ШИМы 16ти разрядных таймеров AVR могут работать как:

- 8 битные

- 9 битные

- 10 битные

- 16 битные по "окну" регистра сравнения OCRAn (счет идет до значения OCRAn, потом с нуля)

- 16 битные по "окну" спец.регистра ICRn (счет идет до значения ICRn, потом с нуля)

 

т.е. разрядность ШИМов может быть хоть 2 бита, хоть 16.

естественно без надобности тратить OCRAn нет нужды, раз есть ICRn

 

т.о. с чипа atmega2560(1280) можно снять 12 аппаратных ШИМ с любой разрядностью до 16ти

 

зы: ну плюс еще 3 ШИМа останется 8ми битных (полностью Т2 и половинка Т0), т.о. всего 15

Изменено пользователем Kiraso (см. историю изменений)

Поделиться этим сообщением


Ссылка на сообщение

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти

×
×
  • Создать...