Автор Тема: Arduino код?  (Прочетена 27645 пъти)

killara1

  • Робо-Новак
  • *****
  • Публикации: 17
    • Профил
Arduino код?
« Отговор #15 -: Април 24, 2013, 11:55:35 pm »
До тук добре, разбрах малко, но може ли да ми покажеш как да си свормирам кода.
Атанас Запрянов на 17г (след 4 дни от датата на регистрация )

killara1

  • Робо-Новак
  • *****
  • Публикации: 17
    • Профил
Arduino код?
« Отговор #16 -: Май 06, 2013, 11:48:41 pm »
Някой.
Атанас Запрянов на 17г (след 4 дни от датата на регистрация )

emil74

  • Зомбиран Роботостроител
  • *****
  • Публикации: 227
    • Профил
    • http://www.maystorio.com
Arduino код?
« Отговор #17 -: Май 07, 2013, 01:59:54 pm »
Формулирай точно алгоритъма и ще го направим. За да не се налага да се извлича алгоритъм от частично написан код. Така се увеличава шансът за грешка в новия алгоритъм.

booker

  • Новодошъл
  • *****
  • Публикации: 6
    • Профил
Arduino код?
« Отговор #18 -: Май 08, 2013, 02:02:57 am »
Ето една програма направена за две минути-copy/paste от примера BlinkWithoutDelay!!!
#include <LiquidCrystal.h>
int sekund =0;
int minutes =0;
int hour =0;
int hour2 =0;
int day =0;
long previousMillis = 0;        
long interval = 999;        
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(20, 4);  
  lcd.setCursor(0, 0);  
  lcd.print("Timer");  
  lcd.setCursor(0, 1);
  lcd.print("Day:");
 }
 
 
 void loop()
{
  unsigned long currentMillis = millis();
 
if(currentMillis - previousMillis > interval) {
    previousMillis = currentMillis;  
    sekund = sekund++;
   
    if (sekund>59) {
       sekund=0;
       minutes=minutes+1;
      }
    if(minutes>59){
       minutes=0;
       hour=hour+1;
      }
     if(hour>24)
     {
       hour=0;
      day=day+1;
     }
     if(sekund <= 9){
        lcd.setCursor(6, 2);
        lcd.print("0");
        lcd.setCursor(7, 2);
        lcd.print(sekund);
     }else{
       lcd.setCursor(6, 2);
       lcd.print(sekund);
     }
   
    if(minutes <= 9){
        lcd.setCursor(3, 2);
        lcd.print("0");
        lcd.setCursor(4, 2);
        lcd.print(minutes);
     }else{
       lcd.setCursor(3, 2);
       lcd.print(minutes);
     }
   
     if(hour <= 9){
        lcd.setCursor(0, 2);
        lcd.print("0");
        lcd.setCursor(1, 2);
        lcd.print(hour);
    }else{
       lcd.setCursor(0, 2);
       lcd.print(hour);
     }
   
    lcd.setCursor(4, 1);
    lcd.print(day);
    lcd.setCursor(2, 2);
    lcd.print(":");
    lcd.setCursor(5, 2);
    lcd.print(":");
   
  }
}  

Имай едно на ум, че процесора губи време да опреснява LCD и затова в моят случай long interval е 999ms!!!
И въпреки това пак ще има минимална грешка, няма да е швейцарски часовник, но все пак пилетата не се излюпват  на 21-я ден в точно определен час, минута и секунда.......