• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Wyłącznik czasowy
#1
Witam

Mam problem z ustawieniem włącznika/wyłącznika czasowego.
Nie mogę ustawić godzin ani minut na 08 i 09.

invalid digit "9" in octal constant

Jak pomijam 0 to nie działa ponieważ odczyt z RTC jest z zerem na początku, 01,02 itd.


Dzięki za odp.
 
Odpowiedź
#2
Tyle razy jest tu pisane, że nikt z fusów wróżyć nie umie, wklej sketch który wgrywasz.
 
Odpowiedź
#3
Wszystko działa ok o ile nie użyje 08 lub 09 w godzinach lub minutach.

#include <Wire.h>
#include <TimeLib.h>
#include <DS1307RTC.h>
#define przekaznik1 11
#define przekaznik2 12
#define godzinaOn 17
#define godzinaOff 17
#define minutaOn 07
#define minutaOff 10

void setup() {

 Wire.begin();
 pinMode(przekaznik1, OUTPUT);
 pinMode(przekaznik2, OUTPUT);
 digitalWrite(przekaznik1, HIGH);
 digitalWrite(przekaznik2, HIGH);
}


void loop()
{
 oswietlenie();
}

void oswietlenie()
{
 tmElements_t tm;

RTC.read™;

 if((godzinaOn<=tm.Hour && tm.Hour<=godzinaOff)&&(minutaOn<=tm.Minute && tm.Minute<=minutaOff))
  {
   digitalWrite(przekaznik1, LOW);
  }

 
 else
 {
  digitalWrite(przekaznik1, HIGH);
 }
}
 
Odpowiedź
#4
#define minutaOn 8 nie wystarczy?
Program się burzy tym komunikatem bo jak podajesz 0 przed liczbą to używasz liczby ósemkowej, ta ma 8 cyfr od 0 do 7 (tak samo jak system dwójkowy ma cyfry 0 i 1, szesnastkowy ma dodatkowe cyfry a,b,c,d,e,f no i oczywiście typowe dla systemu dziesiętnego 0-9, a system piątkowy miałby cyfry 0,1,2,3,4).
Miałoby to sens przy porównywaniu napisów, wtedy "08" byłoby OK.
Gdybym miał robić jakieś ify to pewnie zamieniałbym godzinę na liczbę minut (godzina*60+minuty) ustawiał jakoś czy przekaźnik jest aktualnie włączony czy nie, bo po co miałby włączać przekaźnik, który jest włączony pierdylion razy .
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości