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

Краб Краб-вампир, Geosesarma dennerle, происходит родом из Индонезии. Точно не известно, почему он получил такое зловещее обиходное название. Кто-то считает, что это связано с окраской, напоминающей костюмы Дракулы, кто-то связывает это с рисунком в виде летучей мыши на теле. Одно можно сказать точно, по способу питания этот краб ничего общего с вампирами не имеет, хотя и ведет в основном ночной образ жизни.

Судак-тудак

У дороги новый чибис

Идиакант

Alex_M

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

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

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

  • Дней в топе

    6

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

  1. Я вроде выловил всех. :roll: Методы: шило, пинцет, вынимание камней и т.д. Обычно удачная охота одна из 10-15 попыток. Не все вредные, и зависит от размера, хулиганят при размере от 2-3см и более.
  2. Привет! Договорились. Очень надеюсь, приживется и будет расти. :hmmm: Один сидит в своей трубке (не давно обновил веер, растит новый).А другого съели (подозреваю краб)
  3. Спасибо за предупреждение. У меня всегда было обильное кормление, в т.ч. науплии артемии через день. А качество воды, надеюсь, будут поддерживать пенник mce600, водка и бактерии, а также подмены.
  4. Подумал, много ЖК, нет места для новых кораллов и решил удалить часть ЖК. Вот что получилось Камень с зоантусами развалился на 4 части. Новичок горгонария начала выпускать полипы, лучше сфотографировать не получилось (изгиб стекла мешает)
  5. Купил новое ведро соли RN, все быстро растворяется, осадка нет. Приготовил на воде RO/DI, TDS=0. Тесты первого засола из этого ведра: kH 8.3 Ca 450 Mg 1380 K 340-360 (в аквариуме такое же значение) NO3 0-0.2 PO4 0.00-0.01 I 0.03-0.06 Sr 4-10 Хотя последние два тесты скорее надо читать как есть или нет тестируемого элемента. И I, и Sr есть. Все тесты Salifert, кроме PO4 Hanna.
  6. Третьим будете… у меня тоже автодолив (точнее датчик) с фишстрит взорвался. Подробнее здесь автодолив от fish-street и далее.
  7. Спасибо, Буду продолжать изучать возможности arduino, а так у меня еще много планов на него, вот только времени свободного почти нет.
  8. Покупал по другой ссылке этот же лот за 10$, но сейчас она не действительна.Знаю, переплатил, когда заказывал еще ни фига в этом не понимал, заказывал по найденным ссылкам. :oops: Это сейчас уже могу сам выбирать , а по началу для меня это все было темным лесом… :tuplu: Никогда до этого ничем подобным не занимался. :roll:
  9. Да, дорогой, зато есть i2c и порт для клавиатуры 4х4. Вот ссылка на ebay, DS18B20 установлен, и батарейка в комплекте.
  10. У меня Arduino Tiny RTC DS1307 Shield V2.0, если я правильно понял, есть часы DS1307, температурный датчик DS18B20 и модуль памяти EEPROM AT24C32 на 32Кб. Пока из всего это пока использую только часы… до остального руки еще не дошли.
  11. TDS он почти не изменит, так как происходит замена ионов кальция и магния на ионы натрия (в отличии от смол H+ OH-), а мембране нет особой разницы какие ионы сепарировать. Такую смолу (Na+) нет смысла использовать в обратноосмотических фильтрах (ИХМО).
  12. Картридж с ионообменной смолой не используется для мехфильтрации.
  13. Думаю, хуже не будет, только зачем? Какая цель? Я бы оставил префильтры механика-уголь-механика.
  14. Я заказал lcd c i2c, соответственно для подключения буду использовать А4(SDA), А5(SCL) и питание. Иначе пинов не хватит для иного варианта подключения (могу ошибаться). Плата расширения это лишнее (ИХМО).
  15. Лучше 328 (больше памяти), я заказывал 328, но продавец ошибся и прислал 168 (и потом сделал частичный возврат денег). На ebay arduino nano 328 можно купить меньше, чем за 500руб. с доставкой.
  16. Про это как-то не подумал, сорри… :oops: Про rtc ds1307 http://www.ladyada.net/learn/breakoutplus/ds1307rtc.html Линк на саму библиотеку https://github.com/adafruit/RTClib Версия Arduino 1.0 Надеюсь не перепутал, вечером посмотрю точно. :hmmm:
  17. Здесь не подскажу, в этом я дуб дубом… скорее всего можно. Никаких звуков нет, есть щелчок при переключении реле. Вентиляторами и штатной луной управляет arduina (пины 7 и 8) через реле. Датчики (DS18S20) планирую добавить как дойдут руки.
  18. Я заказал цветной LCD 1.8 160x128 с интерфейсом I2C, как будет время буду добавлять...
  19. Alex_M

    Червь, полезный или нет?

    Полина уже определила: Эуницида (Eunicidae). А краб всеядный и это девочка.
  20. Я не мастер рисовать, как смог, надеюсь, будет понятно. Спасибо,
  21. Alex_M

    Червь, полезный или нет?

    Могу подарить, если останутся живы, одного сильно повредил. Еще выловил краба
  22. Делал перепланировку в банке, выловил этих, так и не смог уверенно определить кто это: Заранее спасибо.
  23. Alex_M

    Риф 550л

    Вы понимаете, что предлагаете?! :shock: Если внести калий используя реактив KI, то будет очень сильный передоз (мягко говоря) по йоду. Александр,Если нужен KNO3, у меня есть небольшие запасы, могу поделится, живу в Химках.
  24. Простенькая программа для ручного управления ШИМ каналами (пины 3, 5, 6, 9, 10, 11) arduino nano через serial port. int incomingByte = 0; int Chan=1; int ChanS=0; int Val1; int Val2; int PWM_V; byte PWM_Pin[6] = {3, 5, 6, 9, 10, 11}; void setup() { Serial.begin(9600); for (byte i=0; i<=5; i++) { pinMode(PWM_Pin[i], OUTPUT); } for (byte i=0; i<=5; i++) { analogWrite(PWM_Pin[i], 0 } } void loop() { if (Serial.available() > 0) { incomingByte = Serial.read(); if (ChanS==1) { if (incomingByte == 49) { Val1=1; } if (incomingByte == 50) { Val1=2; } if (incomingByte == 51) { Val1=3; } if (incomingByte == 52) { Val1=4; } if (incomingByte == 53) { Val1=5; } if (incomingByte == 54) { Val1=6; } if (incomingByte == 55) { Val1=7; } if (incomingByte == 56) { Val1=8; } if (incomingByte == 57) { Val1=9; } if (incomingByte == 48) { Val1=0; } if (Val2==0) { PWM_V=100*Val1; Val2=Val2+1;} else if (Val2==1) { PWM_V=PWM_V+10*Val1; Val2=Val2+1;} else if (Val2==2) { PWM_V=PWM_V+Val1; if (PWM_V>255) {PWM_V=255;} Val2=0; Serial.print("Chanel: "); Serial.print(Chan, DEC); Serial.print(" PWM: "); Serial.println(PWM_V, DEC); analogWrite(PWM_Pin[Chan-1], PWM_V); ChanS=0; Chan=0; incomingByte=0; } } if (ChanS==0) { if (incomingByte>0) { if (incomingByte == 49) { Chan=1; } if (incomingByte == 50) { Chan=2; } if (incomingByte == 51) { Chan=3; } if (incomingByte == 52) { Chan=4; } if (incomingByte == 53) { Chan=5; } if (incomingByte == 54) { Chan=6; } if (Chan != 0) { ChanS=1; Serial.print("Chanel set: "); Serial.println(Chan, DEC); Val2=0; } } } } } Ввод формате хууу, где х – номер канала (1-3пин, 2-5пин и т.д до 6-11пин.), ууу-значение ШИМ на канал х. Н-р установка ШИМ 25 на 6 пин будет 3025, ШИМ 255 на 11пин 6255, ШИМ 0 на 3пин 1000 Может кому то пригодится…
  25. Текущая версия программы. #include <Wire.h> #include "RTClib.h" RTC_DS1307 RTC; 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, 192, 192, 192, 128, 128}; // максимальное значение ШИМ int Midnight_PWM[6] = {0, 0, 0, 0, 0, 0}; // минимальное значение ШИМ int Current_PWM[6] = {0, 0, 0, 0, 0, 0}; // текущее значение ШИМ /* ***************************************************** */ /* * * */ /* * ШИМ пин для CW, TV, RB, NB, DR, NG * */ /* * Пин - 3 - CW - Cool White * */ /* * Пин - 5 - TV - True Violet * */ /* * Пин - 6 - RB - Royal Blue * */ /* * Пин - 7 - NB - Blue * */ /* * Пин - 10 - DR - Deep Red * */ /* * Пин - 11 - NG - Green * */ /* * * */ /* ***************************************************** */ int PWM_Pin[6] = {3, 5, 6, 9, 10, 11}; // ШИМ пин для CW, TV, RB, NB, DR, NG int Relay1 = 7; //вент int Relay2 = 8; //луна byte Relay1Status=false; byte Relay2Status=false; void setup() { Serial.begin(57600); Wire.begin(); RTC.begin(); if (! RTC.isrunning()) { Serial.println("RTC is NOT running!"); //RTC.adjust(DateTime(2012, 7, 12, 22, 48, 1)); } //RTC.adjust(DateTime(2012, 7, 31, 21, 53, 1)); 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]; // Расчет минуты суток для окончания заката } pinMode(Relay1, OUTPUT); pinMode(Relay2, OUTPUT); digitalWrite(Relay1, LOW); digitalWrite(Relay2, HIGH); } // Процедура расчета текущего периода и значения 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(); delay(60000); }
×
×
  • Создать...

Политика обработки персональных данных