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

Содержание Помимо широко распространенных и известных маисовых полозов есть и другие, не менее интересные, но менее раскрученные виды полозов. Это, например, лучистые, островные, крысиные, тонкохвостые и краснохвостые, сарматские и двупятнистые, крысиные и бамбуковые полозы, а так же полоз Шренка. Расскажем о разновидностях полозов и содержании их дома в террариуме.
Аквариумисты моего поколения прекрасно помнят, как везли рыбок с «Птичьего рынка» или из зоомагазина на Арбате домой в 70-е годы прошлого века. В литровой банке, замотанной в шарф и засунутой под куртку.

Alex67Z

Моряки
  • Число публикаций

    55
  • Регистрация

  • Последнее посещение

Весь контент пользователя Alex67Z

  1. Алекс! Спасибо за подсказку: if ( ( millis() % 1000 ) == 0 ) //вызов раз в секунду, читаем температуру и обновляем экран { Temp_read(); //читаем температуру Screen_out(); //обновляем экран } В итоге сделал отдельный блок для температуры и датчиков, все нормально работает!!!! Basopotam Для i2c использовалась такая шняга? http://www.ebay.com/...=item4d05d53c27 Нет. По i2c подключил так - http://jt5.ru/examples/oled-i2c/ Там все расписано.
  2. Вот если бы она еще работал))) Было бы .... круто)))) Вот в настоящий момент дисплей ничего не показывает. На serial.print - шим начинает переходить в "закат" и уменьшать значения. Т.е основная программа работает, а вот все что вокруг...))) Кнопки распаены через резисторы. Если только поочередно - кнопок - 5 штук. Да, по поводу релюх забыл.... 4 релюхи управление - 5 вольт. А уровни - герконовые, черз резистор на 5 в. При замыкании - на общий (землю). Это все на коленках, на плате монтажной)) По отдельности - все работает. А вот вместе((( По поводу библиотек - библиотеки те, что Алекс давал + : DallasTemperature.zip LiquidCrystal_I2C.zip Все работает в версии - 1.0 Мдя.... для меня темный лес.... переменные((
  3. Basopotam По поводу "мегаконтроллера" - согласен. Слишком много всего.... Дтчики температупы - DS18B20. А если по порядку)) Arduino Uno, LCD Keypad Shield DFRobot (это LCD с кнопками. Сверху уны ставить удобно, а вот если хочешь использовать выходы на ардуино по полной, то он нафиг не нужен)), тем более при подключении его по I2C, у него RW на землю запаян, так что без напильника не обойтись - надо отрывать), часы 1307. LCD подключен по I2C через микросхему PCF8574. Сначала запускал часы, датчики температуры.... Потом пытался объединить скетчи. В итоге заработало только так: // Подключение необходимых библиотеки #include <Wire.h> #include "RTClib.h" #include <OneWire.h> #include <DallasTemperature.h> // Датчик (или датчики) подключаются к пину 2 Ардуины #define ONE_WIRE_BUS 2 // настройка «onewire» для работы с любыми другими девайсами (не только Dallas датчиками температуры) OneWire oneWire(ONE_WIRE_BUS); // подключаем Dallas Temperature. DallasTemperature sensors(&oneWire); // подключение библиотеки для LCD через PCF8574 #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x38,16,2); // «0х38» адрес LCD int k=0; // назначение для переменной при нажатии кнопок int u=0; // назначение 2-й переменной для датчика уровня int v=0; // назначение 3-й переменной для охлаждения воды int Relay1=7; // вентилятор охлаждения радиатора, назначаем 7-й выход int Relay2=8; // включение «луны», назначаем 8 выход byte Relay1Status=false; byte Relay2Status=false; int Relay3 = 4; // вентилятор охлаждения воды, назначаем 4-й выход int Relay4 = 12; // автодолив, назначаем 12-й выход RTC_DS1307 RTC; // назначаем время восходов и закатов, выходы PWM int Hours_Start_Sunrise[6] = {11, 9, 10, 11, 12, 12}; // начало рассвета по каналам час int Minutes_Start_Sunrise[6] = {0, 0, 0, 0, 0, 0}; // начало рассвета по каналам минута int Hours_End_Sunrise[6] = {15, 12, 13, 14, 15, 15}; // окончание рассвета по каналам час int Minutes_End_Sunrise[6] = {0, 0, 0, 0, 0, 0}; // окончание рассвета по каналам минута int Hours_Start_Sunset[6] = {17, 20, 19, 18, 17, 17}; // начало заката по каналам час int Minutes_Start_Sunset[6] = {0, 0, 0, 0, 0, 0}; // начало заката по каналам минута int Hours_End_Sunset[6] = {21, 23, 22, 21, 21, 21}; // окончание заката по каналам час int Minutes_End_Sunset[6] = {0, 0, 0, 0, 0, 0}; // окончание заката по каналам минута int MinuteDay_Start_Sunrise[6]; // день в минутах для начала рассвета int MinuteDay_End_Sunrise[6]; // день в минутах для окончания рассвета int MinuteDay_Start_Sunset[6]; // день в минутах для начала заката int MinuteDay_End_Sunset[6]; // день в минутах для окончания заката int Current_MinuteDay; // текущая минута суток int Current_Period[6]; // текущая часть суток 1-рассвет, 2-день, 3-закат, 4-ночь для каждого ШИМ int Meridian_PWM[6] = {128, 128, 128, 128, 128, 76}; // макс. значение ШИМ 50% на все каналы, 76% на Red int Midnight_PWM[6] = {0, 0, 0, 0, 0, 0}; // минимальное значение ШИМ int Current_PWM[6] = {0, 0, 0, 0, 0, 0}; // текущее значение ШИМ /* *********************************************************/ /* * * */ /* * ШИМ пин для CW, TV, RB, NB, CY, DR * */ /* * Пин - 3 - CW - Cool White * */ /* * Пин - 5 - TV - True Violet * */ /* * Пин - 6 - RB - Royal Blue * */ /* * Пин - 7 - NB - Blue * */ /* * Пин - 10 - CY – Cyan * */ /* * Пин - 11 - DR - DeepRed * */ /* * * */ /* *********************************************************/ int PWM_Pin[6] = {3, 5, 6, 9, 10, 11}; // назначение PWM выходов для CW, TV, RB, NB, CY, DR void setup () { lcd.init(); lcd.backlight(); Serial.begin(57600); Wire.begin(); RTC.begin(); sensors.begin(); pinMode(A0, INPUT); // настраиваем аналоговый вход A0 pinMode(A1, INPUT); // настраиваем аналоговый вход A1 // назначаем на 7-м и 8-м пинах уровени pinMode(Relay1, OUTPUT); pinMode(Relay2, OUTPUT); digitalWrite(Relay1, LOW); digitalWrite(Relay2, HIGH); // назначаем на 4-м и 12-м пинах (пины реле) низкий уровень pinMode(Relay4, OUTPUT); digitalWrite(Relay4, LOW); pinMode(Relay3, OUTPUT); digitalWrite(Relay3, LOW); if (! RTC.isrunning()) { lcd.setCursor(0, 0); lcd.print("RTC no time"); //строчка ниже – установка времени (для установки – убрать комм. и установить дату и время) //RTC.adjust(DateTime(__DATE__, __TIME__)); } for (int i=0; i<=5; i++) { pinMode(PWM_Pin[i], OUTPUT); // Установка пин для ШИМ } for (int i=0; i<=5; i++) { analogWrite(PWM_Pin[i], Midnight_PWM[i]); // Установка минимального значения ШИМ Current_PWM[i]=Midnight_PWM[i]; // Установка текущих значений ШИМ в минимум } for (int i=0; i<=5; i++) { MinuteDay_Start_Sunrise[i]=60*Hours_Start_Sunrise[i] + Minutes_Start_Sunrise[i]; // Расчет минуты суток для начала рассвета MinuteDay_End_Sunrise[i]=60*Hours_End_Sunrise[i] + Minutes_End_Sunrise[i]; // Расчет минуты суток для окончания рассвета MinuteDay_Start_Sunset[i]=60*Hours_Start_Sunset[i] + Minutes_Start_Sunset[i]; // Расчет минуты суток для начала заката MinuteDay_End_Sunset[i]=60*Hours_End_Sunset[i] + Minutes_End_Sunset[i]; // Расчет минуты суток для окончания заката } } // Процедура расчета текущего периода и значения PWM по каналам void Led_Dim_PWM() { DateTime now = RTC.now(); Current_MinuteDay = (now.hour() * 60) + now.minute(); for (int i=0; i<=5; i++) { Current_Period[i]=4; if (Current_MinuteDay>=MinuteDay_Start_Sunrise[i] && Current_MinuteDay<=MinuteDay_End_Sunrise[i]) { Current_Period[i]=1; } if (Current_MinuteDay>MinuteDay_End_Sunrise[i] && Current_MinuteDay<MinuteDay_Start_Sunset[i]) { Current_Period[i]=2; } if (Current_MinuteDay>=MinuteDay_Start_Sunset[i] && Current_MinuteDay<=MinuteDay_End_Sunset[i]) { Current_Period[i]=3; } if (Current_Period[i]==1) { Current_PWM[i]=(float)(((float)Current_MinuteDay-MinuteDay_Start_Sunrise[i])/((float)MinuteDay_End_Sunrise[i]-MinuteDay_Start_Sunrise[i]))*((float)Meridian_PWM[i]-Midnight_PWM[i]); if (Current_PWM[i]<Midnight_PWM[i]) { Current_PWM[i]=Midnight_PWM[i]; } analogWrite(PWM_Pin[i], Current_PWM[i]); } if (Current_Period[i]==2) { if (Current_PWM[i]!=Meridian_PWM[i]) { Current_PWM[i]=Meridian_PWM[i]; analogWrite(PWM_Pin[i], Current_PWM[i]); } } if (Current_Period[i]==3) { Current_PWM[i]=(float)(((float)MinuteDay_End_Sunset[i]-Current_MinuteDay)/((float)MinuteDay_End_Sunset[i]-MinuteDay_Start_Sunset[i]))*((float)Meridian_PWM[i]-Midnight_PWM[i]); analogWrite(PWM_Pin[i], Current_PWM[i]); } if (Current_Period[i]==4) { if (Current_PWM[i]!=Midnight_PWM[i]) { Current_PWM[i]=Midnight_PWM[i]; if (Current_PWM[i]<Midnight_PWM[i]) { Current_PWM[i]=Midnight_PWM[i]; } analogWrite(PWM_Pin[i], Current_PWM[i]); } } } Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(' '); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.print(now.second(), DEC); Serial.print(" Current_MinuteDay: "); Serial.print(Current_MinuteDay, DEC); Serial.println(); for (int i=0; i<=5; i++) { Serial.print("Channel #"); Serial.print(i, DEC); Serial.print(", Current Period: "); if (Current_Period[i]==1) {Serial.print("Sunrise");} if (Current_Period[i]==2) {Serial.print("Meridian");} if (Current_Period[i]==3) {Serial.print("Sunset");} if (Current_Period[i]==4) {Serial.print("Midnight");} Serial.print(", Current PWM: "); Serial.print(Current_PWM[i], DEC); Serial.println(); } Serial.println(); } void RalayOnOff() { int SumPWM=0; for (int i=0; i<=5; i++) { SumPWM=SumPWM+Current_PWM[i]; } if (SumPWM>=50 && Relay1Status==false) { Relay1Status=true; Relay2Status=false; digitalWrite(Relay1, HIGH); digitalWrite(Relay2, LOW); } if (SumPWM<50 && Relay1Status==true) { Relay1Status=false; Relay2Status=true; digitalWrite(Relay1, LOW); digitalWrite(Relay2, HIGH); } } void loop () { { Led_Dim_PWM(); RalayOnOff(); } DateTime now = RTC.now(); sensors.requestTemperatures(); // запрос показаний температуры k=analogRead(0); // значение «k» равно аналоговому входу A0 u=analogRead(1); // значение «u» равно аналоговому входу A1 if (u<10) // при срабатывании датчика уровня, на выходе 4 устанавливается высокий уровень { digitalWrite(Relay4, HIGH); delay(3000); } else if (u>=10) // при срабатывании датчика уровня, на выходе 4 устанавливается низкий уровень { digitalWrite(Relay4, LOW); } v=sensors.getTempCByIndex(1); // переменной "v" присваивается темп. 1-го датчика (Т воды) if (v>=28) // если температура поднимается до 28 градусов, срабатывает реле на вентилятор охлаждения { digitalWrite(Relay3, HIGH); } else if (v<26) // если температура опускается до 26 градусов, вентилятор выключается { digitalWrite(Relay3, LOW); } if (k>1000) // если кнопки не нажаты, то высвечивается время и данные по температуре { lcd.setCursor(0, 0); lcd.print(now.hour(), DEC); lcd.print(":"); lcd.print(now.minute(), DEC); lcd.print(":"); lcd.print(now.second(), DEC); lcd.print(" "); lcd.setCursor(0, 1); lcd.print("A="); // температура аквариума lcd.setCursor(2, 1); lcd.print(sensors.getTempCByIndex(0)); // первый датчик в воде lcd.print(" "); lcd.setCursor(8, 1); lcd.print("R="); // температура на радиаторе lcd.setCursor(10, 1); lcd.print(sensors.getTempCByIndex(1)); // второй датчик на радиаторе } } Понимаю, что не очень красиво)) В комментариях расписано - что и для чего))) Алекс! Можете помочь? Вот куда это: [color=#000088]if[/color] [color=#666600]([/color] [color=#666600]([/color] millis[color=#666600]()[/color] [color=#666600]%[/color] [color=#006666]1000[/color] [color=#666600])[/color] [color=#666600]==[/color] [color=#006666]0[/color] [color=#666600])[/color] [color=#880000]//вызов раз в секунду, читаем температуру и обновляем экран[/color] [color=#666600]{[/color] [color=#660066]Temp_read[/color][color=#666600]();[/color] [color=#880000]//читаем температуру[/color] [color=#660066]Screen_out[/color][color=#666600]();[/color] [color=#880000]//обновляем экран[/color] [color=#666600]}[/color] надо пришпилить? Или... как правильно сделать? P.S. Знатоков прошу не шпынять)) Помогите лучше с советом)) Никогда с программированием не дружил)) С паяльником и электрикой - более менее, а вот с программированием.... Надеюсь за офтоп не примут? а то может уже пора ветку по программированию ардуино открывать))
  4. Вообще-то я это к чему спрашивал)) Имеется - Arduino UNO, LCD16x2, часы, датчики температуры... Увидев вашу тему, подумал - вот оно, то, что надо!))) Затрат минимум, эффективность - 100% Скетч с библиотеками запустились сразу. Все нормально работает. Подключаю LCD - по I2C, проблема((( С "delay (60000)", время на дисплее и температура обновляется через минуту(( Убираю delay - все работает нормально. Т.к. в ардуино понимаю, надеюсь пока) мало, возник вопрос - ничего там никуда в память не забивается???)) Так что в итоге работать вообще не будет????))
  5. Добрый день! Проект понравился - просто и доступно! Думаю многие захотят повторить, или использовать какую нибудь часть, просто не все пишут(( Alex_M! У меня вопрос по скетчу - что произойдет, если в void loop () { Led_Dim_PWM(); RalayOnOff(); delay(60000); } убрать прерывание delay(60000)???
  6. Нужен камушек, примерно размеры 15х10х10. Может у кого есть лишний? В мини не хватило... не рассчитал.
  7. Бзик аквариума -фон и пенник. Я заказал в www.orgsteklo-shop.ru синее оргстекло по размеру задней стенки. Там при заказе можно выбрать размер, они режут, привозят. Вырезаешь потом сверху слева и справа для сампа - слив и подача воды. Клеишь герметиком. Единственная проблема - сливать воду, выталкивать камни и живность....
  8. Работает))) Как не удивительно)) Конечно если загрузить - его будет мало(( Поляки на пенник поскупились((
  9. Alex67Z

    Что за зверь? Стромбус?

    Спасибо всем за ответы. А был куплен на Ленинском - как стромбус)))
  10. Может кто нибудь подсказать? Фотки правда не очень(( выполз ночью на стекло, а так в песке сидит или роется. Как стромбус не прыгает, а плавно движется по стеклу)
  11. Подложить просто что-то - не получится(( В том-то все и дело, что уровень воды стоит на уровне слива. Что-бы понизить уровень внутри, надо понизить уровень слива. Сообщающиеся сосуды))
  12. Может у кого-то есть остатки после переделки света??? Пишите в личку.
  13. То что было в максе, трудно назвать пенной и пеником, особенно когда раньше пользовался на другой акве дельтеокм 600-м. Сейчас могу спокойно регулировать до сухой пены краном подачи воздуха. И при этом бьет скимат, а не желтая водичка.
  14. Всем добрый день! Решил написать по поводу доработки пенника в Aquael ReefMaх. Может кому-нибудь, кто уже намучился и пригодится)) В своем первоначальном состоянии – это чистой воды «аппарат для перегонки воды» из одного отсека в другой. Долго ждал, когда же начнет пенить)) Не дождался… ((( Обратился к Sliam по поводу Нептуна для ReefMax, но увы, он их сейчас не делает. Решил подумать, что можно сделать с родным… Конечно самый простой вариант – просто выкинуть)) Но все равно же… интересно и руки чешутся… Основная проблема данного девайса – это высокий уровень воды. Вода доходит до трубки и получается – или он не пенит, когда перекрываешь воздух до конца, или он гонит воду, когда открываешь воздух. Но кроме крана для воздуха ничего у него больше нет… Схематично, это выглядит так (кто имеет данный аквариум, заглядывал во внутрь пенника и понимает, о чем я пишу): Подумал попробовать уменьшить уровень воды в пеннике, при этом перелив воды в другой отсек должен остаться. Для этого надо перенести слив воды в другой отсек немного ниже. И это будет выглядеть так: Я отрезал козырек и внешнюю стенку, приклеил козырек обратно (клей – эпоксин из серии «Момент»), получилось, что при заполнении пенника водой, ее уровень стал ниже – где-то до уровня начала «куполообразной»)) чаши (порядка на 4,5 -5 см). В итоге через минут 15-20 работы, получилось следующее: Минусы – пенник висит выше и задняя крышка не закрывается. Но, все таки это минимальная доработка, когда он пенит и ничего под руками, я имею в виду другие пенники, нет))) P.S. Никогда не думал, что в морском аквариуме можно покрыть стекло краской, которая СТИРАЕТСЯ! При этом стирается, когда проходишь по ней губкой… Не чем-то карябаешь, а именно, просто нажимая губкой промываешь… Будьте осторожнее, когда будете промывать задний отсек.
  15. Добрый день! Красиво получается! Хорошо и приятно что новые жильцы приживаются и раскрылись!!!
  16. Весной хотел начать новую баночку литров на 100. По мотивам AlexLegend http://www.aqualogo.ru/phpbb2/index.php?sh...10613&st=20 В качестве актинников были куплены 2 светодиодные лампы: Aquabeam 500 single - REEF BLUE Длина - 18"/45 см. http://www.urmstonaquatics.com/index.php?a...amp;portrelay=1 Но баночка не сложилась. Лампы лежат мертвым грузом. Так что продам каждую по 4 500 руб. Обе сразу отдам за 8 000 руб. Если кому интересно - пишите в личку.
  17. Клаву забрали. Остался сарк... Предложение в силе. Рассмотрю обмен на мягкоту...
  18. Продам сарк и клавулярию. 1. Сарк - высота где-то 10-15 см, да и шляпка такая же. Цена вопроса - 1500 р. (резать и проращивать на продажу - не по мне, да и негде...) 2. Клавулярия на камне - размеры камня: высота-ширина-длина (это с какой стороны посмотреть :-)) где-то 12-14-16 см. Цена вопроса - 1000 р. Если заинтересовались - пишите в личку.... Живу в Строгино (Твардовского) Фото прилагаю...
  19. Кормушка и Коралия - проданы. Остальное в продаже.
  20. Всем привет. Есть некоторые ненужные вещи: 1. Помпы, все НОВЫЕ, не использовались: a. Hydor Pico 400 (385 л/ч, 0,7 м) – 300 руб. b. Blupower 900 – 600 руб. c. Maxi-Jet 1000 (с труб. Вентури и Pinwheel для MCE 300) – 2 000 руб. Можно использовать, например, для DIY скиммера… 2. Помпа Koralia Nano (в работе была 4 месяца) – 500 руб. 4. Скиммер TMC, V2SKIM- 400 (помпа Rio 2100) – 1 500 руб. Недостатки: Был в работе 6 месяцев. Отсутствует «V2Bubble Stop» Треснут сверху и заклеен стакан для скимата (из-за тугой крышки). 5. Автокормушка Trixie Aqua Pro (новая, была подарена и не пригодилась) – 500 руб. http://www.aqua-shop.ru/product_info.php/c...ucts_quantity/0 Пишите в личку. Если на выходные не отвечу, обязательно всем заинтересованным отвечу в рабочие дни.
  21. ПВХ - забрали. Остались только помпы: Помпы: 1. От нано скиммера Resun SK05 б.у. – 100 руб. 2. Hydor Pico 400 (385 л/ч, 0,7 м) – 300 руб. 3. Blupower 900 – 600 руб. 4. Maxi-Jet 1000 от Deltec MCE300 (подача воздуха, игольчатое) – 2 000 руб. Рассмотрю варианты обмена на живность: - сарки, - ксения, - лобофитум, - синулярия…..
  22. После перестроек, переделок, оценки остатков и понимания того, что много лишнего было глупо куплено … Итак, есть некоторое количество фитинга, труб ПВХ и помпы… ПВХ: 1. Диаметр 32 мм: - труба 2 обрезка по 1,5 м – 70 руб. - уголок 90 гр. 4 шт. – 80 руб. - муфта соединительная 2 шт. – 20 руб. - кран шаровой 1 шт. – 250 руб. Итого: 420 руб. 2. Диаметр 25 мм: - труба 2 обрезка 1,5 м + 1,2 м – 50 руб. - уголок 90 гр. 6 шт. – 100 руб. - муфта соединительная 4 шт. – 40 руб. - тройник 2 шт. – 30 руб. - кран шаровой 1 шт. – 200 руб. Итого: 420 руб. 3. Диаметр 20 мм: - труба 2 обрезка 0,8 м + 0,2 м – бесплатно. - уголок 90 гр. 4 шт. – бесплатно. - тройник 2 шт. – бесплатно. Итого: бесплатно. 4. Диаметр 25 мм: - труба 1 обрезок 1,2 м – бесплатно. - уголок 90 гр. 4 шт. – бесплатно. - тройник 2 шт. – бесплатно. Итого: бесплатно. Желательно забрать сразу всё! Отдам всё в одни руки за 800 руб. Рассмотрю варианты обмена на живность: - сарки, - ксения, - лобофитум, - синулярия….. Помпы: 1. От нано скиммера Resun SK05 б.у. – 100 руб. 2. Hydor Pico 400 (385 л/ч, 0,7 м) – 300 руб. 3. Blupower 900 – 600 руб. 4. Maxi-Jet 1000 от Deltec MCE300 (подача воздуха, игольчатое) – 2 000 руб. Рассмотрю варианты обмена на живность: - сарки, - ксения, - лобофитум, - синулярия…..
  23. Alex67Z

    Tunze 7091

    Дальше - в личку.
  24. Alex67Z

    Tunze 7091

    Добрый день! Новый или использовался? Возьму.
×
×
  • Создать...