• Most regisztráltál, de nem tudsz privát üzenetet küldeni?

    Kérjük olvasd el milyen korlátozások vonatkoznak rád, miután regisztrációd jóvá lett hagyva.
    Regisztrációs korlátozások

Építsünk akváriumvezérlőt Arduino-ból

Üdv Mindenkinek!
A kérdésem nem szorosan a témához kapcsolódik,de Arduino. Van egy Wemos D1 mini modulom. Redőnyt működtet blynkkel, de sajnos az időzítés funkció nem megbízható.Ezért LDR-el szeretném megoldani. Úgy gondoltam, hogy pl. "sensorvalue >300" akkor meghúzna a fel relé kb. 13 sec ekkor felmegy háromnegyedig a redőny. Utána ezt már ne figyelje ,hanem a "sensorvalue<300" - nál meghúzzon a le relé, ez 16 sec lenne,hogy teljesen lemenjen és ez ismétlődne. Ebben kérnék segítséget. A loop-nak folyamatosnak kellene lennie mivel a blynket is használni szeretném. Segítséget előre is kösz.
Ez kicsit off, de próbálok válaszolni rá: https://www.tinkercad.com/things/lTmmcYJC54R - bocsi azt hiszem csak úgy lehet elindítani, ha beregisztrál az ember.
A fel és le relék helyére a fenti tervben csak ledeket kötöttem, hogy látszódjon valami. A lényeg, hogy az alábbi kód szerintem megoldja, amit szeretnél:
Kód beillesztése:
int sensorPin = A0;  // ide van kötve a szenzor
int sensorValue = 0;  // ez az érték, amit kapunk róla
int state = 0;  // ez a változó, a redőny aktuális állapotát mutatja: 0-fent van, 1-mozog lefelé, 2-lent van, 3-mozog felfelé
long timer = 0;  // időzítő a mozgatáshoz
 
void setup() {
  Serial.begin(9600);
  pinMode(12, OUTPUT);  // ez az egyik irány
  pinMode(13, OUTPUT);  // ez a másik irány kimenete
  digitalWrite(12, LOW);
  digitalWrite(13, LOW);
}

void loop() {
  sensorValue = analogRead(sensorPin);  // beolvassuk a szenzor értékét
  //Serial.println(sensorValue);
  if (sensorValue > 1000 && state == 0) { // ha van fény, de a redőny fent van
    state = 1; // lefelé megy a redőny
    timer = millis();
    digitalWrite(12, HIGH);
    Serial.println("Indul lefele a redony");
  }
  if (state == 1 && millis() - timer >= 16000) { // letelt a 16 sec
    state = 2; // lent van
    digitalWrite(12, LOW); 
    Serial.println("Kesz");
  }
  if (sensorValue < 1000 && state == 2) { // nincs már fény, de a redőny még lent van
    state = 3;
    timer = millis();
    digitalWrite(13, HIGH);
    Serial.println("Indul felfele a redony");
  }
  if (state == 3 && millis() - timer >= 16000) { // letelt a 16 sec
    state = 0; // fent van
    digitalWrite(13, LOW); 
    Serial.println("Kesz"); 
  }
 
  delay(100);
}
 
Egyrészt egy óra az 3600 másodperc, nem 360. Gondolom ez okozta, hogy többször bekapcsolt. Másrészt a Macrot valóban csak 1 sec-ig akarod járatni (2540 - 2540)?

Egyébként elvileg jónak tűnik, de szerintem nehéz átlátni, mert túl sok a változó. Én megpróbálnék egyetlen másodperc változót használni, valahogy így:
Kód beillesztése:
unsigned long secondsToday;
// itt lerkérdezem az órából az adatokat...
secondsToday = hour * 3600 + minute * 60 + second;

if (secondsToday >= 2520 && secondsToday <= 2523) {
  digitalWrite (relCarbo, LOW);
} else {
  digitalWrite (relCarbo, HIGH);
}

// stb
Arra is érdemes figyelni, hogy az órát ne kérdezgesse a rendszer folyamatosan, hanem csak percenként vagy még ritkábban. Közben a másodperceket lehet pl millis()-sel is léptetni. Egyrészt kicsit lassú az I2C-n a forgalom, másrészt akár be is fagyaszthatja a rendszert egy érzékenyebb modul, ha valami nagy zaj közben kérdezed le (pl amikor a motor jár).
Erre amúgy nagyon szép megoldás Paul Stoffregen Time libraryja: https://github.com/PaulStoffregen/Time
A letöltésben lévő DS1307RTC libbel tökéletesen működik a DS3231-is. Ez pontosan úgy működik, ahogy írtam fent, hogy csak 5 percenként kérdezi le az órától az időt, közben pedig maga intézi a másodpercek számolását. Elég sok helyet foglal mondjuk, de aki nem használ Blynk-et, ott valószínűleg el fog férni egy UNO-n is. :)
Igen a Macrót az elírtam :) Közben már megoldódott a probléma egy másik kóddal, a tápadagoló része úgy néz ki most már jó. Lehet nem a legszebb, de most, hogy még túl sok mindent nem csinál az Ardu működik. Olyan sok példa program van, meg Ti is olyan sokat megosztotok, hogy nem tudja az ember melyik úton induljon el :) De ez csak a jobbik eset szerencsére és köszönöm is! (y) A következő dolog, ha minden jól működik továbbra is akkor a LED világítás vezérlése lesz.

Most így néz ki a tápos rész(ha valaki használni szeretné a LOW és HIGH-ot cserélje meg, nekem valamiért LOW-ra húz be a relé). Bár a delay-os részt ki lehetne váltani, hogy addig ne álljon a progi, de még mindig nem sikerült teljesen megértenem a millis-t, bár sokat nem is foglalkoztam vele:

Kód beillesztése:
//adagolando tap mennyisegek:
float Carbo = 4; // 4 ml Easycarbo
float Profito = 2.5; // 2,5 ml Profito
float Macro = 8; // 8 ml DIY Macro

// adagolo idozito:
int doseHour = 6; // 0-23
int doseMinute = 50; // 0-59

// adagolo kalibralas:
int corrRateCarbo = 1200; // ms/1ml
int corrRateProfito = 1090; // ms/1ml
int corrRateMacro = 1290; // ms/1ml

// Carbo adagolas
  if (hour == doseHour && minute == doseMinute && second == 1 )
  {
    digitalWrite(relCarbo, LOW);
    delay(Carbo*corrRateCarbo);
    digitalWrite(relCarbo, HIGH);
  }
// Profito adagolas
  if (hour == doseHour && minute == doseMinute && second == 15 )
    {
      digitalWrite(relProfito, LOW);
      delay(Profito*corrRateProfito);
      digitalWrite(relProfito, HIGH);
    }
// Macro adagolas
  if (hour == doseHour && minute == doseMinute && second == 30 )
  {
    digitalWrite(relMacro, LOW);
    delay(Macro*corrRateMacro);
    digitalWrite(relMacro, HIGH);
  }
 
Bocsánat, hogy csak ilyen későn válaszolok, de megint csak azt erősíteném meg, amit korábban: ha új projektet kezdtek NE ARDUINO UNORA ÉPÍTSÉTEK! Kevés a memóriája, ha kicsit is többet szeretnétek egy-két alap dolognál, akkor már gondok lesznek! Válasszátok a ESP8266-ra épített lapokat, mint ez:
View attachment 45238
Ez konkrétan 2.8$-ba kerül az alin (ESP8266-ra vagy NodeMcu-ra keresve az elsők között van), és sokkal sokkal többet tud, mint egy Arduino. Viszont ugyanazokkal az eszközökkel lehet programozni, szóval minden más maradhat ugyanaz.

Egyébként én nem erőltetném a szimpla mosfet meg relé modulokat, ha van dupla vagy 4-es is. Lehet, hogy olcsóbb is, meg kevesebb helyet is foglal talán ha nem szimplákat veszel. A tápellátást kell még megoldanod valahogy, arról nem írtál. A motoroknak 12V-kell, az viszont kicsit talán sok az arduino pici fesz.szabályzójának, szóval érdemes elé tenni pl egy L7805CV ic-t, egy kicsi hűtőbordával, meg pár kondival. Ez 55Ft itthon is amúgy. Van erről rengeteg leírás, nem bonyolult. A másik opció valamilyen állítható feszültségkonvertáló modul, ilyenről Victor is írt korábban. Szerintem többet fogyaszt és zajos, de ugye ízlések és ficamok. :)

A rendeléshez még egy tipp: Látom a mikrokontrollerből csak egyet vennél, szerintem érdemes pont abból kettőt rendelni eleve. Egyrészt ha valahogy sikerülne megsütni (ami nem valószínű), másrészt ha már beépítetted az egyiket, de még akarsz valamit fejleszteni rajta, akkor tök jó, ha van egy tartalék, amit az asztalodon tuningolhatsz az "éles" rendszer piszkálása nélkül.

Kedves @mbence köszi a választ!

Az előző levelembe írt dolgokat sajnos már megrendeltem, de tervezem hogy nemsokára berendelek az általad ajánlott mikrovezérlőből is. Azért választottam az Uno-t, mert laikusként úgy tűnik a hálón több segítség van hozzá abszolút kezdőknek. Bár tudom, hogy itt tőletek bármikor kérhetek segítséget, de minden apró megakadásért nem nyaggatnálak titeket :) A szimpla modulokat azért rendeltem, mert hátha elbénázok egyet-egyet, éppen ezért van a felsőroltak között 2db Uno is, egy külön és egy a csomagban :D A tápellátásról azért nem írtam ,mert azt itthonról szerezném be. 12V DC-tápegységet könnyű beszerezni, de az 5V adapter helyett sokkal jobb a te ötleted! Amúgy rákerestem az UNO áramfogyasztására, de semmi konkrétat nem találtam. Általában 50-80mA-es értékeket írnak, de ezt nem tudom milyen kihasználtság mellett mérték. A szilárdtest relének ha jól emlékszem 180mA a fogyasztása, a mosfet modulnak nem találtam, de ha jól sejtem pár mA lehet (ugyebár ezek külön táplálást kapnának az IC-ről). Éredemes lesz hűtőfelülettel ellátni a táp IC-t, vagy csak biztos ami tuti alapon? A videómegosztós oldalon néztem pár vidit, amiben az Ardu programjában mutatták, hogy az elején bekell állítani a kontrollet típusát. Ugyanitt belehet állítani ESP8266-ra is, vagy ha ilyet szeretnék programozni, már programra lesz szükségem? A hőmérő modul és a kijelző modul ötelete is tetszik, de egyenlőre jussak el az alapokig. Sajna kicsi a valőszínűsége hogy az ünnepek előtt megérkeznének a cuccok :(
Köszönöm előre is a válaszokat, és a már eddíg is kapott segítséget :happy:
 
Éredemes lesz hűtőfelülettel ellátni a táp IC-t, vagy csak biztos ami tuti alapon?
Nálam mire mindent ráforrasztottam a lapra már eléggé melegedett a fesz.szab ic, szóval tettem rá egy hűtőt. Amíg csak az ardu volt rajta, addig nem kellett. Gondolom majd kiderül, ha nagyon meleg, akkor érdemes hűteni inkább.
Az ESP-hez egy egy ESP Core-ra van szükséged: https://github.com/esp8266/Arduino Ha ezt feltelepítetted, utána már ki tudod választani a Board-nál.
 
Nálam mire mindent ráforrasztottam a lapra már eléggé melegedett a fesz.szab ic, szóval tettem rá egy hűtőt. Amíg csak az ardu volt rajta, addig nem kellett. Gondolom majd kiderül, ha nagyon meleg, akkor érdemes hűteni inkább.
Az ESP-hez egy egy ESP Core-ra van szükséged: https://github.com/esp8266/Arduino Ha ezt feltelepítetted, utána már ki tudod választani a Board-nál.

Sziasztok!

Kezdőknek jól jöhet: Tavir Arduino 60 nap alatt. Keressetek rá googke-ban.
 
Már egy ideje igérgetem ,hogy elkészülök a saját vezérlőmmel.... Magam sem gondoltam volna, hogy ilyen lassan fogok haladni, de mindig van valami akadály akár az életben, akár a projekt kapcsán. Szóval remélem már célegyenesben vagyok. Építem a házát a rendszernek, javítgatom a kódot (sajnos még van hiba), remélem lassan tényleg elkészülök. Viszont van egy kis gondom : Arduino Due, egy nextion 7" HMI kijelző, 17 szilárdtest relé, mosfet modul óra, pH mérő, hő- és páratartalom mérők, jelszint illesztő, stb. vannak a rendszeremben. Gondoltam egyet, és a több tápot egy 350W-os CHIEFTEC PC táppal (belül az 5V-os ágon egy 10W 5ohm-os ellenálás netes videók alapján a stabilitás miatt beforrasztva) váltottam ki.
A gondom az, ha erről a tápról megy a rendszer, akkor a kijelző megbolondul. Ha külön tápon van (5V 1,5A) a kijelző (csak a GND van közösítva) akkor minden ok. Gondolom zajos lehet az 5V ág. Szkópom nincs, és nem is vágom annyira az elektronikát. fl.gif Szóval megoldás lehet egy zavarszűrő kondi beépítése? Ha igen lilyen és mekkora? Vagy mit javasoltok? Kérlek konyhanyelven írd, ha segítessz, hogy meg is értsem.... bl.gif
Másik problémám a Due kivezetett (vezetékkel külső kapcsolóra kötött) resetje. Csak 2-3 megnyomásra sikerül ténylegesen összehozni a resetet (kijelzőn zavaros lesz a kép). A lapon lévő reset tökéletesen megy.
Tud erre valaki valami megoldást?
Illetve ha valaki jártas a due watcdog életre keltésében az ne kíméljen.
Köszönöm! rl.gif
 
Még azon agyaltam, hogy gyorsabb lenne e a rendszer mondjuk egy ESP beépítésével. Mondjuk a sok I/O miatt kell egy Due vagy Mega. Ennek csak a bejövő infó továbbítása lenne a feladata egy ESP felé. A számításokat az ESP végezné. Megvalósítható ez vajon a gyakorlatban is?
Vagy ha az ESP-hez lenne egy I/O shied, akkor önmagában is képes lehetne erre...
 
Szóval megoldás lehet egy zavarszűrő kondi beépítése?
Ilyen esetben tudtommal általában egy 100nF-os kerámia kondit szoktak beépíteni közvetlen az érintett eszköz +5V és GND lábai közé.
100nfcap.jpg
Érdemes kísérletezni több kapacitással, ha esetleg ez konkrétan nem oldaná meg. Ha motorok is vannak a rendszerben, akkor jóval nagyobb 10 vagy 100uF-os kondikat tesznek közvetlen a motor elé. Lehet fojtótekercset is használni a motor zajának megszüntetésére (ez az alacsony frekvenciájú zajszűrésre való inkább), de ezekkel nincs tapasztalatom, és sajnos a képletek számításához sem értek egyáltalán. Az esetleg segíthet, ha megtalálod, hogy mi okozza a zajt. A felsoroltak közül én a relékre tippelnék, a többi eszközről nem nagyon tudom elképzelni.
Szerk: javítok, a SSR reléknek elvileg semmi zaja nem lehet, szóval akkor az is lehet, hogy maga a táp zajos valamiért. Én a feszültségszabályzó ic-k lábaira mindkét irányba tettem 100nF és 10uF-os kondikat, hogy a táp felől bejövő zajt kiiktassam.
 
Utoljára módosított:
Már egy ideje igérgetem ,hogy elkészülök a saját vezérlőmmel.... Magam sem gondoltam volna, hogy ilyen lassan fogok haladni, de mindig van valami akadály akár az életben, akár a projekt kapcsán. Szóval remélem már célegyenesben vagyok. Építem a házát a rendszernek, javítgatom a kódot (sajnos még van hiba), remélem lassan tényleg elkészülök. Viszont van egy kis gondom : Arduino Due, egy nextion 7" HMI kijelző, 17 szilárdtest relé, mosfet modul óra, pH mérő, hő- és páratartalom mérők, jelszint illesztő, stb. vannak a rendszeremben. Gondoltam egyet, és a több tápot egy 350W-os CHIEFTEC PC táppal (belül az 5V-os ágon egy 10W 5ohm-os ellenálás netes videók alapján a stabilitás miatt beforrasztva) váltottam ki.
A gondom az, ha erről a tápról megy a rendszer, akkor a kijelző megbolondul. Ha külön tápon van (5V 1,5A) a kijelző (csak a GND van közösítva) akkor minden ok. Gondolom zajos lehet az 5V ág. Szkópom nincs, és nem is vágom annyira az elektronikát. View attachment 45512 Szóval megoldás lehet egy zavarszűrő kondi beépítése? Ha igen lilyen és mekkora? Vagy mit javasoltok? Kérlek konyhanyelven írd, ha segítessz, hogy meg is értsem.... View attachment 45513
Másik problémám a Due kivezetett (vezetékkel külső kapcsolóra kötött) resetje. Csak 2-3 megnyomásra sikerül ténylegesen összehozni a resetet (kijelzőn zavaros lesz a kép). A lapon lévő reset tökéletesen megy.
Tud erre valaki valami megoldást?
Illetve ha valaki jártas a due watcdog életre keltésében az ne kíméljen.
Köszönöm! View attachment 45514
Lehet hogy kevés az 5 ohm terhelés. A PC tápok 5V-ja tud kb 20A-t nem biztos hogy igy stabilizálodik a táp.Probálj meg nagyobb terhelést ráakasztani.
 
Még azon agyaltam, hogy gyorsabb lenne e a rendszer mondjuk egy ESP beépítésével. Mondjuk a sok I/O miatt kell egy Due vagy Mega. Ennek csak a bejövő infó továbbítása lenne a feladata egy ESP felé. A számításokat az ESP végezné. Megvalósítható ez vajon a gyakorlatban is?
Vagy ha az ESP-hez lenne egy I/O shied, akkor önmagában is képes lehetne erre...
Elvileg megoldható, de nagyon-nagyon bonyolulttá tenné a rendszeredet. Az UNO kapcsán gondoltam én is erre, de egyelőre meg tudtam úgy oldani, hogy leegyszerűsítettem amit lehetett, hogy beleférjen. Nálad a DUE teljesítménye bőven elég kellene hogy legyen, és memória problémák sem nagyon lehetnek, szóval én nem variálnék ezzel.
 
Arduino Due, egy nextion 7" HMI kijelző, 17 szilárdtest relé, mosfet modul óra, pH mérő, hő- és páratartalom mérők, jelszint illesztő, stb. vannak a rendszeremben.
OMG :wideyed: Mimindent fog ez a rendszer vezételni? 17db szilárdtest relé? :eek:
 
És elkészült az időzítő lib is!
Ezt is ugyanúgy kell telepíteni, ahogy a többi library-t. A működéséhez szükség lesz az Adafruit féle RTClib-re is, ez segít az óra modullal való kommunikációban, ezt is mellékelem. Megírtam a példákat DS1307-re és DS3231-re is, az examples könyvtárban találjátok.

Először egy nagyon egyszerű példát mutatnék, pl: fénycsöves világítás ki-be kapcsolásához (ahol nem kell dimmelni), DS3231-el:
Kód beillesztése:
#include <RTClib.h>

// Itt mondjuk meg neki, hogy milyen órát használjon, ezt még a timer #include-ja előtt meg kell tenni!
#define WITH_DS3231      
#include <AquaTimer.h>

// A pin száma ami pl. a reléhez megy
const int LIGHTS_PIN = 6;

// Ez nagyon fontos, hogy pontosan 'rtc' nevű változó kell a timernek, hogy be tudja olvasni az időt
RTC_DS3231 rtc;         

// Itt definiáljuk a timer objektumot, a paraméterek: PIN száma, bekapcs, kikapcs
// Fontos, hogy String-ben kell megadni a be és kikapcsolási időket, és az órákat is ki kell egészíteni 2 számjegyre,
// vagyis "6:00" nem jó, hanem "06:00" kell! - De ki akarna olyan korán világítani? :)
AquaTimer LedTimer(LIGHTS_PIN, "14:00", "22:00");

void setup() {
  // Óra modul indítása
  rtc.begin();
  if (rtc.lostPower()) {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  // ez a sor pedig kiírja a megadott pinre az adott időnek megfelelő értéket
  LedTimer.write();
}


Itt pedig egy példa 3 tápadagoló időzítéséhez. A kimenetek (6,7,8) relékkel, vagy mosfetekkel vezérlik a pumpák motorjait. A hardveres részt itt nem részletezném, a lényeg inkább a kód:
Kód beillesztése:
#include <RTClib.h>
#define WITH_DS3231
#include <AquaTimer.h>

RTC_DS3231 rtc;

// Ugyanaz, mint fent, csak egymás után több kimenetet kapcsolunk különböző időpontokban
// PIN, bekapcs, kikapcs
AquaTimer Micro(6, "13:40:00", "13:40:04");
AquaTimer Macro(7, "13:40:20", "13:40:24");
AquaTimer Carbo(8, "13:40:40", "13:40:44");

void setup() {
  rtc.begin();
  if (rtc.lostPower()) {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  // Külön-külön meg kell hívni az egyes kimenetekre a kiíratást
  Micro.write();
  Macro.write();
  Carbo.write();
}


És végül egy kicsit komplettebb példa, ahol már van led átmenet, holdfény effekt, szűrő kikapcs, és 4 tápadagoló:
Kód beillesztése:
#include <RTClib.h>
#include <AutoSwitch.h>

#define WITH_DS3231
#include <AquaTimer.h>

RTC_DS3231 rtc;

const int LED_PIN = 6;
const int FILTER_PIN = 7;

// A világítás bekapcsoló gombja, egy óra után kikapcsolja magát
AutoSwitch LedButton(2, 3600);
// A szűrő stop etetéshez, ami 5 perc után újraindítja a szűrőt
AutoSwitch FilterStopButton(3, 300);

AquaTimer LedTimer;
AquaTimer Micro(8, "13:40:00", "13:40:04");
AquaTimer Macro(9, "13:40:20", "13:40:24");
AquaTimer Carbo(10, "13:40:40", "13:40:44");
AquaTimer Phosphate(11, "13:41:00", "13:41:04");

void setup() {
  pinMode(FILTER_PIN, OUTPUT);
  rtc.begin();
  if (rtc.lostPower()) {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  // Világítás beállításai. A sok paraméter miatt metódus láncolással, hogy olvashatóbb legyen
  // A LED dimmeléséhez a PWM kimenet miatt relé helyett itt egy MOSFET-re lesz szükség!
  LedTimer
  .setPin(LED_PIN)
  .setOn("14:00")         // bekapcs
  .setTransition("30")    // átmenet ideje percben
  .setOff("22:00")        // kikapcs
  .setMoonDuration("60")  // holfény derengés ideje percben, a kikapcs után
  .setMaxVal("75%")       // a teljes fényerő dimmeléséhez. Ha 100% kellene, akkor elhagyható
  .setMoonVal(1);         // a holfény fényereje. Itt szándékosan van int, a lehető legkisebb fényerő kedvéért
}

void loop() {
  // Tápadagolók
  Micro.write();
  Macro.write();
  Carbo.write();
  Phosphate.write();

  // Világítás a teljes fényerő gombbal
  int buttonState = LedButton.getState();
  LedTimer.write(buttonState);

  // Szűrő stop -  a relén a NC (Normally Closed) kimenetre érdemes kötni a szűrő konnektorát
  int filterStopState = FilterStopButton.getState();
  digitalWrite(FILTER_PIN, filterStopState);
}

Ez a kód egyébként csak 29%-ot használ el egy UNO memóriájából, szóval a maradék 10 szabad lábra még bőven lehet konfigurálgatni hőmérőt, kijelzőt, etető automatát, twinstart, vagy amit épp gondoltok.

Jó kódolást!
És elkészült az időzítő lib is!
Ezt is ugyanúgy kell telepíteni, ahogy a többi library-t. A működéséhez szükség lesz az Adafruit féle RTClib-re is, ez segít az óra modullal való kommunikációban, ezt is mellékelem. Megírtam a példákat DS1307-re és DS3231-re is, az examples könyvtárban találjátok.

Először egy nagyon egyszerű példát mutatnék, pl: fénycsöves világítás ki-be kapcsolásához (ahol nem kell dimmelni), DS3231-el:
Kód beillesztése:
#include <RTClib.h>

// Itt mondjuk meg neki, hogy milyen órát használjon, ezt még a timer #include-ja előtt meg kell tenni!
#define WITH_DS3231       
#include <AquaTimer.h>

// A pin száma ami pl. a reléhez megy
const int LIGHTS_PIN = 6; 

// Ez nagyon fontos, hogy pontosan 'rtc' nevű változó kell a timernek, hogy be tudja olvasni az időt
RTC_DS3231 rtc;          

// Itt definiáljuk a timer objektumot, a paraméterek: PIN száma, bekapcs, kikapcs
// Fontos, hogy String-ben kell megadni a be és kikapcsolási időket, és az órákat is ki kell egészíteni 2 számjegyre,
// vagyis "6:00" nem jó, hanem "06:00" kell! - De ki akarna olyan korán világítani? :)
AquaTimer LedTimer(LIGHTS_PIN, "14:00", "22:00");

void setup() {
  // Óra modul indítása
  rtc.begin();
  if (rtc.lostPower()) {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  // ez a sor pedig kiírja a megadott pinre az adott időnek megfelelő értéket
  LedTimer.write();
}


Itt pedig egy példa 3 tápadagoló időzítéséhez. A kimenetek (6,7,8) relékkel, vagy mosfetekkel vezérlik a pumpák motorjait. A hardveres részt itt nem részletezném, a lényeg inkább a kód:
Kód beillesztése:
#include <RTClib.h>
#define WITH_DS3231
#include <AquaTimer.h>

RTC_DS3231 rtc;

// Ugyanaz, mint fent, csak egymás után több kimenetet kapcsolunk különböző időpontokban
// PIN, bekapcs, kikapcs
AquaTimer Micro(6, "13:40:00", "13:40:04");
AquaTimer Macro(7, "13:40:20", "13:40:24");
AquaTimer Carbo(8, "13:40:40", "13:40:44");

void setup() {
  rtc.begin();
  if (rtc.lostPower()) {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  // Külön-külön meg kell hívni az egyes kimenetekre a kiíratást
  Micro.write();
  Macro.write();
  Carbo.write();
}


És végül egy kicsit komplettebb példa, ahol már van led átmenet, holdfény effekt, szűrő kikapcs, és 4 tápadagoló:
Kód beillesztése:
#include <RTClib.h>
#include <AutoSwitch.h>

#define WITH_DS3231
#include <AquaTimer.h>

RTC_DS3231 rtc;

const int LED_PIN = 6;
const int FILTER_PIN = 7;

// A világítás bekapcsoló gombja, egy óra után kikapcsolja magát
AutoSwitch LedButton(2, 3600);
// A szűrő stop etetéshez, ami 5 perc után újraindítja a szűrőt
AutoSwitch FilterStopButton(3, 300);

AquaTimer LedTimer;
AquaTimer Micro(8, "13:40:00", "13:40:04");
AquaTimer Macro(9, "13:40:20", "13:40:24");
AquaTimer Carbo(10, "13:40:40", "13:40:44");
AquaTimer Phosphate(11, "13:41:00", "13:41:04");

void setup() {
  pinMode(FILTER_PIN, OUTPUT);
  rtc.begin();
  if (rtc.lostPower()) {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  // Világítás beállításai. A sok paraméter miatt metódus láncolással, hogy olvashatóbb legyen
  // A LED dimmeléséhez a PWM kimenet miatt relé helyett itt egy MOSFET-re lesz szükség!
  LedTimer
  .setPin(LED_PIN)
  .setOn("14:00")         // bekapcs
  .setTransition("30")    // átmenet ideje percben
  .setOff("22:00")        // kikapcs
  .setMoonDuration("60")  // holfény derengés ideje percben, a kikapcs után
  .setMaxVal("75%")       // a teljes fényerő dimmeléséhez. Ha 100% kellene, akkor elhagyható
  .setMoonVal(1);         // a holfény fényereje. Itt szándékosan van int, a lehető legkisebb fényerő kedvéért
}

void loop() {
  // Tápadagolók
  Micro.write();
  Macro.write();
  Carbo.write();
  Phosphate.write();

  // Világítás a teljes fényerő gombbal
  int buttonState = LedButton.getState();
  LedTimer.write(buttonState);

  // Szűrő stop -  a relén a NC (Normally Closed) kimenetre érdemes kötni a szűrő konnektorát
  int filterStopState = FilterStopButton.getState();
  digitalWrite(FILTER_PIN, filterStopState);
}

Ez a kód egyébként csak 29%-ot használ el egy UNO memóriájából, szóval a maradék 10 szabad lábra még bőven lehet konfigurálgatni hőmérőt, kijelzőt, etető automatát, twinstart, vagy amit épp gondoltok.

Jó kódolást!
És elkészült az időzítő lib is!
Ezt is ugyanúgy kell telepíteni, ahogy a többi library-t. A működéséhez szükség lesz az Adafruit féle RTClib-re is, ez segít az óra modullal való kommunikációban, ezt is mellékelem. Megírtam a példákat DS1307-re és DS3231-re is, az examples könyvtárban találjátok.

Először egy nagyon egyszerű példát mutatnék, pl: fénycsöves világítás ki-be kapcsolásához (ahol nem kell dimmelni), DS3231-el:
Kód beillesztése:
#include <RTClib.h>

// Itt mondjuk meg neki, hogy milyen órát használjon, ezt még a timer #include-ja előtt meg kell tenni!
#define WITH_DS3231       
#include <AquaTimer.h>

// A pin száma ami pl. a reléhez megy
const int LIGHTS_PIN = 6; 

// Ez nagyon fontos, hogy pontosan 'rtc' nevű változó kell a timernek, hogy be tudja olvasni az időt
RTC_DS3231 rtc;          

// Itt definiáljuk a timer objektumot, a paraméterek: PIN száma, bekapcs, kikapcs
// Fontos, hogy String-ben kell megadni a be és kikapcsolási időket, és az órákat is ki kell egészíteni 2 számjegyre,
// vagyis "6:00" nem jó, hanem "06:00" kell! - De ki akarna olyan korán világítani? :)
AquaTimer LedTimer(LIGHTS_PIN, "14:00", "22:00");

void setup() {
  // Óra modul indítása
  rtc.begin();
  if (rtc.lostPower()) {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  // ez a sor pedig kiírja a megadott pinre az adott időnek megfelelő értéket
  LedTimer.write();
}


Itt pedig egy példa 3 tápadagoló időzítéséhez. A kimenetek (6,7,8) relékkel, vagy mosfetekkel vezérlik a pumpák motorjait. A hardveres részt itt nem részletezném, a lényeg inkább a kód:
Kód beillesztése:
#include <RTClib.h>
#define WITH_DS3231
#include <AquaTimer.h>

RTC_DS3231 rtc;

// Ugyanaz, mint fent, csak egymás után több kimenetet kapcsolunk különböző időpontokban
// PIN, bekapcs, kikapcs
AquaTimer Micro(6, "13:40:00", "13:40:04");
AquaTimer Macro(7, "13:40:20", "13:40:24");
AquaTimer Carbo(8, "13:40:40", "13:40:44");

void setup() {
  rtc.begin();
  if (rtc.lostPower()) {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  // Külön-külön meg kell hívni az egyes kimenetekre a kiíratást
  Micro.write();
  Macro.write();
  Carbo.write();
}


És végül egy kicsit komplettebb példa, ahol már van led átmenet, holdfény effekt, szűrő kikapcs, és 4 tápadagoló:
Kód beillesztése:
#include <RTClib.h>
#include <AutoSwitch.h>

#define WITH_DS3231
#include <AquaTimer.h>

RTC_DS3231 rtc;

const int LED_PIN = 6;
const int FILTER_PIN = 7;

// A világítás bekapcsoló gombja, egy óra után kikapcsolja magát
AutoSwitch LedButton(2, 3600);
// A szűrő stop etetéshez, ami 5 perc után újraindítja a szűrőt
AutoSwitch FilterStopButton(3, 300);

AquaTimer LedTimer;
AquaTimer Micro(8, "13:40:00", "13:40:04");
AquaTimer Macro(9, "13:40:20", "13:40:24");
AquaTimer Carbo(10, "13:40:40", "13:40:44");
AquaTimer Phosphate(11, "13:41:00", "13:41:04");

void setup() {
  pinMode(FILTER_PIN, OUTPUT);
  rtc.begin();
  if (rtc.lostPower()) {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  // Világítás beállításai. A sok paraméter miatt metódus láncolással, hogy olvashatóbb legyen
  // A LED dimmeléséhez a PWM kimenet miatt relé helyett itt egy MOSFET-re lesz szükség!
  LedTimer
  .setPin(LED_PIN)
  .setOn("14:00")         // bekapcs
  .setTransition("30")    // átmenet ideje percben
  .setOff("22:00")        // kikapcs
  .setMoonDuration("60")  // holfény derengés ideje percben, a kikapcs után
  .setMaxVal("75%")       // a teljes fényerő dimmeléséhez. Ha 100% kellene, akkor elhagyható
  .setMoonVal(1);         // a holfény fényereje. Itt szándékosan van int, a lehető legkisebb fényerő kedvéért
}

void loop() {
  // Tápadagolók
  Micro.write();
  Macro.write();
  Carbo.write();
  Phosphate.write();

  // Világítás a teljes fényerő gombbal
  int buttonState = LedButton.getState();
  LedTimer.write(buttonState);

  // Szűrő stop -  a relén a NC (Normally Closed) kimenetre érdemes kötni a szűrő konnektorát
  int filterStopState = FilterStopButton.getState();
  digitalWrite(FILTER_PIN, filterStopState);
}

Ez a kód egyébként csak 29%-ot használ el egy UNO memóriájából, szóval a maradék 10 szabad lábra még bőven lehet konfigurálgatni hőmérőt, kijelzőt, etető automatát, twinstart, vagy amit épp gondoltok.

Jó kódolást!


Üdv,tudna valaki segíteni?
Az utolsó kódot próbálom feltölteni, de nem stimmel valami, felmegy az uno ra de nem működik, próbáltam több verzióval is.
Úgy csináltam ahogy le van írva , azokkal a csomagokkal is.
Feltöltés közben ezt dobja ki:
In file included from C:\Users\tomi\Desktop\sketch_dec25a\sketch_dec25a.ino:8:0:

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:65:10: warning: extra qualification 'AquaTimer::' on member 'write' [-fpermissive]

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:67:16: warning: extra qualification 'AquaTimer::' on member 'setPin' [-fpermissive]

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:69:16: warning: extra qualification 'AquaTimer::' on member 'setOn' [-fpermissive]

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:71:16: warning: extra qualification 'AquaTimer::' on member 'setOn' [-fpermissive]

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:73:16: warning: extra qualification 'AquaTimer::' on member 'setOff' [-fpermissive]

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:75:16: warning: extra qualification 'AquaTimer::' on member 'setOff' [-fpermissive]

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:77:16: warning: extra qualification 'AquaTimer::' on member 'setTransition' [-fpermissive]

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:79:16: warning: extra qualification 'AquaTimer::' on member 'setTransition' [-fpermissive]

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:81:16: warning: extra qualification 'AquaTimer::' on member 'setMoonDuration' [-fpermissive]

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:83:16: warning: extra qualification 'AquaTimer::' on member 'setMoonDuration' [-fpermissive]

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:85:16: warning: extra qualification 'AquaTimer::' on member 'setMaxVal' [-fpermissive]

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:87:16: warning: extra qualification 'AquaTimer::' on member 'setMaxVal' [-fpermissive]

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:89:16: warning: extra qualification 'AquaTimer::' on member 'setMoonVal' [-fpermissive]

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:91:16: warning: extra qualification 'AquaTimer::' on member 'setMoonVal' [-fpermissive]

In file included from C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.cpp:9:0:

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.h:39:10: warning: extra qualification 'AquaTimer::' on member 'write' [-fpermissive]

void AquaTimer::write(bool override = false);

^

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.h:40:16: warning: extra qualification 'AquaTimer::' on member 'setPin' [-fpermissive]

AquaTimer& AquaTimer::setPin(int pin);

^

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.h:41:16: warning: extra qualification 'AquaTimer::' on member 'setOn' [-fpermissive]

AquaTimer& AquaTimer::setOn(long on);

^

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.h:42:16: warning: extra qualification 'AquaTimer::' on member 'setOn' [-fpermissive]

AquaTimer& AquaTimer::setOn(String on);

^

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.h:43:16: warning: extra qualification 'AquaTimer::' on member 'setOff' [-fpermissive]

AquaTimer& AquaTimer::setOff(long off);

^

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.h:44:16: warning: extra qualification 'AquaTimer::' on member 'setOff' [-fpermissive]

AquaTimer& AquaTimer::setOff(String off);

^

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.h:45:16: warning: extra qualification 'AquaTimer::' on member 'setTransition' [-fpermissive]

AquaTimer& AquaTimer::setTransition(int transition);

^

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.h:46:16: warning: extra qualification 'AquaTimer::' on member 'setTransition' [-fpermissive]

AquaTimer& AquaTimer::setTransition(String transition);

^

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.h:47:16: warning: extra qualification 'AquaTimer::' on member 'setMoonDuration' [-fpermissive]

AquaTimer& AquaTimer::setMoonDuration(int dur);

^

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.h:48:16: warning: extra qualification 'AquaTimer::' on member 'setMoonDuration' [-fpermissive]

AquaTimer& AquaTimer::setMoonDuration(String dur);

^

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.h:49:16: warning: extra qualification 'AquaTimer::' on member 'setMaxVal' [-fpermissive]

AquaTimer& AquaTimer::setMaxVal(int maxVal);

^

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.h:50:16: warning: extra qualification 'AquaTimer::' on member 'setMaxVal' [-fpermissive]

AquaTimer& AquaTimer::setMaxVal(String maxVal);

^

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.h:51:16: warning: extra qualification 'AquaTimer::' on member 'setMoonVal' [-fpermissive]

AquaTimer& AquaTimer::setMoonVal(int moonVal);

^

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer\AquaTimer.h:52:16: warning: extra qualification 'AquaTimer::' on member 'setMoonVal' [-fpermissive]

AquaTimer& AquaTimer::setMoonVal(String moonVal);

^

Vázlat használ 9588 bájt (29%) -ot a program tárhelyből. A maximum 32256 bájt.
A globális változók 457 bájt (22%)-ot használnak a dinamikus memóriából, 1591 bájtot hagyva a helyi változóknak. A maximum 2048 bájt.
 
Valaki esetleg tudna egy hasonló kódot mint ez, csak 6 relét kéne egyesével, külön időben kacsolni?

// Date and time functions using a DS3231 RTC connected via I2C and Wire Lib

#include <Wire.h>
#include <RTClib.h>
#include <Time.h>
#include <TimeAlarms.h>

RTC_DS1307 RTC;

// Start Time
int sHour = 11;
int sMinute =30;
int sSecond = 0;

// End Time
int eHour = 11;
int eMinute = 30;
int eSecond = 4;

int lightRelay = 2;

void setup() {
// Set the relay to off immediately
digitalWrite(lightRelay, HIGH);

Serial.begin(9600);
Wire.begin();
RTC.begin();

// Set the pinmode
pinMode(lightRelay, OUTPUT);

// Notify if the RTC isn't running
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running");
}

// Get time from RTC
DateTime current = RTC.now();
DateTime compiled = DateTime(__DATE__, __TIME__);
if (current.unixtime() < compiled.unixtime()) {
Serial.println("RTC is older than compile time! Updating");
RTC.adjust(DateTime(__DATE__, __TIME__));
}

// Use RTC time to set the start time
setTime(sHour, sMinute, sSecond, current.day(), current.month(), current.year());
time_t s = now();

// Use RTC time to set the end time
setTime(eHour, eMinute, eSecond, current.day(), current.month(), current.year());
time_t e = now();
 
És elkészült az időzítő lib is!
Ezt is ugyanúgy kell telepíteni, ahogy a többi library-t. A működéséhez szükség lesz az Adafruit féle RTClib-re is, ez segít az óra modullal való kommunikációban, ezt is mellékelem. Megírtam a példákat DS1307-re és DS3231-re is, az examples könyvtárban találjátok.

Először egy nagyon egyszerű példát mutatnék, pl: fénycsöves világítás ki-be kapcsolásához (ahol nem kell dimmelni), DS3231-el:
Kód beillesztése:
#include <RTClib.h>

// Itt mondjuk meg neki, hogy milyen órát használjon, ezt még a timer #include-ja előtt meg kell tenni!
#define WITH_DS3231      
#include <AquaTimer.h>

// A pin száma ami pl. a reléhez megy
const int LIGHTS_PIN = 6;

// Ez nagyon fontos, hogy pontosan 'rtc' nevű változó kell a timernek, hogy be tudja olvasni az időt
RTC_DS3231 rtc;         

// Itt definiáljuk a timer objektumot, a paraméterek: PIN száma, bekapcs, kikapcs
// Fontos, hogy String-ben kell megadni a be és kikapcsolási időket, és az órákat is ki kell egészíteni 2 számjegyre,
// vagyis "6:00" nem jó, hanem "06:00" kell! - De ki akarna olyan korán világítani? :)
AquaTimer LedTimer(LIGHTS_PIN, "14:00", "22:00");

void setup() {
  // Óra modul indítása
  rtc.begin();
  if (rtc.lostPower()) {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  // ez a sor pedig kiírja a megadott pinre az adott időnek megfelelő értéket
  LedTimer.write();
}


Itt pedig egy példa 3 tápadagoló időzítéséhez. A kimenetek (6,7,8) relékkel, vagy mosfetekkel vezérlik a pumpák motorjait. A hardveres részt itt nem részletezném, a lényeg inkább a kód:
Kód beillesztése:
#include <RTClib.h>
#define WITH_DS3231
#include <AquaTimer.h>

RTC_DS3231 rtc;

// Ugyanaz, mint fent, csak egymás után több kimenetet kapcsolunk különböző időpontokban
// PIN, bekapcs, kikapcs
AquaTimer Micro(6, "13:40:00", "13:40:04");
AquaTimer Macro(7, "13:40:20", "13:40:24");
AquaTimer Carbo(8, "13:40:40", "13:40:44");

void setup() {
  rtc.begin();
  if (rtc.lostPower()) {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  // Külön-külön meg kell hívni az egyes kimenetekre a kiíratást
  Micro.write();
  Macro.write();
  Carbo.write();
}


És végül egy kicsit komplettebb példa, ahol már van led átmenet, holdfény effekt, szűrő kikapcs, és 4 tápadagoló:
Kód beillesztése:
#include <RTClib.h>
#include <AutoSwitch.h>

#define WITH_DS3231
#include <AquaTimer.h>

RTC_DS3231 rtc;

const int LED_PIN = 6;
const int FILTER_PIN = 7;

// A világítás bekapcsoló gombja, egy óra után kikapcsolja magát
AutoSwitch LedButton(2, 3600);
// A szűrő stop etetéshez, ami 5 perc után újraindítja a szűrőt
AutoSwitch FilterStopButton(3, 300);

AquaTimer LedTimer;
AquaTimer Micro(8, "13:40:00", "13:40:04");
AquaTimer Macro(9, "13:40:20", "13:40:24");
AquaTimer Carbo(10, "13:40:40", "13:40:44");
AquaTimer Phosphate(11, "13:41:00", "13:41:04");

void setup() {
  pinMode(FILTER_PIN, OUTPUT);
  rtc.begin();
  if (rtc.lostPower()) {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  // Világítás beállításai. A sok paraméter miatt metódus láncolással, hogy olvashatóbb legyen
  // A LED dimmeléséhez a PWM kimenet miatt relé helyett itt egy MOSFET-re lesz szükség!
  LedTimer
  .setPin(LED_PIN)
  .setOn("14:00")         // bekapcs
  .setTransition("30")    // átmenet ideje percben
  .setOff("22:00")        // kikapcs
  .setMoonDuration("60")  // holfény derengés ideje percben, a kikapcs után
  .setMaxVal("75%")       // a teljes fényerő dimmeléséhez. Ha 100% kellene, akkor elhagyható
  .setMoonVal(1);         // a holfény fényereje. Itt szándékosan van int, a lehető legkisebb fényerő kedvéért
}

void loop() {
  // Tápadagolók
  Micro.write();
  Macro.write();
  Carbo.write();
  Phosphate.write();

  // Világítás a teljes fényerő gombbal
  int buttonState = LedButton.getState();
  LedTimer.write(buttonState);

  // Szűrő stop -  a relén a NC (Normally Closed) kimenetre érdemes kötni a szűrő konnektorát
  int filterStopState = FilterStopButton.getState();
  digitalWrite(FILTER_PIN, filterStopState);
}

Ez a kód egyébként csak 29%-ot használ el egy UNO memóriájából, szóval a maradék 10 szabad lábra még bőven lehet konfigurálgatni hőmérőt, kijelzőt, etető automatát, twinstart, vagy amit épp gondoltok.

Jó kódolást!

Üdv, valaki tudna segíteni, építettem egy egyszerű vezérlést az utolsó kód alapján, a hardver megvan, de a kód nem működik pedig leírás alapján csinálom a megadott csomagokkal?
Most rakok össze egy új akváriumot ahoz kellene, vagy egy olyan működő kód amivel 6 relét tudnák külön időben kapcsolni.
 
Üdv,tudna valaki segíteni?
Az utolsó kódot próbálom feltölteni, de nem stimmel valami, felmegy az uno ra de nem működik, próbáltam több verzióval is.
Úgy csináltam ahogy le van írva , azokkal a csomagokkal is.
Feltöltés közben ezt dobja ki:
In file included from C:\Users\tomi\Desktop\sketch_dec25a\sketch_dec25a.ino:8:0:

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:65:10: warning: extra qualification 'AquaTimer::' on member 'write' [-fpermissive]

C:\Users\tomi\Documents\Arduino\libraries\AquaTimer/AquaTimer.h:67:16: warning: extra qualification 'AquaTimer::' on member 'setPin' [-fpermissive]
Csak tippelek, de ez a hiba talán akkor jelentkezhet, ha a .h és .cpp fájlokból valamiért átmásolod a kódot a .ino fájlba. A mellékelt librarykat be kell másolni a szokásos helyre a többi lib közé, és akkor nem lesz ilyen probléma.
Nagyon megéri legalább az alap bevezetők elolvasására rászánni az időt, és szerencsére az arduinohoz nagyon alapos és érthető leírások vannak.
 
Csak tippelek, de ez a hiba talán akkor jelentkezhet, ha a .h és .cpp fájlokból valamiért átmásolod a kódot a .ino fájlba. A mellékelt librarykat be kell másolni a szokásos helyre a többi lib közé, és akkor nem lesz ilyen probléma.
Nagyon megéri legalább az alap bevezetők elolvasására rászánni az időt, és szerencsére az arduinohoz nagyon alapos és érthető leírások vannak.
Üdv, elolvastam a bevezetőt, újra telepített arduino ide-vel, a melékelt libarykat bemásoltam a helyére de ugyan az a jelenség.
Megkérdezhetem hogy a kód melyik arduino ide verzióval készült, és milyen libaryk vannak telepítve?
 
Csak tippelek, de ez a hiba talán akkor jelentkezhet, ha a .h és .cpp fájlokból valamiért átmásolod a kódot a .ino fájlba. A mellékelt librarykat be kell másolni a szokásos helyre a többi lib közé, és akkor nem lesz ilyen probléma.
Nagyon megéri legalább az alap bevezetők elolvasására rászánni az időt, és szerencsére az arduinohoz nagyon alapos és érthető leírások vannak.
Az aquatimer könyvtárral van gond szerintem, kipróbáltam mind a kettővel amit linkeltél.
 
Back
Oldal tetejére