1. Ez a weboldal cookie-t használ. Az új EU szabályozásnak megfelelően ez az üzenet az első látogatáskor megjelenik.
    A weblap további használatával automatikusan elfogadod, hogy az Akvakertész.hu Fórum cookie-t használ.
    Az Akvakertész Fórum csapata Learn More.
  2. 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

    Értesítés elrejtése

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

Kategória: '"Csináld magad" (DIY) - barkács megoldások és tech', témanyitó: Victor, téma nyitása: Jan 4, 2013.

  1. Victor
    Épp nem fórumozik ...

    Victor VIP kertész

    Tag:
    Aug 26, 2009
    Hozzászólások:
    2,753
    Kedvelik:
    1,306
    Hely:
    Várpalota város, Veszprém megye
    Üdv mindenkinek
    Úgy gondoltam érdemes volna egy új topicot nyitni, egy , egyszerű , könnyen megépíthető akvárium vezérlőnek. Én mindig csodáltam azokat az embereket, akik egy marék elektronikai alkatrészből, különféle szerkezeteket tudnak építeni, szerencsére ilyen dolgok, már készen is kaphatóak, de azért némi munkánk nekünk is van vele, így némi ügyesség és elektromos ismeret szükséges az összeállításukhoz, és persze egy kis programozási tudás sem árt, de most az alap progit, (amivel kezdőként jó sokat kínlódtam) be fogom majd másolni a fórumra. (progit majd nyugodtan lehet kritizálni , de akkor tessék kijavítani is :sneaky: , és a fejlesztéseket sem vetjük majd meg)
    Még egy korábban a növény táppumpákkal kapcsolatos beszélgetések folyamán olvastam először az Arduino-ról, akkor annyira nem is foglalkoztatott a dolog, mivel már tervezgettem a magam ki vezérlőjét PLC ből, ami az azóta el is készült, egy Omron Zen segítségével.
    Mostanában egy új terven gondolkodom, és gondoltam, hogy azt miért is ne lehetne ezzel a kis microvezérlővel működtetni . ( csak halkan jegyzem meg, hogy ez a projekt egy indirekt/elektromos bojler összekötése, vezérlése vegyestűzelésű kazánnal) Mivel ez a dolog egy kicsit csúszik, így gyakorlás képen miért is ne lehetne összedobni egy rendszer akváriumhoz. Ahogy olvasom, folyamatosan probléma az időkapcsolók megbízhatósága, pontatlansága, és spec én szeretem, ha nem csúsznak szét a beállítások, mert az egyik siet a másik késik, ha van valamiféle növénytáp pumpa akkor annak meg másodperces időzítés kell stb.
    Nos nézzük mire is van szükségünk, először is kell egy arduino microkontroller. Nagyvonalakban annyit érdemes róluk tudni, hogy teljesen free cucc, na nem ingyen adják :) csak maga a panel szabadon gyártható, és a hozzá való programozó szoftver is letölthető az arduino.cc oldalról, nagyon sok mintaprogival, leírásokkal, youtube oktatóvideókkal stb, szóval eléggé támogatott termék. Mivel a panel szabadon gyártható, kifejlesztője csak a nevet védte le ezért infóim szerint a világon 150 körülire tehető azok száma akik gyártják, így olcsón beszerezhető, külföldről !! Kis hazánkban sajna jóval drágább, én a nemzetközi aukciós oldalról 15,45 dollárért (durván 3300 Ft) vettem, és ebben benne volt a posta is, és ezért az árért eleve regisztrált levélként küldték, és a panel minőségében sem találni semmi kivetnivalót. Választásom az arduino uno R3-as paneljére esett, ez egyenlőre bőven elég nekünk , persze másolat így csak UNO R3-felirat van rajta , a cucc amúgy szó szerint tenyérnyi méretű.
    [​IMG]

    A vezérlőben nincs óra, bár le tudja utánozni, de áramszünet esetén elfelejti a beállítást, így érdemes beruházni egy külső órapanelbe, ez potom 2,7 dollár kiadás
    [​IMG]
     
    nagyharcos, shade3, Tibi és 2 mások kedvelik ezt.
  2. Victor
    Épp nem fórumozik ...

    Victor VIP kertész

    Tag:
    Aug 26, 2009
    Hozzászólások:
    2,753
    Kedvelik:
    1,306
    Hely:
    Várpalota város, Veszprém megye
    Természetesen, mivel nagy feszültséget kell kapcsolni, ezért szükség van relépanelre is, ebből is sokfajtát kapni, fontos, az arduino 5 voltos, így ilyen relépanelt választottam. Érdemes körülnézni, mert mint a Tescoban is a liszt, itt is pl 2db 4 relés olcsóbb volt mint 1db 8-as.
    én ilyent vettem:
    [​IMG]
    költség 5,37 dollár/darab (durván:1160Ft)

    Szükség van még egy 230voltos tápra is. Arduinohoz 7és 12 volt között bármilyen táp jó, én megközöltem (meg ezt kimondottan ehhez ajánlották, és jó a csatija is), így 9V-ost vettem költség : 6,75$ (durván 1500Ft)
    utólag már találtam olcsóbban is, bár amit én vettem 1A-t tud, az olcsóbbak meg csak 0,6A-t
    [​IMG]


    Az arduino eredetileg egyfajta tanuló-hobbipanel, a panelnak, és a hozzá csatlakoztatható elemeinek is többnyire rádugós csatlakoztatása van, jól jöhet 1-2 készlet direkt hozzá készített kábel, a reléhez kimondottan szüksége lehet „apa-anya” kábelre. De persze lehet improvizálni megmaradt IDE winyó kábellel, vagy vékony de merev közepű vezetékkel, ha nem akar az ember szórakozni, akkor 3 dollár(természetesen postával) körül beszerezhető
    [​IMG]
    [​IMG]

    Felvetődött még bennem egy kis dilemma, mégpedig, hogy a reléknek valószínűleg elég nagy a fogyasztása, próbák alatt csak 1-2 órára volt, 2 relé huzamosabb ideig működtetve( világítás, CO2), de az arduino feszültségszabályzó része így is eléggé bemelegedett, ezért rendeltem egy ilyent potom 1,73 dollárért (391Ft)
    LM2596HV LM2596S DC-DC Step Down CC-CV Adjustable Power Supply Module
    terveim szerint ez csinál majd a 9 voltból, 5 voltot
    [​IMG]

    Első körben csak a Co2 illetve a világítás időkapcsolását tudtam leprogramozni, valamint lesz egy „etetőgomb” is ami meghatározott időre lekapcsolja a szűrőt. illetve, hogy a külső reaktor ne teljen meg addig gázzal, így erre az időre az a relé is kikapcsol.

    Szóval szükség lesz még egy nyomógombra, és egy 10K ohm-os ellenállásra is
    Valamint kell egy USB kábel, de ez jó esetben van is otthon(pl nyomtatóból addig ki kell húzni :) )

    Ez így összköltségben 7-8 ezer forint kiadás, ismétlen nem magyarországi , hanem kínai beszerzés esetén, így a dollár árfolyam miatt változhat az ár.

    Hamarosan folytatom az összeállítással
     
    boldivi, TZ, kisszsu és 5 mások kedvelik ezt.
  3. Beni
    Épp nem fórumozik ...

    Beni VIP kertész

    Tag:
    Júli 10, 2011
    Hozzászólások:
    3,132
    Kedvelik:
    2,285
    Hely:
    Tatabánya
    Nagyon irigylem azokat, akiknek mond valamit ez a két poszt. Én végigolvastam, de olyan szintű hiányosságaim vannak, hogy legalább annyira kínai Nekem az írásod, mint a beszerzett alkatrészeid.
    Ettől függetlenül kívánok sok sikert, remélem meg tudsz majd oldani minden felmerülő problémát, és sokaknak tudsz majd egy olcsó, de megbízható megoldást mutatni! (y)
     
    Jani 614 kedveli.
  4. Victor
    Épp nem fórumozik ...

    Victor VIP kertész

    Tag:
    Aug 26, 2009
    Hozzászólások:
    2,753
    Kedvelik:
    1,306
    Hely:
    Várpalota város, Veszprém megye
    Kösz szépen a biztatást! Ha megnyugtat nekem sem villamossági végzettségem van, de úgy hiszem ez a vezérlés dolog is olyan mint az akvarisztika, ha az embert érdekli és van kitartása akkor szép sikereket lehet vele elérni, szerencsére az interneten sok leírást lehet találni, bár sajnos pont olyan programot ami nekünk kell, nem találtam így magamnak kellett "összeollózni" kikísérletezni. A leírást is igyekszem elég részletesen megcsinálni. Minden téren egyszerűbb lenne komplett(PLC) vezérlőből csinálni, de azt 30 ezer alatt nem ússza meg az ember.
    Korábbi művem:
    Akvárium elektromos vezérlő kicsit másképp | Page 2 | Magyar Akvakertész Fórum
     
  5. Victor
    Épp nem fórumozik ...

    Victor VIP kertész

    Tag:
    Aug 26, 2009
    Hozzászólások:
    2,753
    Kedvelik:
    1,306
    Hely:
    Várpalota város, Veszprém megye
    Első lépések...

    Elsőként töltsük le, és csomagoljuk ki a a vezérlőnk fordító, feltöltő szoftverét a gyártó oldaláról:
    Arduino - Software
    A program tartalmazza a vezérlő driverét is, így ha a PC-hez való csatlakozás után reklamálna a gépünk akkor a program drivers könyvtárában van hozzá szoftver.
    Szükséges lehet még beállítani a panelunk típusát, de ha jól emlékszem alapban az UNO van beállítva
    USB kábelen keresztül vezérlőnk tápot is kap így egyszerűbb programokkal akár így is kisérletehetünk
    [​IMG]
    Szoftveres rész egyenlőre ennyi , kötözgessünk egy kicsit, kezdjük a nyomógomb bekötésével, ami majd a szűrőt fogja az általunk beállított időre lekapcsolni
    Nyomógombot bekötéséről a gyártó oldalán elég jó rajzot találni, (vezérlő felirata ne zavarjon senkit) , a gombon kívül szükségünk lesz egy 10Kohm-os ellenállásra is.
    Arduino - Button

    Nem tudom feltűnik-e a weboldalon, hogy a felső kép, és az alsó sematikus ábra nem egyforma, a negatív, GND egyiken az alsó, míg a másikon a felső részben van bekötve, ez itt egy érdekes dolog mert nekem van, hogy csak akkor működik ha az alsóba dugom be
    [​IMG]
    Puding próbája az evés :)
    A letöltött arduino szoftverünk tartalmaz egy csomó mintaprogramot, ezt a file menü- minták részben találjuk ezen belül nekünk a digital/button program kell, ezt feltöltve a vezérlőnkre, ha mindent jól csináltunk akkor a panelon a L jelű LED, a gombot megnyomva világítani fog.
    Természetesen a végső programban nem a LED-et fogjuk kapcsolni, de ellenőrzésnek jó, és siker esetén megvan az első sikerélményünk is(y)
    [​IMG]
     
  6. feinadam
    Épp nem fórumozik ...

    feinadam Főkertész

    Tag:
    Márc 30, 2012
    Hozzászólások:
    307
    Kedvelik:
    479
    Hely:
    Budapest XII.
    Szia!
    Én is egy hasonló projekten vacilálok már egy ideje. Az alktatrészeim is megvannak leszámíta a clock modul-t. A relék megtáplálásához a plusz táp nem egészen tiszta számomra. Azt nem tudom hány voltos a relé paneled, de pont az a lényege ezeknek a paneloknak hogy le van a relé választva egy optocsatolóval, így nem terheli a mikrovezérlőt, tehát közvetlen rá lehet kötni. A relé panelnak pedig kell egy külső táp. Célszerű olyat választani aminek megegyezik a feszűltsége a mikrovezérlő tápforrásáéval így mehet arról. Én pl 5v-os atmega128- hoz egy 5 voltos relé panelt vettem így a tápforrás ugyan az.
     
  7. Victor
    Épp nem fórumozik ...

    Victor VIP kertész

    Tag:
    Aug 26, 2009
    Hozzászólások:
    2,753
    Kedvelik:
    1,306
    Hely:
    Várpalota város, Veszprém megye
    Szia!

    Nem lesz plusz táp, az UNO R3-asban van feszültségátalakító ezért lehet 7-12Volt közötti tápot használni, eredetileg magáról az alappanelről tápláltam a relépaneleket is, amik 5 voltosak mint az arduino. Csak a tesztek alatt vettem észre, hogy a relék eléggé megterhelhetik a panel ezen részét, így utólag vettem ezt az átalakítót, ami a héten meg is jött, ez kicsit masszívabb alkatrészekkel rendelkezik, mint az arduinon lévők, bemenetere 4,75-35 voltig lehet kötni, kimenet pedig 1,25-26 voltig állítható, max. 3A tud az egész úgy 2x6centis kis panel. Ilyesmi bekötésben gondolkodom
    17659847_d00dcfaca7601b20f8e0899d33552ec7_m.
    Amúgy köszönöm szépen, hogy jelezted ezt a kis bakit, ezért jó ezt a fórum :) , igazad van abban, hogy jobb lett volna 5 voltos tápot vennem, csak mikor keresgéltem az aukciós oldalon, arduinohoz való tápokhoz ezt a 9 voltos tápot dobta ki a kereső, és nem is gondoltam akkor más tápra, hiszen a panel leírásánál ,meg 7-12voltos tápot írtak.
    Lehet, megpróbálom, hogy a tápcsatira kötve mükszik-e 5 voltról is a panel, ez lenne a jó, mert a panel automatikusan vált tápforrást, az USB-ről jövő tápról, a külső tápra, ha azt bedugom mellé.
    Nem tudom, nem-e gond, ha a fenti bekötés mellett be van dugva az USB is
     
    Czeglédy Gergő és feinadam kedvelik.
  8. gberecz
    Épp nem fórumozik ...

    gberecz Kertész szaki

    Tag:
    Okt 9, 2012
    Hozzászólások:
    205
    Kedvelik:
    222
    Hely:
    Újpest
    Nagyon jó kis projekt, sok sikert hozzá!

    Én beszereztem egy Raspberry PI-t és első körben csak a hőmérséklet és ph mérésen gondolkodtam, de ezek után meg kell fontolnom majd a te tapasztalataid felhasználását is (y)
     
  9. tsava
    Épp nem fórumozik ...

    tsava Kertész tanonc

    Tag:
    Febr 9, 2012
    Hozzászólások:
    41
    Kedvelik:
    4
    Szia mérd meg egy multiméterrel hogy az USB földje össze van e kötve a tápcsati földjével. Ha igen akkor mehet egyszerre ha nem, akkor lehetnek meglepetések.
     
  10. hectorvti
    Épp nem fórumozik ...

    hectorvti Kertész szaki

    Tag:
    Dec 19, 2009
    Hozzászólások:
    559
    Kedvelik:
    113
    Hely:
    Debrecen
    A Duemilanove-nél összevan, szerintem az R3-nál is!!!
     
  11. Victor
    Épp nem fórumozik ...

    Victor VIP kertész

    Tag:
    Aug 26, 2009
    Hozzászólások:
    2,753
    Kedvelik:
    1,306
    Hely:
    Várpalota város, Veszprém megye
    Köszi a tippet, össze vannak kötve.
     
  12. attibva
    Épp nem fórumozik ...

    attibva Legenda Legjobb napló

    Tag:
    Febr 6, 2011
    Hozzászólások:
    3,277
    Kedvelik:
    3,330
    Hely:
    Százhalombatta
    Le a kalappal! ;) Én még 1995-ben végeztem elektronikai műszerész technikuskén a Kolosban, de ez már nekem is kínai... szégyenszemre... ;) kíváncsi vagyok mit kerekítesz ki belőle!
     
  13. Victor
    Épp nem fórumozik ...

    Victor VIP kertész

    Tag:
    Aug 26, 2009
    Hozzászólások:
    2,753
    Kedvelik:
    1,306
    Hely:
    Várpalota város, Veszprém megye
    Én meg 1993-ban esztergályos szakmunkásként itt Várpalotán a Fallerban ;) , ez még nem is bonyolult, csak vezetékezünk:sneaky: , ha lesz időm, délután megírom az óramodulra vonatkozó rész , az már kicsit trükkösebb.
     
  14. Victor
    Épp nem fórumozik ...

    Victor VIP kertész

    Tag:
    Aug 26, 2009
    Hozzászólások:
    2,753
    Kedvelik:
    1,306
    Hely:
    Várpalota város, Veszprém megye
    Bekötöttem a rendszert 5 voltal, és a fenti ábra szerint bekötve, vagyis nem a tápcsatin kapja a feszültséget. Szépen működik, és az USB csatit is rá lehet dugni közben és rátölteni a progit vagy lekérdezni az óraállást. (itt ugye az a szitu,, hogy az USB 5 voltjáról is műkszik, de automatikusan átvált ha külső tápot dugunk be, csak ezt a részt valószínűleg ezzel a módszerrel megkerüljük)
    Viszont ha az 5voltot a tápcsatiján keresztül kapja az már nemigazán szereti, nincs ereje működtetni a reléket.
    Aki kíváncsi mi is lesz belőle, annak elárulom, jó nagy kábeldzsunbuj ;) persze végleges verzióban, dobozoláskor szépen el lehet mindent rendezni. Már korábban, hetekkel ezelőtt is összeraktam, de most hagyom, had menjen folyamatosan pár napig. Most kapcsolt le 19-kor a "világítás" :)
    [​IMG]
     
    feinadam, soosgy és gberecz kedvelik.
  15. TZ
    Online

    TZ VIP kertész

    Tag:
    Júli 12, 2009
    Hozzászólások:
    1,023
    Kedvelik:
    2,210
    Hely:
    Bp., Óbuda
    Victor, ez szenzációs!

    Köszi, hogy megosztottad velünk! Mindig ilyen cuccokra vágytam, de elég analóg vagyok, így magamtól nem bukkantam rá. Sajnos a jelenleg készülő akváriumhoz már mindent beszereztem, más megoldással lesznek vezérelve a dolgok. Ha kész, beszámolok majd róla, de rögtön utána beszerzem ezeket arduino kütyüket. ;)
     
  16. Victor
    Épp nem fórumozik ...

    Victor VIP kertész

    Tag:
    Aug 26, 2009
    Hozzászólások:
    2,753
    Kedvelik:
    1,306
    Hely:
    Várpalota város, Veszprém megye
    Köszönöm mindenkinek a dicséreteket, akkor jöjjön a következő lépés kössük és üzemeljük be a óramodult.

    A DS1307-es RTC (Real Time Clock) panelt a következő ábra szerint kell bekötni, annyi különbséggel, hogy nekünk a DS/ digital 2-es(szaggatott vonallal összekötött) kapcsolatot nem kell megcsinálni, ez egy kis quarcóra lelke, így van benne ébresztés is, na arra nekünk nincs szükségünk, 2-es bemenetre amúgy is az etetőgombot kötjük :)
    [​IMG]

    Amikor végeztünk a bekötéssel, akkor ugye be kellene állítani a pontos időt, amihez szükségünk van a testRTC nevű programra, sajnos ez nincs az arduino mintaprogramjai között (file menü/minták) viszont innen letölthető egy zippel csomag pár kiegészítő mintaprogrammal, köztük az előbb említett progi is :
    arduinolibs/libraries/RTC at master · rweather/arduinolibs · GitHub
    Az arduinolibs-master.zip file letöltéséhez az alábbi gombra kell kattintani:
    [​IMG]
    (előfordulhat, hogy nem jelenik meg a letöltőgomb, akkor katt a "Files" )
    Miután kicsomagoltuk, akkor a "libraries" könyvtár tartalmát másoljuk be az arduino programunk szintén ugyanilyen nevű könyvtárába. Ezután a mintaprogramok új elemekkel bővülnek, töltsük be innen a Test RTC programot (file/minták/RTC).
    A programot töltsük fel a vezérlőnkre, miután feltöltődött, kattintsunk a keretprogramunk jobb felső részében, a nagyítóra emlékeztető ikonra, ekkor az alábbi ablak jelenik meg:
    [​IMG]
    Itt tudjuk beállítani az órát, és a dátumot, valamint az ébresztést, de ezt ugye most nem használjuk, igazából a dátumot sem muszáj :)
    Fontos! Mindet az ott látott formában, de nagy zárójelek nélkül kell beírni, pl: TEMP 15:00:00
    Ha jól csináltuk akkor a következő szöveget olvassuk "Time has been set to: 15:00:00"
    Miután beállítottuk az órát, és aki akarta a dátumot, NVRAM paranccsal mentsük el a beállítást az órapanelbe.
    Ha jól csináltunk mindent akkor egy új ablakba bemásolva, és feltöltve az alábbi programot, majd szintén a kis nagyítóikonra kattintva szépen másodpercenként frissítve láthatjuk az aktuális időt:

    Kód beillesztése:
    #include <Wire.h>
     
    int hour;
    int minute;
    int second;
    int month;
    int day_of_week;
    int day;
    int year;
    int relPin = 9;
     
    char* dow[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
     
    void setup()
    {
      Serial.begin(9600);
      Wire.begin();
      digitalWrite(relPin, LOW);
      pinMode(relPin,OUTPUT);
    }
     
    void loop()
    {
      // Below required to reset the register address to 0.
      Wire.beginTransmission(104); // transmit to device #104, the ds 1307
      Wire.write(0x00);
      Wire.endTransmission();    // stop transmitting
     
      Wire.requestFrom(104, 7);    // request 7 bytes from slave ds1307, we'll assume it'll send them all even though it doesn't have to
      second = Wire.read();
      minute = Wire.read();
      hour = Wire.read();
      day_of_week=Wire.read();
      day = Wire.read();
      month = Wire.read();
      year = Wire.read();
     
      // Convert all the BCD values that might have "tens" to decimal.  Most arduino folks do this w/shifts but this just looks easier to me.
      hour=hour/16 * 10 + hour % 16;
      minute=minute/16 * 10 + minute % 16;
      second=second/16 * 10 + second % 16;
      day=day/16 * 10 + day % 16;
      month=month/16 * 10 + month % 16;
      year=2000 + year/16 * 10 + year % 16;
     
      Serial.print(hour);
      Serial.print(":");
      if (minute < 10) { Serial.print("0"); }
      Serial.print(minute);
      Serial.print(":");
      if (second < 10) { Serial.print("0"); }
      Serial.print(second);
      Serial.print(" ");
      Serial.print(dow[day_of_week-1]);  // array is 0-6, but the dow register holds 1-7, so subtract 1.
      Serial.print(", ");
      Serial.print(month);
      Serial.print("/");
      Serial.print(day);
      Serial.print("/");
      Serial.print(year);
      Serial.print("\n");
     
      delay(1000);
    }
    
    Ezzel az óra bekötése, beállítása meg is van, már csak a relépanelt kell csatlakoztatni, feltölteni a végleges progit
     
    A. Kavicsos, TZ és gberecz kedvelik.
  17. Victor
    Épp nem fórumozik ...

    Victor VIP kertész

    Tag:
    Aug 26, 2009
    Hozzászólások:
    2,753
    Kedvelik:
    1,306
    Hely:
    Várpalota város, Veszprém megye
    Relépanel

    Nemzetközi aukciós oldalon rákeresve (arduino relay) nagyon sok találatot dob ki a kereső, direkt ezekhez a vezérlőkhöz ajánlva árulnak, különböző relészámmal rendelkező relépaneleket. Korábban is elhangzott, hogy érdemes ebből 5 voltosat választani, mivel a vezérlőnk is ilyen feszültségen működik. bekötésnél a panelt direktben is meg kell táplálni. Egy ilyen bekötést egy korábbi hozzászólásomnál is láthattok, persze a bemenetek elhelyezkedése ettől eltérhet, nálam pl. elöl van a pozitív (VCC) illetve a negatív(GND) csatlakozása.
    [​IMG]
    Az általam szerkesztett progamnál egyenlőre csak 3 relét fogunk használni, ki melyik relét köti be az szabadon választott, arduino panelon a kimenetekre programozott funkciók a következők:
    2-es kimeneten van a nyomógomb
    3-ason a szűrő, értelem szerűen itt az ide tartozó relé, alapban zárt ágát kell bekötni
    4-esen a világítás
    5-ösön pedig a CO2

    Még maradt egy relénk erre lehetne éjszakára légpumpát kötni, de ez egyenlőre még nincs a programba, valamint , mivel van még bőven szabad kimenetünk, így abban szeretném majd programozáshoz értő (azt hiszem az arduino alapja C++) akvarista társak segítségét kérni, hogy egy adott időben hogyan lehet x másodpercre bekapcsolni egy kimenetet, ez jól jönne növénytáppumpák kapcsolásásnál. de sajna egyenlőre nem tudom hogy is kellene kinéznie egy ilyen programrésznek .
    Sajnos nem nagyon találtam ilyen órakapcsolással kapcsolatos mintaprogramokat se, de sikerült nagy nehezen kikönyörögni egy kis segítséget, hogy az egy esetleges áramszünet után is működjön.
    Igyekeztem meg kommentezni a programot, de azért leírom itt is a beállítást. Az adott kimenet beállítását egy egyszerű matematikai művelet értékét kell módosítani
    Ha azt szeretnénk, hogy a világítás reggel 8 és 20 között működjön, akkor ezt a következő matematikai egyenletbe foglaljuk bele
    kapcsoljon be a kimenet, ha az aktuális óra x60 hozzáadva a percet nagyobb mint 480, DE kisebb mint 1200
    Ez leprogramozva:
    if (hour*60+minute>480 and hour*60+minute<1200)
    Szóval a megfelelő be és kikapcsolási időt ennek a két vastagon kiemelt értéknek a változtatásával lehet beállítani.
    Remélem sikerült mindenki számára érthetően leírni :)

    Akkor a program:
    Kód beillesztése:
    #include <Wire.h>
     
    int hour;
    int minute;
    int second;
    int buttonPin = 2; //nyomogomb bemenet
    int rel2Pin = 3;  // "etetogomb" szűrőstop a beállított ideig
    int relPin = 4;//vilagitas kimenet
    int relco2Pin = 5; //CO2 vezerles
    int buttonState = 0; 
     
    void setup()
    {
      Serial.begin(9600);
      Wire.begin();
      digitalWrite(relPin, LOW);
      pinMode(relPin,OUTPUT);
      pinMode(rel2Pin, OUTPUT);
      pinMode(relco2Pin, OUTPUT);
      pinMode(buttonPin, INPUT);
    }
     
    void loop()
    {
     
     
    Wire.beginTransmission(104);
    Wire.write(0x00);
    Wire.endTransmission();   
    Wire.requestFrom(104, 7); 
    second = Wire.read();
    minute = Wire.read();
    hour = Wire.read();
     
    hour=hour/16 * 10 + hour % 16;
    minute=minute/16 * 10 + minute % 16;
    second=second/16 * 10 + second % 16;
     
     
    Serial.print(hour);
    Serial.print(":");
    if (minute < 10) { Serial.print("0"); }
    Serial.print(minute);
    Serial.print(":");
    if (second < 10) { Serial.print("0"); }
    Serial.print(second);
    Serial.print("\n");
    delay(1000);
     
    //Etetogomb
      buttonState = digitalRead(buttonPin);
    if (buttonState == HIGH)
    {   
    digitalWrite(rel2Pin, HIGH);
    digitalWrite (relco2Pin, LOW);
    delay(120000);  //etetogomb idozitese millisekundumban
    }
    else
    {
    digitalWrite(rel2Pin, LOW);
    }
     
    // Vilagitás (be) and (ki) ha 10:10 kor szeretned bekapcsolni, akkor 10x60+10=610, ezt ird be, hasonló az eljárás, a kikapcsolási idővel
     
      if (hour*60+minute>540 and hour*60+minute<1140)
    {
    digitalWrite (relPin, HIGH);
    }
    else
    {
    digitalWrite (relPin, LOW);
    }
     
    //CO2 vezerles, kapcsolás, az etetőgomb megnyomásakor felfüggesztődik, hogy a reaktor ne teljen meg gázzal
     
    if (hour*60+minute>480 and hour*60+minute<1080)
    {
    digitalWrite (relco2Pin, HIGH);
    }
    else
    {
    digitalWrite (relco2Pin, LOW);
    }
     
     
     
    }
    
     
    rodenj, vapega és A. Kavicsos kedvelik.
  18. rodenj
    Épp nem fórumozik ...

    rodenj Tapasztalt kertész

    Tag:
    Márc 28, 2012
    Hozzászólások:
    67
    Kedvelik:
    36
    Hely:
    Budapest, XVIII.
    Szia, az ardunio hivatalos oldalán van erre megoldás, pl. a relé modulnál, alul van program részlet, x másodpercre bekapcsolás:

    TinkerKit Relay Module [T010010] - €8.90 : Arduino Store - community and electronics
     
  19. Victor
    Épp nem fórumozik ...

    Victor VIP kertész

    Tag:
    Aug 26, 2009
    Hozzászólások:
    2,753
    Kedvelik:
    1,306
    Hely:
    Várpalota város, Veszprém megye
    Köszi a linket, de ez nekünk nem jó, mivel csak másodpercenként ki-be kapcsolgatja a relét, nekünk viszont olyan parancs kell, hogy egy bizonyos időpontban kapcsoljon be pár másodpercre egy kimenetet, de aznap többet ne,(esetleg carbo-nál még 1x ha valaki két részre osztja a napi adagot) ez ugye a növénytáppumpákhoz kellene , amik, pl ami nekem van, 1ml-t nyom másodpercenként. Ablakmosó szivattyús megoldásnál, pedig még rövidebb időzítés kell.
     
  20. soosgy
    Épp nem fórumozik ...

    soosgy Nézelődő

    Tag:
    Jan 21, 2011
    Hozzászólások:
    14
    Kedvelik:
    1
    Hely:
    Szombathely
    Szia Victor,

    Tetszik ez a projekted, arduino szerintem nagyon jó ilyen célra.

    A problémádra nagyon egyszerű a megoldás: ugyanaz kell Neked a tápadagoláshoz, mint amit a fentebbi kódban már szépen megvalósítottál :)

    A tápadagolásra használhatod ugyanazt a módszert, mint a lámpa és a co2 esetében: adott időintervallumban kell bekapcsolni a pumpát, csak itt másodpercekkel számolsz. Ha ez túl hosszú, akkor az etetőgombnál használt megoldással tudod ötvözni: ha eljött az idő, akkor bekapcsolja a pumpát, majd a delay() függvénnyel millisec-re tudsz időzíteni, utána lekapcsolod.
     

Aktuális oldal megosztása