Aquasys - удобрения нового поколения
Украинский форум аквариумистов

Здравствуйте, гость ( Вход | Регистрация )




> Аквариумный компьютер "электронного чайника" :), ... или Arduin-щики всех старн - объединяйтесь!
Рейтинг 5 V
Vitaliy
сообщение 12.11.2009, 9:30
Сообщение #1


Активный аквариумист
***
Группа: Журналисты
Сообщений: 260
Регистрация: 21.8.2008
Из: Днепр
Украина Украина
Благодарности: 694 раз(а)


Добрый день!
Спешу поделиться радостью, котрая меня охватила от заочного знакомства с возможностями Arduino - http://www.arduino.cc/
И вот вчера эта долгожданная покупка таки приехала благодаря опять же китайским товарищам http://stores.ebay.com/FunRobo
Меня, как полного чайника в микроэлектронике, Arduino привлекла:
1) возможностью собирать систему управления аквариумом самостоятельно без паяльника,
2) открытостью и бесплатностью исходных кодов под все мои аквариуиные задачи, а это и контроль освещенности,температуры,магнитные датчики для уровня воды, таймеры на кормление и выключение и т.д.
3) модульностью. Пока буду разбираться с обычным набором датчиков, в будущем можна расширить систему GSM и Ethernet модулями.
Кроме датчиков от китайцев, купил еще рассыпухи тут http://www.adafruit.com/index.php?main_pag...ex&cPath=35 , там есть "IR sensor tuned to 38KHz, perfect for receiving commands from a TV remote control. Runs at 5V (although it seems to be OK down to 3.3V) " , буду пробовать управлять аквасом пр помощи обычного пульта от телевизора smile.gif
Есть много различных ресурсов, в том числе и русскоязычных (один из них http://freeduino.ru/arduino/index.html ), с исходными кодами и описанием работы Arduino. По мере моих продвижений в этом направлении буду здесь выкладывать мои "грабли" , вдруг кто захочет присоединиться - WELCOME!
На днях жду еще два недостающих модуля и начинаю жмакать клавиши...

По использованию простого компьютера в аквариумистике смотрим здесь - Аквариумный компьютер "электронного чайника", на базе IBM PC

Сообщение отредактировал 364 - 21.8.2012, 21:22
Причина редактирования: разделение тем


--------------------
Skype:ihnetunas


10
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
22 страниц V  « < 19 20 21 22 >
Ответов (400 - 419)
kirex
сообщение 20.3.2014, 22:42
Сообщение #401


Новенький на форуме
*
Группа: Присматриваюсь
Сообщений: 13
Регистрация: 20.3.2014
Из: Регенсбург
Германия
Благодарности: 0 раз(а)


Добрый день.
Не могли бы вы помочь в написании скетча.
Я к сожалению в программировании полный ноль.

Что имеется:
Arduino Mega 2560
LCD Keypad Shield 1602 c 5-ю кропками
Блок реле (двухканальное)
Часы DS1307 Tiny RTC I2C module, 24C32 EEPROM
Датчик температуры DS18B20

LCD Keypad Shield подключен к пинам 4,5,6,7,8,9, кнопки к А0, подсветка к 10 пину.
Датчик температуры DS18B20 подключен к пину 53.
Блок реле к пинам 40,41
К пинам 3,11,12 подключены LED через мосфеты.

Значения для кнопок:

ничего не нажато - 1023
UP - 142
DOWN - 328
LEFT - 504
RIGHT - 0
SELECT - 741

Что требуется:
1). Реле будут включать обогрев (назовём Н1 и Н2), т.е. Н1 управляется по 40 пину, а Н2 - по 41.
При температуре 28 включаются оба нагревателя. При достижении температуры 28,3 нагреватель Н1 отключается. При 28,5 отключается Н2.

2). LED подсветка (назовём LW – pin3, LR – pin11 и LB – pin12) должна включаться и выключаться по времени. Т.е. например в 17:00 плавно в течении 5 минут включается LW и LR, далее в 21:55 начинает плавно гаснуть (5 минут), а в это время плавно включается LB. Затем в 23:00 плавно гаснет (5 минут) LB.

3). Меню
Главный экран:

Т=28,4° 14:53
Н1-Off H2-On

т.е. отображается текущая температура, текущее время и состояние нагревателей.

Следующий экран:

Н1: On-28° Off-28,3°

т.е. возможность регулирования температуры включения и выключения нагревателя Н1.

Следующий экран:

H2: On-28° Off-28,5°

т.е. возможность регулирования температуры включения и выключения нагревателя Н2.

Следующий экран:

LW+LR: On-17:00
Off-21:55

т.е. возможность регулирования времени включения и выключения света LW и LR.

Следующий экран:

LB: On-21:55
Off-23:00

т.е. возможность регулирования времени включения и выключения света LB.


Переключение между экранами - кнопками Left и Right.
Выбор - кнопкой Select.
Установка – кнопками Up и Down.

Ещё нужна на главном экране возможность включения и выключения света LW и LR кнопкой, независимо от времени. А также возможность включения и выключения нагревателя Н1 кнопкой, независимо от температуры.
И ещё возможность установки часов.


Ещё нужна возможность регулировки яркости света для каждого канала в самом скетче, т.к. ещё сам не знаю будет ли свет гореть на 100% или хватит на 80%.


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


Заранее благодарен, и надеюсь на ваше понимание и помощь.
С уважением.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
user
сообщение 21.3.2014, 23:33
Сообщение #402


Активный аквариумист
***
Группа: Партнёры
Сообщений: 291
Регистрация: 23.4.2012
Из: Сочи
Франция Россия
Благодарности: 281 раз(а)


Вот и на моей улице праздник.
Доехали диоды, месяц пролежав на китайской таможне shok.gif, Российскую проехали за 3 дня smile.gif
Сегодняшний вечер потратил на разбор полетов с ардуиной и 6ти канальной сборкой от ледсидуино.
появились вопросы.
на PWM 127 и ниже двигатель кулера и драйвер начинают выть.
Понизил частоту шим согласно мануалу
Код
void setup()  {
  // nothing happens in setup
  TCCR3B = TCCR3B & 0b11111000 | 0x05;
}

Перестал выть драйвер, но теперь на низких значениях PWM вентиль рычит как трактор blush.gif
Вопрос: как правильно регулировать частоту вращения вентиля? Может какой кондер поставить для сглаживания ?
Не позаботился о безопасности. Читать
Даже закрывая рукой пару тест диодов, наловил зайцев. Завтра буду покупать красные очки и прилеплять диоды на радиатор smile.gif

Вопрос по питанию. Драйвер 6 каналов LedSeeDuino, питается от компьютерного бп 12в 6а.
Есть кластер из 4 диодов по 3-3.6в 750ма. Могу я подключить 2 такой кластер как на рисунке в паралель?
Прикрепленное изображение



Сообщение отредактировал user - 22.3.2014, 18:09
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
kirex
сообщение 23.3.2014, 14:20
Сообщение #403


Новенький на форуме
*
Группа: Присматриваюсь
Сообщений: 13
Регистрация: 20.3.2014
Из: Регенсбург
Германия
Благодарности: 0 раз(а)


Подскажите где ошибка.
Нужно чтобы свет плавно включался

void loop()
{
hours = RTC.get(DS1307_HR,true);
minutes = RTC.get(DS1307_MIN,false);

lcd.setCursor(0,0);

lcd.print(hours); // печатаем час
lcd.print(":"); // печатаем разделитель
lcd.print(minutes); // печатаем минуты
lcd.print(":"); // печатаем разделитель
lcd.print(RTC.get(DS1307_SEC,false:); // печатаем секунды

lcd.setCursor(0,2);
On_Time=(13*60+14);
Off_Time=(13*60+15);
Curent_Time=RTC.get(DS1307_HR,true)*60+RTC.get(DS1307_MIN,false);//текущее время
if(On_Time < Off_Time) //Проверка, таймер в течении одних суток?
{
if (Curent_Time >= On_Time && Curent_Time <= Off_Time)
{
for(int fadeValue = 0; fadeValue <= 255; fadeValue +=3)
{
analogWrite(LR, fadeValue);
}
}
}
}
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
user
сообщение 23.3.2014, 15:17
Сообщение #404


Активный аквариумист
***
Группа: Партнёры
Сообщений: 291
Регистрация: 23.4.2012
Из: Сочи
Франция Россия
Благодарности: 281 раз(а)


kirex, после
Код
analogWrite(LR, fadeValue);

в 500 или 1000мс
паузу воткни.
яб поставил 500 и вместо +=3 поставил +=1

Сообщение отредактировал user - 23.3.2014, 15:20
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
kirex
сообщение 23.3.2014, 15:45
Сообщение #405


Новенький на форуме
*
Группа: Присматриваюсь
Сообщений: 13
Регистрация: 20.3.2014
Из: Регенсбург
Германия
Благодарности: 0 раз(а)


Цитата(user @ 23.3.2014, 14:17) *
kirex, после
Код
analogWrite(LR, fadeValue);

в 500 или 1000мс
паузу воткни.
яб поставил 500 и вместо +=3 поставил +=1



Где-то ошибка
Вот весь скетч:

#include <Wire.h> // For some strange reasons, Wire.h must be included here
#include <DS1307.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

int hours;
int minutes;
//блок реле
int LW = 3;
int LR = 11;
int LB = 12;
int On_Time =0;
int Off_Time =0;
int Curent_Time =0;

void setup()
{
lcd.begin(16, 2);
Serial.begin(9600);
pinMode(LW, OUTPUT);
pinMode(LR, OUTPUT);
pinMode(LB, OUTPUT);

}

void loop()
{
hours = RTC.get(DS1307_HR,true);
minutes = RTC.get(DS1307_MIN,false);

lcd.setCursor(0,0);

lcd.print(hours); // печатаем час
lcd.print(":"); // печатаем разделитель
lcd.print(minutes); // печатаем минуты
lcd.print(":"); // печатаем разделитель
lcd.print(RTC.get(DS1307_SEC,false:); // печатаем секунды

lcd.setCursor(0,2);
On_Time=(14*60+49);
Off_Time=(15*60+15);
Curent_Time=RTC.get(DS1307_HR,true)*60+RTC.get(DS1307_MIN,false);//текущее время
if(On_Time < Off_Time) //Проверка, таймер в течении одних суток?
{
if (Curent_Time >= On_Time && Curent_Time <= Off_Time)
{
for(int fadeValue = 0; fadeValue <= 255; fadeValue +=3)
{
analogWrite(LR, fadeValue);
delay(300);
}
else

for(int fadeValue = 255; fadeValue >= 0; fadeValue +=3)
{
analogWrite(LR, fadeValue);
delay(300)
}
}
else // если сутки сменились
{
if ((Curent_Time >= On_Time && Curent_Time <= 2820)||(Curent_Time >= 0 && Curent_Time <= Off_Time:)//2820=24часа*60
{
for(int fadeValue = 0; fadeValue <= 255; fadeValue +=3)
{
analogWrite(LR, fadeValue);
delay(300);
}
else

for(int fadeValue = 255; fadeValue >= 0; fadeValue +=3)
{
analogWrite(LR, fadeValue);
delay(300)
}
}
}
}
}

Сообщение отредактировал kirex - 23.3.2014, 16:01
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
user
сообщение 23.3.2014, 15:50
Сообщение #406


Активный аквариумист
***
Группа: Партнёры
Сообщений: 291
Регистрация: 23.4.2012
Из: Сочи
Франция Россия
Благодарности: 281 раз(а)


должно загораться. паузу 50 поставь
дай весь код.

Сообщение отредактировал user - 23.3.2014, 15:58
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
kirex
сообщение 23.3.2014, 16:14
Сообщение #407


Новенький на форуме
*
Группа: Присматриваюсь
Сообщений: 13
Регистрация: 20.3.2014
Из: Регенсбург
Германия
Благодарности: 0 раз(а)


И ещё пока идёт пауза, часы на экране зависают.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
user
сообщение 23.3.2014, 16:14
Сообщение #408


Активный аквариумист
***
Группа: Партнёры
Сообщений: 291
Регистрация: 23.4.2012
Из: Сочи
Франция Россия
Благодарности: 281 раз(а)


из-за добавлений пауз перестало загораться?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
kirex
сообщение 23.3.2014, 16:21
Сообщение #409


Новенький на форуме
*
Группа: Присматриваюсь
Сообщений: 13
Регистрация: 20.3.2014
Из: Регенсбург
Германия
Благодарности: 0 раз(а)


Цитата(user @ 23.3.2014, 15:14) *
из-за добавлений пауз перестало загораться?



Дело в том, что нужно чтобы свет плавно включался в указанное время, а затем плавно гас в другое указанное время.

Весь код уже дал.

Сообщение отредактировал kirex - 23.3.2014, 16:21
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
user
сообщение 23.3.2014, 16:28
Сообщение #410


Активный аквариумист
***
Группа: Партнёры
Сообщений: 291
Регистрация: 23.4.2012
Из: Сочи
Франция Россия
Благодарности: 281 раз(а)


Цитата(kirex @ 23.3.2014, 17:14) *
И ещё пока идёт пауза, часы на экране зависают.

подвисают из-за пауз. чтоб такого небыло другая логика нужна.
нужно поднимать за раз светимость в промежуток времени только на заданый интервал.
вне зависимости вызывалась функция или нет.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
user
сообщение 23.3.2014, 16:40
Сообщение #411


Активный аквариумист
***
Группа: Партнёры
Сообщений: 291
Регистрация: 23.4.2012
Из: Сочи
Франция Россия
Благодарности: 281 раз(а)


скайп есть?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
kirex
сообщение 23.3.2014, 16:56
Сообщение #412


Новенький на форуме
*
Группа: Присматриваюсь
Сообщений: 13
Регистрация: 20.3.2014
Из: Регенсбург
Германия
Благодарности: 0 раз(а)


Цитата(user @ 23.3.2014, 15:40) *
скайп есть?


Скайп есть, только я в программировании почти полный ноль.

Вообщето надо в этот код вставить плавное включение и выключение света в заданное время:

Код
// Библиотеки необходимые для работы модуля часов
#include "Wire.h"
#include "DS1307new.h"

// библиотека экрана
#include "LiquidCrystal.h"
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup(){
  Serial.begin(9600);
  lcd.begin(16, 2); // запускаем библиотеку экрана
}

void loop(){
  analogWrite(10, 100);
  RTC.getTime();// получить время от модуля
  printTimeToSerial(); // выводим полученное время в лог
  printTimeToLCD();; // выводи время на экран
  lcd.setCursor(0, 1);        // Set the cursor to column 0, line 1
  doSerialCommands(); // слушаем и выполняем команды из Serial
}

// Выводит текущие время в Serial
void printTimeToSerial(){

  byte static prevSecond=0; // тут будем хранить, сколько секунд было при прошлом отчете
  
  if(RTC.second!=prevSecond){ // что-то делаем только если секунды поменялись
    Serial.print(RTC.hour); // часы
  
    Serial.print(":"); // разделитель
    Serial.print(RTC.minute);
  
    Serial.print(":");
    Serial.println(RTC.second);
    
    prevSecond=RTC.second; // запомнили когда мы "отчитались"
  }
}

// Выводит текущие время на LCD

void printTimeToLCD(){
    byte static prevSecond=0; // тут будем хранить, сколько секунд было при выводе
    
    if(RTC.second!=prevSecond){ // что-то делаем только если секунды поменялись
       lcd.setCursor(11,0); // устанавливаем позицию курсора
        
      if(RTC.hour<10)lcd.print(" ");
      lcd.print(RTC.hour); // часы
    
      lcd.print( (RTC.second % 2)?" ":":"); // разделитель моргает
      
      if(RTC.minute<10)lcd.print(0); // лидирующий ноль, если нужен
      lcd.print(RTC.minute);
    
    prevSecond=RTC.second; // запомнили когда мы "отчитались"
  }
}

// устанавливает часы модуля на какое-то заранее определенное время
void setSomeTime(){
  RTC.stopClock();// останавливаем часы
  RTC.fillByHMS(19,15,0); // "подкручиваем стрелки на 19:15:00
  RTC.setTime();// отправляем "подкрученное время" самому модулю
  RTC.startClock(); // и опять запускаем часы
}

// слушает из Serial команды и выполняет их. Каждая команда - один символ.
// доступны команды:
//  s - установить время указанное в функции setSomeTime()
void doSerialCommands(){
  if(Serial.available()){ // что-нибудь пришло?
    char ch=Serial.read(); // читаем что пришло
    
    switch(ch){
      case 's': // команда установки времени
           setSomeTime(); // устанавливаем
           break;
            
       // тут, в будущем, мы можем добавлять дополнительные команды
      default:;
           // на неизвестную команду - ничего не делаем
    };
  }
}
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
user
сообщение 23.3.2014, 17:23
Сообщение #413


Активный аквариумист
***
Группа: Партнёры
Сообщений: 291
Регистрация: 23.4.2012
Из: Сочи
Франция Россия
Благодарности: 281 раз(а)


Вот пример
у меня он работает
Код
      
  for(int fadeValue = 0; fadeValue <= 255; fadeValue +=1) {
    // sets the value (range from 0 to 255):
    analogWrite(ledPin, fadeValue);        
    // wait to see the dimming effect    
    delay(50);                            
  }
    delay(5000);                            

  // fade out from max to min :
  for(int fadeValue = 255; fadeValue >= 0; fadeValue -=1) {
    // sets the value (range from 0 to 255):
    analogWrite(ledPin, fadeValue);        
    // wait for see the dimming effect    
    delay(50);                            
  }
delay(5000);
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
kirex
сообщение 23.3.2014, 17:50
Сообщение #414


Новенький на форуме
*
Группа: Присматриваюсь
Сообщений: 13
Регистрация: 20.3.2014
Из: Регенсбург
Германия
Благодарности: 0 раз(а)


Цитата(user @ 23.3.2014, 16:23) *
Вот пример
у меня он работает
Код
      
  for(int fadeValue = 0; fadeValue <= 255; fadeValue +=1) {
    // sets the value (range from 0 to 255):
    analogWrite(ledPin, fadeValue);        
    // wait to see the dimming effect    
    delay(50);                            
  }
    delay(5000);                            

  // fade out from max to min :
  for(int fadeValue = 255; fadeValue >= 0; fadeValue -=1) {
    // sets the value (range from 0 to 255):
    analogWrite(ledPin, fadeValue);        
    // wait for see the dimming effect    
    delay(50);                            
  }
delay(5000);



Ну это просто моргание светодиодом, а мне надо плавное включение и выключение света в заданное время.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
user
сообщение 23.3.2014, 17:59
Сообщение #415


Активный аквариумист
***
Группа: Партнёры
Сообщений: 291
Регистрация: 23.4.2012
Из: Сочи
Франция Россия
Благодарности: 281 раз(а)


Это плавное зажигание диода с 0 до 100% за 12 сек
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
kirex
сообщение 23.3.2014, 18:05
Сообщение #416


Новенький на форуме
*
Группа: Присматриваюсь
Сообщений: 13
Регистрация: 20.3.2014
Из: Регенсбург
Германия
Благодарности: 0 раз(а)


Цитата(user @ 23.3.2014, 16:59) *
Это плавное зажигание диода с 0 до 100% за 12 сек



Я этот код пробовал. Диод плавно загорается и потом также плавно гаснет.
А мне надо плавное включение света в заданное время и плавное выключение в другое заданное время.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
user
сообщение 23.3.2014, 18:12
Сообщение #417


Активный аквариумист
***
Группа: Партнёры
Сообщений: 291
Регистрация: 23.4.2012
Из: Сочи
Франция Россия
Благодарности: 281 раз(а)


Ладно прийду домой покопаю код.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
kirex
сообщение 23.3.2014, 18:20
Сообщение #418


Новенький на форуме
*
Группа: Присматриваюсь
Сообщений: 13
Регистрация: 20.3.2014
Из: Регенсбург
Германия
Благодарности: 0 раз(а)


Цитата(user @ 23.3.2014, 17:12) *
Ладно прийду домой покопаю код.


Спасибо, буду премного благодарен.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
kirex
сообщение 23.3.2014, 21:31
Сообщение #419


Новенький на форуме
*
Группа: Присматриваюсь
Сообщений: 13
Регистрация: 20.3.2014
Из: Регенсбург
Германия
Благодарности: 0 раз(а)


Вот для этого кода нужно плавное включение света в заданное время и плавное выключение в другое заданное время.

Код
// Библиотеки необходимые для работы модуля часов
#include "Wire.h"
#include "DS1307new.h"

// библиотека экрана
#include "LiquidCrystal.h"
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

int hours;
int minutes;
int LW = 3;    
int LR = 11;
int LB = 12;    
int On_Time =0;
int Off_Time =0;
int Curent_Time =0;

void setup(){
  Serial.begin(9600);
  lcd.begin(16, 2); // запускаем библиотеку экрана
  pinMode(LW, OUTPUT);
  pinMode(LR, OUTPUT);
  pinMode(LB, OUTPUT);
}

void loop(){
  analogWrite(10, 100);
  RTC.getTime();// получить время от модуля
  RTC.hour;
  RTC.minute;
  printTimeToSerial(); // выводим полученное время в лог
  printTimeToLCD();; // выводи время на экран
  lcd.setCursor(0, 1);        // Set the cursor to column 0, line 1
  doSerialCommands(); // слушаем и выполняем команды из Serial

On_Time=(20*60+27);
Off_Time=(20*60+29);
Curent_Time=RTC.hour*60+RTC.minute;//текущее время
if(On_Time < Off_Time) //Проверка, таймер в течении одних суток?
  {
    if (Curent_Time >= On_Time && Curent_Time <= Off_Time)
        for(int fadeValue = 0; fadeValue <= 255; fadeValue +=3)
      {
        analogWrite(LR, fadeValue);
}
  else  
      for(int fadeValue = 255; fadeValue >= 0; fadeValue -=3)
      {
        analogWrite(LR, fadeValue);
  }
}
else // если сутки сменились
{
        if ((Curent_Time >= On_Time && Curent_Time <= 2820)||(Curent_Time >= 0 && Curent_Time <= Off_Time))//2820=24часа*60
        for(int fadeValue = 0; fadeValue <= 255; fadeValue +=3)
      {
        analogWrite(LR, fadeValue);
    }
    else
      for(int fadeValue = 255; fadeValue >= 0; fadeValue -=3)
      {
        analogWrite(LR, fadeValue);
      }
      }
}

// Выводит текущие время в Serial
void printTimeToSerial(){

  byte static prevSecond=0; // тут будем хранить, сколько секунд было при прошлом отчете
  
  if(RTC.second!=prevSecond){ // что-то делаем только если секунды поменялись
    Serial.print(RTC.hour); // часы
  
    Serial.print(":"); // разделитель
    Serial.print(RTC.minute);
  
    Serial.print(":");
    Serial.println(RTC.second);
    
    prevSecond=RTC.second; // запомнили когда мы "отчитались"
  }
}

// Выводит текущие время на LCD

void printTimeToLCD(){
    byte static prevSecond=0; // тут будем хранить, сколько секунд было при выводе
    
    if(RTC.second!=prevSecond){ // что-то делаем только если секунды поменялись
       lcd.setCursor(11,0); // устанавливаем позицию курсора
        
      if(RTC.hour<10)lcd.print(" ");
      lcd.print(RTC.hour); // часы
    
      lcd.print( (RTC.second % 2)?" ":":"); // разделитель моргает
      
      if(RTC.minute<10)lcd.print(0); // лидирующий ноль, если нужен
      lcd.print(RTC.minute);
    
    prevSecond=RTC.second; // запомнили когда мы "отчитались"
  }
}

// устанавливает часы модуля на какое-то заранее определенное время
void setSomeTime(){
  RTC.stopClock();// останавливаем часы
  RTC.fillByHMS(20,24,0); // "подкручиваем стрелки на 20:24:00
  RTC.setTime();// отправляем "подкрученное время" самому модулю
  RTC.startClock(); // и опять запускаем часы
}

// слушает из Serial команды и выполняет их. Каждая команда - один символ.
// доступны команды:
//  s - установить время указанное в функции setSomeTime()
void doSerialCommands(){
  if(Serial.available()){ // что-нибудь пришло?
    char ch=Serial.read(); // читаем что пришло
    
    switch(ch){
      case 's': // команда установки времени
           setSomeTime(); // устанавливаем
           break;
            
       // тут, в будущем, мы можем добавлять дополнительные команды
      default:;
           // на неизвестную команду - ничего не делаем
    };
  }
}
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
user
сообщение 23.3.2014, 23:57
Сообщение #420


Активный аквариумист
***
Группа: Партнёры
Сообщений: 291
Регистрация: 23.4.2012
Из: Сочи
Франция Россия
Благодарности: 281 раз(а)


Вот скетч по управлению
В массиве задаются данные для леда. 1 значение это 15 мин.
Программа плавно изменяет значение от одного значения к другому каждую минуту и выдает ее в порт.
В монитор пишется текущее значение минут, ячейка массива, промежуточная позиция между ячейками и значение для порта.
Ваша задача вовремя изменять переменную min_cnt.

Код честно сперт с Krusduino by Hugh Dangerfield http://code.google.com/p/dangerduino/
Прикрепленный файл  Fading.zip ( 1.84 килобайт ) Кол-во скачиваний: 139
Перейти в начало страницы
Вставить ник
+Цитировать сообщение

22 страниц V  « < 19 20 21 22 >
Начать новую темуОтветить в данную тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
Нет новых сообщений В теме есть приложенияПовернення "Скромняги" 20л
35 Гоцман я 38 313 2.2.2025, 7:04 Посл. сообщение: Гоцман я
Нет новых В теме есть приложенияПродам. Аквариумный мох. Украина. Киев.
Декоративный мох для вашего аквариума
72 Bahmut 112 890 24.12.2024, 11:57 Посл. сообщение: Bahmut
Нет новых сообщений В теме есть приложенияАфиосемион Южный "спотлесс". Продам
0 ЮраШ 16 642 16.11.2024, 15:58 Посл. сообщение: ЮраШ
Нет новых сообщений Клей аквариумный, Soma FIX 280 мл, черный.
0 Arowana Info 764 19.12.2023, 14:18 Посл. сообщение: Arowana Info
Нет новых сообщений Уголок проходной AQUAXER, 1/4", под шланг 8 мм.
0 Arowana Info 17 631 17.10.2023, 8:04 Посл. сообщение: Arowana Info

 



Перейти в начало страницы RSS Текстовая версия Сейчас: 16.6.2025, 15:26