Új hozzászólás Aktív témák

  • biker

    nagyúr

    válasz tibi-d #17700 üzenetére

    nagyon szuper, és mehet egy buszra az i2c oled kijelzővel együtt?

    Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

  • biker

    nagyúr

    válasz tibi-d #17702 üzenetére

    köszi!

    Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

  • fpeter84

    senior tag

    válasz biker #17699 üzenetére

    [itt] tudsz mazsolázni a microchip kínálatából - I2C-re vannak 2 és 4 bemenetes I2C AD-k is, pl az MCP3424 vagy MCP3428... lehet picit feleslegesen túl okosak a célra, de ha a költségvetés elbírja a bruttó ~2e-es árát akkor még arduino támogatást is hozott hozzájuk a gugli, találsz lib-et példaprogikkal - itthon a chipcad-nél vannak is raktáron...

    ja meg elhangzottak a multiplexerek is, ha nem kell nagy sebességgel olvasni az analógokat, akkor az is lehet jó megoldás hogy pár analógnak jelölt lábat digitként használsz, és azzal kapcsolgatsz egy multiplexert az 1db analóg lábra és úgy olvasod a sok sok bemenetet egyesével

    [ Szerkesztve ]

  • biker

    nagyúr

    válasz fpeter84 #17704 üzenetére

    köszi

    Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

  • Undoroid

    őstag

    válasz Janos250 #17688 üzenetére

    Szia Janos250!

    Csináltam egy próbatákolást a Joy-hoz, de a középső furat (4 szélső a felfogatás és egy maga az irányító) egy kicsit mellé ment. Nem-e lehet valahonnan megszerezni a pontos furattávokat erről a Joy-ról? Sokat keresgéltem a NET-en, de nem találtam. Ezekben a 3D-s nyomtatási tervekben nem találhatóak meg ezek a méretek? Valahogyan nem-e lehet kimenteni ezeket az adatokat? :F
    Ellenkező esetben kénytelen leszek leforrasztani mindent a hordozópanelról és úgy méretet venni... :O

    https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-

  • Dißnäëß

    veterán

    Sziasztok Urak, szerintetek kell nekem egy mini üvegházas projektke automatizálásához a sok-sok szenzorhoz és ahhoz a pár víznyitó-záró szelephez egy marék Arduino (pl. pici Leonardo-kat tenni X kaspónként és őket szólítani meg wifin keresztül), vagy jobban járok 1db Mega-val, ami letudja mondjuk az 5V-os Arduino ökoszisztémát és egy ESP-vel vagy akár Pi-vel, amivel meg a 3.3V-os motyókat tudom vezérelgetni. Ezek nyilván összebeszélnének, ...

    Ti hogy csinálnátok legegyszerűbben ? És bíznátok a wifiben amúgy ? Nyilván ha lehal, ugrott az egész, ezért gondolkodom valamiféle busz rendszeren, amiről minden cserépben lévő szenzor felrak adatot (vezetéken, vagy vezeték nélkül, de a wifivel az a gondom, hogy ha a router lehal, ugrott minden, esetleg több eszközből csinálok mesh-t, de minek bonyizzam + drága is).. szóval .. inkább valami 1-wire-re gondoltam és digitális címzésre, hogy egyetlen eszközön fizikailag csak kevés tüskét foglaljak el a vezetékes kapcsolattal és akkor erre meg mindegyik szenzort és/vagy kontroll eszközt fel tudom aggatni és digitálisan címezni, elérni.

    Egyszerűre gondoljatok: pár kaspó ilyen növénynek, pár kaspó amolyannak, megint pár kaspó a harmadiknak, semmi különös. Mindegyikben lenne 1 talajnedvesség szenzor, meg kontrollálnám valami elektromosan vezérelhető szeleppel a vizet is nekik (csepegtetés valszeg, de nekem az is oké, ha kinyit, locsol X mp-ig, majd elzár).

    Meg talán egy fénymérő még. Ennyi.

    Nem akarom hülyére bonyizni, de jó kis önmenedzselő valamit vizionálok.
    Van egy régi öreg Pi1B-m, befoghatnám, meg ilyenekre lövök (úristen... mikor legutoljára vettem, még $1.5 volt darabja, de apám 0.99-ért is kapott). :Y

    A vezeték híve vagyok, lehet nem wifiznék, de érdekelne a véleményetek.

    A "mindent látó és intéző" központi agy ideája (Pi) és a kaspónkénti Arduino, némileg oda letolt logikák közt billegek. Ha a Pi összekakilja magát (megeshet, mint mindennel), mivel ide van hozva programba a vezérlés az utolsó mindenségig is, az egész kisház lehalna. Ha pedig a kaspónként elhelyezett kis Arduino-kba ki van ez téve, vagy legalábbis a vezérlési logika egy darabja, akkor viszonylag autonóm módon is elmennek ezek, akkor is, ha a központi agy, a Pi még létezik és irányítja őket.

    Én arra gondoltam, hogy kaspónként egy ilyen kis Arduino, és a Pi arra lehetne jó, hogy egyetlen paraméter-változást, parancsot, akármit, egyszerre juttassak el mindegyik - önállóan autonóm - Arduino-hoz.

    Túlbonyizom, lehet, de szeretnék egy optimális logikát/setup-ot kitalálni.

    Ha van kedvetek - nem akarok untatni senkit ilyenekkel - szívesen látnék pár gondolatot, bármi jöhet, tapasztaltabbaktól. :K :R

    Lá lá lá lá lááá lááá.. Lá lá lá lá lááá lááá .. Lá lá lá lá lááá lá lááá lá lá lá lááááá láááá

  • Janos250

    őstag

    válasz Undoroid #17706 üzenetére

    Szia!

    Megnéztem, töltöttem le ilyen fájlt, de sokra nem jutottam.
    Esetleg az Alin a panel képe alulról?
    https://www.aliexpress.com/item/1005002740079191.html
    vagy felülről?
    https://www.aliexpress.com/item/4001276857056.html

    Vagy erről a képről:
    https://sensorkit.joy-it.net/de/sensors/ky-023

    Esetleg erről a képről, itt vannak mértek, lehetne arányosítani.
    https://lastminuteengineers.com/joystick-interfacing-arduino-processing/

    Aztán persze az is elgondolkodtató, hogy ha VÁM-mal, ÁFA-val, szállítással 500 forintért bejön Kínából, érdemes-e sajátot csinálni.

    [ Szerkesztve ]

    Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

  • biker

    nagyúr

    válasz Dißnäëß #17707 üzenetére

    szerintem túlbonyolítod (növényvilágító lámpákkal foglalkozunk), ilyen helyeken a jó megoldás vagy agyaggolyós hidrós megoldás, ahol folyamatos csepegtetés van, esetleg időzítővel csepegtető ki-be, vagy ebb-flood rendszer ami szintén mezei időzítővel ár-apály rendszerrel nedvesít.
    A talajnedvesség érzékelés féle ultrahightech nagyon kevés növénynek kell, vagy a határok feszegetésekor, pl magas hőmérsékleten és páratartalmon co2 beoldással hozamot növelni, mert ha nincs elég hőmérséklet akkor a co2 nem hasznosul eléggé.
    Fényből meg ha automatizálni akarod úgy igazán, akkor csatornánként dimmelhető lámpa (hideg-meleg fehér, UV, IR, FR sávok), és akkor lehet recepteket kialakítani, de ahhoz spécibb fényérzékelők kellenek, mert a klasszik lux mérők erre nem alkalmasak.

    Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

  • biker

    nagyúr

    válasz Aryes #17710 üzenetére

    Sokan sokfélék vagyunk :) ott az aláírásomban az agrárvilágítas honlapja :)

    Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

  • Dißnäëß

    veterán

    válasz Aryes #17710 üzenetére

    Most nekem is leesett az állam, se köpni, se nyelni :D
    Gondolkodok itt a kis "hobbiprojekten" aztán izé.. :)) üljek le, eggyes.. kb. :D

    @biker, köszi, hasznos volt. :R

    Lá lá lá lá lááá lááá.. Lá lá lá lá lááá lááá .. Lá lá lá lá lááá lá lááá lá lá lá lááááá láááá

  • Undoroid

    őstag

    válasz Janos250 #17708 üzenetére

    Szia!

    Köszönöm a sok keresgélést, de sajnos ezek nem a legjobb kiindulási alapok! Annyit viszont segített, hogy a forrcsúcsok közül a 'belső négy' (szürke körök) megadja / megadják a Joy 'gombájának' a középpontját! Látszik a képen, hogy a négy pont átlójának metszőpontjában ott lehet a 'gomba' közepe! Sajnos ehhez is ki kell forrasztanom az egész elektronikát a hordozóról, de az alapján már össze tudok hozni egy teljes furatképet (sablont) a Joy furatairól! :R Vagy lenyomatot veszek egy négyzetrácsos papírral a panel forrcsúcsairól és abból rajzolom vissza a furatképet...

    " Aztán persze az is elgondolkodtató, hogy ha VÁM-mal, ÁFA-val, szállítással 500 forintért bejön Kínából, érdemes-e sajátot csinálni. " Úgy tűnik, hogy félreértettél! Nem egy új ilyen szerkezetet akarok építeni, hanem a meglévőt szeretném valami előlapba beleszerelni, ahol szépen tudja majd a dolgát végezni és védve lesz a külső, ártó behatásoktól! :B

    https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-

  • Janos250

    őstag

    válasz Dißnäëß #17712 üzenetére

    Ha profi megoldást akarsz, akkor persze még a napot is dimmelhetővé kell tenned, de kérdés, akarsz-e ilyen profi, méregdrága megoldást, vagy maradsz az egyszerűbb, olcsóbb, de kevesebbet tudó megoldásnál. Ez utóbbi az Arduino! :-) Ezért (is) szeretjük! :-) Nagyon sokszor elegendő az, amit az Arduino tud! Én ennél maradnék.
    Csatlakozásokra én azt csinálnám, hogy a szenzorokhoz valami kis panelka, ami vagy vezetéken, vagy WiFin kapcsolódik össze. A router hibája kiküszöbölhető az ESPNOW megoldással, mert ott nem igazi WiFi kapcsolat van, csak a WiFi hardverrel az egyes egységek MAC címmel tartják egymással a kapcsolatot, nincs pl. IP cím. (Ezt is csak elméletből tudom, még jutottam odáig, hogy kipróbáljam.) Ennél a megoldásnál az Espressif elég kevés információt tesz közzé, nem nagyon lehet vele variálni, csak azt lehet, és úgy, ahogy ők leírták. Például az ESP32-nél az egyes perifériakezelések regiszterei, és azok használata is elég jól le van írva, a WiFinél még azt sem tudjuk, melyik címtartományban van.

    Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

  • Dißnäëß

    veterán

    válasz Janos250 #17714 üzenetére

    Köszi, ez lesz szerintem, megyek az egyszerűbb úton.

    Lá lá lá lá lááá lááá.. Lá lá lá lá lááá lááá .. Lá lá lá lá lááá lá lááá lá lá lá lááááá láááá

  • biker

    nagyúr

    válasz Dißnäëß #17712 üzenetére

    Dehogyis, a hobbi az hobbi, nyomjad neki :)
    Csak a talajnedvesség mérése (a talaj egy adott részén) lehet félrevezető a gyökérzet egészére nézve.

    HA a napot akarod dimmelni, akkor Zeus lámpa, és ehhez lehet venni érintőképernyős vezérlőt, emi 2 csatornán (mondjuk két külön terem) 50 lámpát kezel egyszerre, óránként beállítható hideg fehér, meleg fehér, és UV arányokkal, napkelte napnyugta szimulálható a növénynek akár.
    PWM jelekkel operál, akár csinálhatsz is rá egy vezérlőt te magad.

    Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

  • Undoroid

    őstag

    Egy újabb kérdésem lenne EZZEL a projekttel kapcsolatban...

    Amikor túrtam a NET-et a furatképpel kapcsolatban, akkor belefutottam egy YT-videóba, amiben ez (?) az összeállítás volt megplusszolva egy 2x16-os LCD kijelzővel. A kijelzőn mindössze annyi volt olvasható, hogy a vezérlő mennyit léptetett + és - irányba! Sajnos a videó kommentjei közötti "Code?" kérdésre nem érkezett válasz!

    Az lenne a kérdésem, hogy az eredeti kódot át lehetne úgy írni, hogy kezelje az LCD-t, az pedig indikálja az elforgatás mértékét?

    https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-

  • Undoroid

    őstag

    válasz Undoroid #17717 üzenetére

    Kicsúsztam :B a szerkesztési időből, mire megtaláltam a videót: KLIKK

    " Sajnos a videó kommentjei közötti "Code?" kérdésre nem érkezett válasz! " Vagyis érkezett, rosszul emlékeztem: " The test code had been deleted!!!! " Ezzel, ugye egy olyan kezdő, mint Én nem tud elindulni...belógatta a mézesmadzagot ezzel a videóval és törölte a kódot! :W

    Valaki tudna valami támpontot adni ezzel kapcsolatban? Nem kérem senkitől, hogy oldja meg helyettem a feladatot, mindössze iránymutatásra lenne szükségem...

    Mielőtt belebonyolódnánk az egészbe: nem kell a uC-nek megjegyezni az utolsó értéket! Azt minden bekapcsoláskor 0-ról kezdene számolni!

    Előre is megköszönném mindenkinek a Rám fordított idejét...ha lesz ilyen! :R

    https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-

  • Tankblock

    aktív tag

    válasz Undoroid #17718 üzenetére

    Ha az elforgatás mértéke érdekel, akkor annyit kell tudnod, hogy 1 step az hány fok, és azt hogy steppet lépsz vagy microsteppet. --> Motor datasheet segít 1.8 fokos vagy más.

    Ugye a microstep az egy step felosztva annyiad részre ahány microstep.
    Microsteppet normál esetben csak motorvezérővel fogsz tudni megoldani, annke ez paramétere lesz valahol....

    Ezek után ha tudod a loop elején h jobbra vagy balra forgatod a steppert, ki tudod számítani a fokot is... Az LCDre kiírod majd kiadod motornak a forgás fvg h merre is csináljon mit....

    [ Szerkesztve ]

    Release the Beast....

  • Aryes

    nagyúr

    válasz biker #17711 üzenetére

    A prémium előfizetés egyik előnye, hogy ki lehet kapcsolni az aláírásokat. :B

  • biker

    nagyúr

    válasz Aryes #17720 üzenetére

    ja értem :D biztos érdekes, de nem tudom mire jó.

    Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

  • Aryes

    nagyúr

    válasz biker #17721 üzenetére

    Például arra, hogy ki lehessen kapcsolni az aláírásokat a fórumon. :DDD
    Meg a reklámokat.

  • Dißnäëß

    veterán

    válasz biker #17716 üzenetére

    Atyaég, értem amit mondasz, de ez iszonyú profi megoldás, ennyire nem rohanok előre.

    Bevallom, kiskertet szeretnék. Most mindenki be van ijedve, én ugyan nem, de már 5 éve filózok ilyenen. Kicsiben indulni, pl. a kertben leteszek egy ~3x4-es alapot, arra egy kreatívan megcsinált "kisház", ahol a tető mondjuk ütésálló fóliázott biztonsági üvegezett valami (jégeső..) és alatta tudnék alkotni. Megtehetem tök legálisan, beépíthetőség, stb.. minden engedi.

    "Piramis" jellegű állványzat pár gerendából-lécből, hosszúkás vízszintes "muskátlis" kaspók egymás mellett-felett, eltolva mindig eggyel bentebb, így mind kap (természetes) fényt. Oldalról mint egy "A" betű, aminek a száraira teszem fel lépcsőzetesen ezeket.

    És akkor paradicsom, paprika, uborka, bab - elsőre. Hagyma.. De még lehet ezt is átgondolom, mindenesetre a húsmentest is kidolgoznám és a bab jó fehérjeforrás. Meg még biztosan lehet mást is.

    A cél az lenne, hogy kitanuljam ennek csínját-bínját, ellátni nem fog ennyi nyilván, de szeretném megtanulni ezeket. Az egyes növényeket ismerve, folyadékigényüket (is), lehet tudnék automatizálni (csepegtetést-locsolást mindenképp), a fénymérő és hőmérséklet mérő pedig kiadná idővel, hogy mennyi természetesen fény érte őket és milyen hőmérséklet mellett akkor mennyi nedvesség kellhet. Most csak hangosan agyalok, teljesen kezdőként-laikusként, de szeretném ezt megtanulni.

    [ Szerkesztve ]

    Lá lá lá lá lááá lááá.. Lá lá lá lá lááá lááá .. Lá lá lá lá lááá lá lááá lá lá lá lááááá láááá

  • biker

    nagyúr

    válasz Dißnäëß #17723 üzenetére

    van 3 ilyenem, ez elemes időzíthető csepegtetős, kombinálhatod akár akvapóniával is.
    Az irodai teszt installáció elvan kb 2 éve

    itt van egy 25liters akva, ebből szívja a halkakis vizet, napi 2x30mp elég ezeknek a kis igényű növényeknek, és versenyban a halas fénycső, normál fénycső, piros-kék led, 4000K led
    na nem offolok tovább, ígérem, max írsz PM ha kérdés van

    Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

  • Dißnäëß

    veterán

    válasz biker #17724 üzenetére

    Hát ez marhajó, köszi.. a linket is.. hidroponikus motyó is jó, amúgyis imádom a hidroponikus kertet. :DDD :R :R

    Lá lá lá lá lááá lááá.. Lá lá lá lá lááá lááá .. Lá lá lá lá lááá lá lááá lá lá lá lááááá láááá

  • gordonfreemN

    addikt

    Sziasztok. Próbálkozok az első programom megírásával. Tulajdonképp működik, de azért közszemlére teszem, lehet e bármit elegánsabban megoldani.


    #include <EEPROM.h>
    const int mode_led1 = A2;
    const int mode_led2 = A3;
    const int mode_led3 = A4;
    const int set_led1 = 11;
    const int set_led2 = 12;
    const int set_led3 = 13;

    const int in_relay1 = 4;
    const int in_relay2 = 5;
    const int in_relay3 = 6;
    const int out_relay1 = 7;
    //const int out_relay2 = 8;
    const int cb_relay1 = 9;
    //const int cb_relay2 = 10;

    const int reset_relay_cb = 1;
    const int reset_relay_out = 2;
    const int reset_relay_in = 3;

    const int button_m = A0; //mode gomb
    const int button_s = A1; //set gomb
    bool buttonstate_m;
    bool buttonstate_s;
    bool lastbuttonstate_m;
    bool lastbuttonstate_s;

    byte vmod;
    byte vset;
    byte vset_in;
    byte vset_out;
    byte vset_cb;
    unsigned long timer;

    void setup()
    {
      //Serial.begin(9600);
      pinMode(mode_led1, OUTPUT);
      pinMode(mode_led2, OUTPUT);
      pinMode(mode_led3, OUTPUT);
      pinMode(set_led1, OUTPUT);
      pinMode(set_led2, OUTPUT);
      pinMode(set_led3, OUTPUT);
      pinMode(in_relay1, OUTPUT);
      pinMode(in_relay2, OUTPUT);
      pinMode(in_relay3, OUTPUT);
      pinMode(out_relay1, OUTPUT);
      //pinMode(out_relay2, OUTPUT);
      pinMode(cb_relay1, OUTPUT);
      //pinMode(cb_relay2, OUTPUT);
      pinMode(reset_relay_in, OUTPUT);
      pinMode(reset_relay_out, OUTPUT);
      pinMode(reset_relay_cb, OUTPUT);
      pinMode(button_m, INPUT);
      pinMode(button_s, INPUT);
      buttonstate_m = 1;
      buttonstate_s = 1;
      lastbuttonstate_m = 1;
      lastbuttonstate_s = 1;
      digitalWrite(set_led1, 1);
      digitalWrite(set_led2, 1);
      digitalWrite(set_led3, 1);
      digitalWrite(mode_led1, 1);
      digitalWrite(mode_led2, 1);
      digitalWrite(mode_led3, 1);
      delay(500);
      vmod = EEPROM.read(0); //"mode" tárolt értéket a vmod változóba ír
      vset_in = EEPROM.read(1); //"set_in" tárolt értéket a vset változóba ír
      vset_out = EEPROM.read(2); //"set_out" tárolt értéket a vset változóba ír
      vset_cb = EEPROM.read(3); //"set_out" tárolt értéket a vset változóba ír
      
    //az eeprom vmod, vset_in stb tartalom legelőször 255 lesz, ha e változók eepromtartalma nem 0,1 vagy 2, akkor legyen 0
      if ((vmod < 0) || (vmod > 2)) {vmod = 0;}
      if ((vset_in < 0) || (vset_in > 2)) {vset_in = 0;}
      if ((vset_out < 0) || (vset_out > 1)) {vset_out = 0;}
      if ((vset_cb < 0) || (vset_cb > 1)) {vset_cb = 0;}
    //bekapcsoláskor a ki-be és schematik választók (relék) beállítása az eltárolt értékre-----------------------------------------------
      if (vset_in == 0) {
          digitalWrite(in_relay1, 1);
          digitalWrite(in_relay2, 0);
          digitalWrite(in_relay3, 0); 
          digitalWrite(reset_relay_in, 0);
          delay(20);
          digitalWrite(reset_relay_in, 1);
      }
      if (vset_in == 1) {
          digitalWrite(in_relay1, 0);
          digitalWrite(in_relay2, 1);
          digitalWrite(in_relay3, 0);
          digitalWrite(reset_relay_in, 0);
          delay(20);
          digitalWrite(reset_relay_in, 1); 
      }
      if (vset_in == 2) {
          digitalWrite(in_relay1, 0);
          digitalWrite(in_relay2, 0);
          digitalWrite(in_relay3, 1);
          digitalWrite(reset_relay_in, 0);
          delay(20);
          digitalWrite(reset_relay_in, 1);  
      }
      if (vset_out == 0) {
          digitalWrite(out_relay1, 1);
          digitalWrite(reset_relay_out, 0);
          delay(20);
          digitalWrite(reset_relay_out, 1); 
      }
      if (vset_out == 1) {
          digitalWrite(out_relay1, 0);
          digitalWrite(reset_relay_out, 0);
          delay(20);
          digitalWrite(reset_relay_out, 1); 
      }
      if (vset_cb == 0) {
          digitalWrite(cb_relay1, 1);
          digitalWrite(reset_relay_cb, 0);
          delay(20);
          digitalWrite(reset_relay_cb, 1); 
      }
      if (vset_cb == 1) {
          digitalWrite(cb_relay1, 0);
          digitalWrite(reset_relay_cb, 0);
          delay(20);
          digitalWrite(reset_relay_cb, 1); 
      }
      timer = 0;
      
    }
    void loop()
    {
    //vmod beállítása----------------------------------------------------------------------------------------
      buttonstate_m = digitalRead(button_m); //gomb állapot kiolvasása
      if (buttonstate_m != lastbuttonstate_m) //gombnyomás történt? Gomb állapota változott az előzőhöz képest?
      {
        delay(50); //ha történt változás az előző állapothot képest, várj 50ms-ot
          if (buttonstate_m == 0) //ha a gomb nyomva, azaz bemenet értéke alacsony akkor
          {
            vmod++; //növelje vmod változó értékét eggyel
            timer = millis(); //timer változó legyen millis aktuális értékével feltöltve
          }
      }
      switch (vmod) {
        case 0: //ha értéke null
          digitalWrite(mode_led1, 1);
          digitalWrite(mode_led2, 0);
          digitalWrite(mode_led3, 0);
          break;
        case 1: //ha értéke egy
          digitalWrite(mode_led1, 0);
          digitalWrite(mode_led2, 1);
          digitalWrite(mode_led3, 0);
          break;
        case 2: //ha értéke kettő
          digitalWrite(mode_led1, 0);
          digitalWrite(mode_led2, 0);
          digitalWrite(mode_led3, 1);
          break;
        default: //ha értéke bármi más mint az előzőek
          vmod = 0; //akkor vmod értéke legyen null
          break; 
      }
      lastbuttonstate_m = buttonstate_m; //gomb előző állapotát írja be a gomb aktuális állapotának
      if ((millis() - timer) > 5000)    //ha millis értéke mínusz timer értéke nagyobb mint 5sec (azaz eltelt 5mp) 
      {
        EEPROM.update(0, vmod);           //tegye eepromba a vmod változó értékét, ha az változott
      }
    //vset beállítása------------------------------------------------------------------------------------------
      if (vmod == 0) {vset = vset_in;}
      if (vmod == 1) {vset = vset_out;}
      if (vmod == 2) {vset = vset_cb;}
      buttonstate_s = digitalRead(button_s);
      if (buttonstate_s != lastbuttonstate_s)
      {
        delay(50);
          if (buttonstate_s == 0)
          {
            vset++;
            timer = millis();
          }
      }
      switch (vset) {
        case 0:
          digitalWrite(set_led1, 1);
          digitalWrite(set_led2, 0);
          digitalWrite(set_led3, 0);
          break;
        case 1:
          digitalWrite(set_led1, 0);
          digitalWrite(set_led2, 1);
          digitalWrite(set_led3, 0);
          break;
        case 2:
          if (vmod == 0) {
            digitalWrite(set_led1, 0);
            digitalWrite(set_led2, 0);
            digitalWrite(set_led3, 1);}
          else if (vmod == 1 || vmod == 2){vset = 0;}
          break;
        default:
          vset = 0;
          break;
        }
      lastbuttonstate_s = buttonstate_s; //gomb előző állapotát írja be a gomb aktuális állapotának
    //bemenet kiválasztása----------------------------------------------------------------------------------------
        if (vmod == 0 && vset == 0) { //ha vmod nulla, akkor a bemenet beállítása történik és vset_in felveszi az aktuális vset értéket
          vset_in = 0; //bemeneti változó beállítása
          digitalWrite(in_relay1, 1); //bemeneti 1-es relé kiemenet HIGH
          digitalWrite(in_relay2, 0); //bemeneti 2-es relé kiemenet LOW
          digitalWrite(in_relay3, 0); //bemeneti 3-mas relé kiemenet LOW
          if (buttonstate_s == 0) {digitalWrite(reset_relay_in, 0);} //csak ha set gombnyomás történik akkor az 1-es relé resetje LOW
          delay(10);
          if (buttonstate_s == 1) {digitalWrite(reset_relay_in, 1);}  //csak ha set gombnyomás befejeződött akkor az 1-es relé resetje HIGH
        }
        if (vmod == 0 && vset == 1) {
          vset_in = 1;
          digitalWrite(in_relay1, 0);
          digitalWrite(in_relay2, 1);
          digitalWrite(in_relay3, 0);
          if (buttonstate_s == 0) {digitalWrite(reset_relay_in, 0);}
          delay(10);
          if (buttonstate_s == 1) {digitalWrite(reset_relay_in, 1);}  
        }
        if (vmod == 0 && vset == 2) {
          vset_in = 2;
          digitalWrite(in_relay1, 0);
          digitalWrite(in_relay2, 0);
          digitalWrite(in_relay3, 1);
          if (buttonstate_s == 0) {digitalWrite(reset_relay_in, 0);}
          delay(10);
          if (buttonstate_s == 1) {digitalWrite(reset_relay_in, 1);} 
        }
    //kimenet kiválasztása---------------------------------------------------------------------------------------
      if (vmod == 1 && vset == 0) {
        vset_out = 0;
        digitalWrite(out_relay1, 1);
        if (buttonstate_s == 0) {digitalWrite(reset_relay_out, 0);}
        delay(10);
        if (buttonstate_s == 1) {digitalWrite(reset_relay_out, 1);}
      }
      if (vmod == 1 && vset == 1) {
        vset_out = 1;
        digitalWrite(out_relay1, 0);
        if (buttonstate_s == 0) {digitalWrite(reset_relay_out, 0);}
        delay(10);
        if (buttonstate_s == 1) {digitalWrite(reset_relay_out, 1);}
      }
    //áramköri lap kiválasztása-----------------------------------------------------------------------------------
      if (vmod == 2 && vset == 0) {
        vset_cb = 0;
        digitalWrite(cb_relay1, 1);
        if (buttonstate_s == 0) {digitalWrite(reset_relay_cb, 0);}
        delay(10);
        if (buttonstate_s == 1) {digitalWrite(reset_relay_cb, 1);}
      }
      if (vmod == 2 && vset == 1) {
        vset_cb = 1;
        digitalWrite(cb_relay1, 0);
        if (buttonstate_s == 0) {digitalWrite(reset_relay_cb, 0);}
        delay(10);
        if (buttonstate_s == 1) {digitalWrite(reset_relay_cb, 1);}
      }
    //EEPROM írása------------------------------------------------
      if ((millis() - timer) > 5000) {
      EEPROM.update(1, vset_in); //tegye EEPROM-ba a vset_in változó értékét, ha az változott
      EEPROM.update(2, vset_out); //tegye EEPROM-ba a vset_out változó értékét, ha az változott
      EEPROM.update(3, vset_cb); //tegye EEPROM-ba a vset_cb változó értékét, ha az változott
      }
    //-------------------------------------------------------------------------------------------------------- 
    //Serial.println(buttonstate_s);
    }

    A működése:

    Ez egy be és kimenetválasztós előerősítő lenne majd.
    vmod kiválasztja, hogy be vagy kimenet
    vset a be vagy kimeneten belül kiválasztja, hogy melyik (0,1,2 ami pl be esetén hasamraütök, TV, CD, PC).
    nem szeretném, hogy elfelejtse a beállított értékeket kikapcsolás után, mivel nem szeretnék minden bekapcsolást azzal kezdeni, hogy beállítom a be és kimeneteket amiket épp használnék - ezért az eepromos huncutság.
    Illetve amikor beállítom a bemenetet, majd a kimenetet, aztán mégis visszaléptetem a mod-dal a bemeneti választásra, akkor a visszajelző LED (digitalwrite-ok a switch-ben) a bemenet aktuális allapotát jelezze, ne pedig maradjon ott, ahova a kimenetkor állítottam.

    ¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.

  • Undoroid

    őstag

    válasz Tankblock #17719 üzenetére

    Szia!

    Nem akarom precízen tudni az elfordítás mértékét, hanem csak annyit, hogy tudjam azt a pontot, amikor még nem töröm össze mechanikusan az egész tákolmányomat...esetleg azt megoldanám, hogy az elforgatást egy bizonyos szög után nem engedné tovább a program. Onnantól már csak visszafelé mehetne...

    https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-

  • Tankblock

    aktív tag

    válasz Undoroid #17727 üzenetére

    Szia

    A linkelt mikrokapcsolós végállásfigyelést be tudod tenni ....
    Szerintem minden infod megvan,

    A léptetés előtt megnézed, hogy a kapcsoló be van -e kapcsolva, ha igen akkor nem lépsz arra. Ez mind a két irányba működik, és relatíve olcsó. A kapcsoló lehet optokapu is....

    Mire lenne még szükséged ?

    Release the Beast....

  • Tankblock

    aktív tag

    válasz gordonfreemN #17726 üzenetére

    Szia

    Első blikkre használhatsz #define -t a PIN definícióhoz...

    Az EEPROM kiírást gondold át még egyszer, mert első blikkre minden 5 [sec] kiírod, és nem azt csinálod amit szeretnél. Ezzel lassan elhasználod EEPROMOT.... Elegendő ha volt valós change kiírni azt ahol volt change.

    Én a gombokat csak interruptból figyelném, ha van változás akkor azt as loopba kezelném, hogy hol vagy a "menüben", és csak a setgomb változására kezdenék neki a funkció szerint a LED ill a relay kapcsolásoknak.

    Ha beleásod magad a C++ rejtelmeibe is akkor nagyon sokféle megoldást fogsz találni.

    A HW PIN kiosztást lesd meg, - én most nem tettem meg - mert ha egy portra teszed LED és a kimeneteket akkor 1 port írással megúszhatod az egészet.... De ez már csak szépség....

    [ Szerkesztve ]

    Release the Beast....

  • gordonfreemN

    addikt

    válasz Tankblock #17729 üzenetére

    Ha jól értem ezt a #define-t akkor ez annyi, hogy kevesebb program memóriát használ fel ezért lenne nekem jobb?
    Az EEPROM csak akkor ír ha változik, egyébként nem. Az update vizsgál és csak ha van változás, akkor ír.
    De egyébként lehetne úgy is, hogy teszek rá egy if ágat és csak akkor léptetem bele ha volt gombnyomás így a loop nem hajtaná végre minden ciklusban a parancsot.

    Nem sok időm van a C++-ra most, utolsó félévem következik plusz államvizsga (nem programozásból :) ) de köszi a tippet, észben fogom tartani, ha lesz kapacitás, elkezdem olvasgatni a témát. :R Személy szerint a Python jobban megtetszett a C mellett. Azt nem tudom piacképes-e, illetve abból mit tudok majd felépíteni a későbbiekben, de ezeket amúgy inkább csak érintőleges tanultuk. Épp ezért kezdtem el arduino-zni, hogy ne vesszen az a kevéske tudás sem.

    Viszont érdekelne ez az interrupt-os téma. Ebben tudsz néhány mondattal segíteni még, hogy hogyan is gondoltad? Akár egy egyszerű de hasonló példán keresztül, mint amit feltettem (abból egy részlet mondjuk).

    Egy portra nem bírom tenni, mert nincsenek összerendelve a ledek és a be/kimenetek fizikailag, a kettő közt a program teremt kapcsolatot. Arra gondolok, hogy míg a SET LED kapcsolja a bemenetet is, addig a kimenetet is meg még egy áramkör váltást is kezel. Vagy félre értettelek?

    Ami lemaradt az előző hsz-emből, arduino uno-ról van szó. Bár ez lehet egyértelmű volt

    [ Szerkesztve ]

    ¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.

  • Aryes

    nagyúr

    válasz gordonfreemN #17730 üzenetére

    Fölösleges külön kimenetre tenni a LED-eket, amikor a vezérelt kimenetre is kötheted, ami elbír egyszerre egy relével és egy LED-del is, ezzel kódot, memóriát, kimenetet takarítasz meg és kellemes mellékhatás, hogy mindig a kimenet valós állapotát fogja visszajelezni, akkor is, ha mondjuk valami miatt lefagyna vagy resetelődne a program.

  • gordonfreemN

    addikt

    válasz Tankblock #17729 üzenetére

    Lehet rájöttem mire gondoltál, vagy ha nem is, olyan ötletet adtál, amivel megoldottam egy utolsó számomra zavaró jelenséget: bár működőképes volt a panel, mégis ha elég gyorsan nyomkodtam a mode gombot, akkor volt a mode változó 2 értékének 0-ra történő írásakor a ledek váltásában némi késleltetés.
    A következő módosítással sikerült (már csak a loop-ot teszem be, a többi változatlan):
    void loop()
    {
    //vmod beállítása----------------------------------------------------------------------------------------
    buttonstate_m = digitalRead(button_m); //gomb állapot kiolvasása
    if (buttonstate_m != lastbuttonstate_m) //gombnyomás történt? Gomb állapota változott az előzőhöz képest?
    {
    delay(50); //ha történt változás az előző állapothot képest, várj 50ms-ot
    if (buttonstate_m == 0) //ha a gomb nyomva, azaz bemenet értéke alacsony akkor
    {
    if (vmod < 2) {
    vmod++; //növelje vmod változó értékét eggyel
    }
    else {
    vmod = 0;
    }
    timer = millis(); //timer változó legyen millis aktuális értékével feltöltve
    }
    }
    lastbuttonstate_m = buttonstate_m; //gomb előző állapotát írja be a gomb aktuális állapotának
    if ((millis() - timer) > 5000) { //ha millis értéke mínusz timer értéke nagyobb mint 5sec (azaz eltelt 5mp)
    EEPROM.update(0, vmod); //tegye eepromba a vmod változó értékét, ha az változott
    }
    //vset beállítása------------------------------------------------------------------------------------------
    if (vmod == 0) {vset = vset_in;}
    if (vmod == 1) {vset = vset_out;}
    if (vmod == 2) {vset = vset_cb;}
    buttonstate_s = digitalRead(button_s);
    if (buttonstate_s != lastbuttonstate_s)
    {
    delay(50);
    if (buttonstate_s == 0)
    {
    vset++;
    timer = millis();
    }
    }
    switch (vset) {
    case 0:
    digitalWrite(set_led1, 1);
    digitalWrite(set_led2, 0);
    digitalWrite(set_led3, 0);
    break;
    case 1:
    digitalWrite(set_led1, 0);
    digitalWrite(set_led2, 1);
    digitalWrite(set_led3, 0);
    break;
    case 2:
    if (vmod == 0) {
    digitalWrite(set_led1, 0);
    digitalWrite(set_led2, 0);
    digitalWrite(set_led3, 1);}
    else if (vmod == 1 || vmod == 2){vset = 0;}
    break;
    default:
    vset = 0;
    break;
    }
    lastbuttonstate_s = buttonstate_s; //gomb előző állapotát írja be a gomb aktuális állapotának
    //bemenet kiválasztása----------------------------------------------------------------------------------------
    if (vmod == 0 && vset == 0) { //ha vmod nulla, akkor a bemenet beállítása történik és vset_in felveszi az aktuális vset értéket
    vset_in = 0; //bemeneti változó beállítása
    digitalWrite(mode_led1, 1);
    digitalWrite(mode_led2, 0);
    digitalWrite(mode_led3, 0);
    digitalWrite(in_relay1, 1); //bemeneti 1-es relé kiemenet HIGH
    digitalWrite(in_relay2, 0); //bemeneti 2-es relé kiemenet LOW
    digitalWrite(in_relay3, 0); //bemeneti 3-mas relé kiemenet LOW
    if (buttonstate_s == 0) {digitalWrite(reset_relay_in, 0);} //csak ha set gombnyomás történik akkor az 1-es relé resetje LOW
    delay(10);
    if (buttonstate_s == 1) {digitalWrite(reset_relay_in, 1);} //csak ha set gombnyomás befejeződött akkor az 1-es relé resetje HIGH
    }
    if (vmod == 0 && vset == 1) {
    vset_in = 1;
    digitalWrite(mode_led1, 1);
    digitalWrite(mode_led2, 0);
    digitalWrite(mode_led3, 0);
    digitalWrite(in_relay1, 0);
    digitalWrite(in_relay2, 1);
    digitalWrite(in_relay3, 0);
    if (buttonstate_s == 0) {digitalWrite(reset_relay_in, 0);}
    delay(10);
    if (buttonstate_s == 1) {digitalWrite(reset_relay_in, 1);}
    }
    if (vmod == 0 && vset == 2) {
    vset_in = 2;
    digitalWrite(mode_led1, 1);
    digitalWrite(mode_led2, 0);
    digitalWrite(mode_led3, 0);
    digitalWrite(in_relay1, 0);
    digitalWrite(in_relay2, 0);
    digitalWrite(in_relay3, 1);
    if (buttonstate_s == 0) {digitalWrite(reset_relay_in, 0);}
    delay(10);
    if (buttonstate_s == 1) {digitalWrite(reset_relay_in, 1);}
    }
    //kimenet kiválasztása---------------------------------------------------------------------------------------
    if (vmod == 1 && vset == 0) {
    vset_out = 0;
    digitalWrite(mode_led1, 0);
    digitalWrite(mode_led2, 1);
    digitalWrite(mode_led3, 0);
    digitalWrite(out_relay1, 1);
    if (buttonstate_s == 0) {digitalWrite(reset_relay_out, 0);}
    delay(10);
    if (buttonstate_s == 1) {digitalWrite(reset_relay_out, 1);}
    }
    if (vmod == 1 && vset == 1) {
    vset_out = 1;
    digitalWrite(mode_led1, 0);
    digitalWrite(mode_led2, 1);
    digitalWrite(mode_led3, 0);
    digitalWrite(out_relay1, 0);
    if (buttonstate_s == 0) {digitalWrite(reset_relay_out, 0);}
    delay(10);
    if (buttonstate_s == 1) {digitalWrite(reset_relay_out, 1);}
    }
    //áramköri lap kiválasztása-----------------------------------------------------------------------------------
    if (vmod == 2 && vset == 0) {
    vset_cb = 0;
    digitalWrite(mode_led1, 0);
    digitalWrite(mode_led2, 0);
    digitalWrite(mode_led3, 1);
    digitalWrite(cb_relay1, 1);
    if (buttonstate_s == 0) {digitalWrite(reset_relay_cb, 0);}
    delay(10);
    if (buttonstate_s == 1) {digitalWrite(reset_relay_cb, 1);}
    }
    if (vmod == 2 && vset == 1) {
    vset_cb = 1;
    digitalWrite(mode_led1, 0);
    digitalWrite(mode_led2, 0);
    digitalWrite(mode_led3, 1);
    digitalWrite(cb_relay1, 0);
    if (buttonstate_s == 0) {digitalWrite(reset_relay_cb, 0);}
    delay(10);
    if (buttonstate_s == 1) {digitalWrite(reset_relay_cb, 1);}
    }
    //EEPROM írása------------------------------------------------
    if ((millis() - timer) > 5000) {
    EEPROM.update(1, vset_in); //tegye EEPROM-ba a vset_in változó értékét, ha az változott
    EEPROM.update(2, vset_out); //tegye EEPROM-ba a vset_out változó értékét, ha az változott
    EEPROM.update(3, vset_cb); //tegye EEPROM-ba a vset_cb változó értékét, ha az változott
    }
    //--------------------------------------------------------------------------------------------------------
    //Serial.println(buttonstate_s);
    }

    A mode változónál kivettem a switch case-t és egy egyszerű if-el helyettesítettem :R

    ¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.

  • gordonfreemN

    addikt

    válasz Aryes #17731 üzenetére

    Teljesen igazad van. Az első esetben amikor a bemeneteket vezérlem. A másik két esetben már gonsoloodóba estem, hogy hogyan tudnám megoldani, nyilván plusz alkatrészekkel.
    Feltöltök hozzá egy rajzot.
    Set-reset reléket használok a jel kapcsolására.
    A kimenetvalasztás úgy történik, hogy set állapotban az egyik kimenet aktív, reset állapotban a másik. Ez vezérlö oldalról annyit tesz, hogy van a mikrovezérlő kimenetén fesz vagy nincs. Ezért ide már kellene eg, tranzisztor is, hogy amikor nincs fesz, akkor kapjon feszt a másik visszajelző led. Hasonló a helyzet az áramkör választó (cb) esetén is. Nyilván megfontolandó a kevés plusz alkatrész cserébe a felszabaduot kikenetekért. Ha kell.

    [ Szerkesztve ]

    ¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.

  • Aryes

    nagyúr

    válasz gordonfreemN #17733 üzenetére

    Ezért ide már kellene eg, tranzisztor is, hogy amikor nincs fesz, akkor kapjon feszt a másik visszajelző led.

    Kivéve akkor, ha minden kimenetre két ledet kötsz, egyiknek az anódját, másiknak pedig a katódját. Akkor az egyik csak magas, a másik csak alacsony szintnél világít. ;)
    Értelemszerűen a másik lábukat a +5V illetve GND-re kötve.
    Mellékhatás: reset után, vagy ha bármilyen oknál fogva a kimenet bemenetre van állítva (hi-z) mindkét LED világítani fog egyszerre, ami egyébként hibajelzésnek is használható.

    [ Szerkesztve ]

  • gordonfreemN

    addikt

    válasz Aryes #17734 üzenetére

    Na jó, de a doboz már megvan és egy LED-nek van hely :R :B
    Azaz pontosabban 3 mod LED meg 3 set LED
    Még mielőtt elmerülünk ebbe: ugyanezeket a LED-eket kell használni a bemenetnél is, ahol viszont van vezérlés minden beállított kimenetre és ez 3szor a 3 bemenetre.

    a kimenet bemenetre van állítva :F ez nem világos. Hogy érted, hogy a kimenet bementre van állítva?

    [ Szerkesztve ]

    ¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.

  • Aryes

    nagyúr

    válasz gordonfreemN #17735 üzenetére

    Jaj már :DDD
    pinMode(mode_led1, OUTPUT);
    Itt állítod kimenetre a pin-t. Azelőtt a pin bemenet (hi-z).

    Bocs, nem merültem el a kódban, hogy mivel mit csinál, csak a felmerült pin-spórolás témára reagáltam. :R

    [ Szerkesztve ]

  • gordonfreemN

    addikt

    válasz Aryes #17736 üzenetére

    :R leesett, köszi. Én meg elírtam az utolsó üzenetem itt:
    viszont van vezérlés minden beállított kimenetre és ez 3szor a 3 bemenetre
    Helyesen:
    viszont van vezérlés minden beállított bemenetre és ez 3szor a 3 bemeneten

    ¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.

  • Dißnäëß

    veterán

    Kedves Szakik !

    Nézzétek el kezdő kérdésem, de egy igen hosszú, tényleg nagyon sok logikát, menürendszerben lépkedést szeretnék megvalósítani ESP8266-al a szobai erősítőmhöz.

    Egyetlen gomb lesz előlapon, és ennek nyomkodásával fogok navigálni a menüben, illetve van hozzá egy 256x64 4-SPI OLED kijelzőcske is, amin a menüpontok, státusz, ilyesmik, mikor mi, megjelenik. Rövid nyomások, hosszú nyomások, két rövid, három rövid, ilyennel fogok operálgatni majd a menüben, meg lehet lesz egy visszaszámláló is minden egyes menüpontban a jobbfelső sarokban, ami kidobja az embert mentés és minden nélkül vissza az alapállapotba (vagy akár előző menübe, mindegy is most).

    Elég lesz nekem a kódhoz - vélhetően - az ESP8266 ? Belefér vajon ? :F

    Ugye a kis Arduino Leonardo-knál látom mindig, mennyi lett a program és néha elgondolkodom, hogy hűha, ez ilyen pici terület ?

    Szóval amikor egy sima gyári Fade 15%-ot elvesz egy Micro-ból, akkor mire van esélyem egy ESP8266-al ? Itt 25%-ot eszik meg, oké, valszeg nagyobb az overhead, de úúúú :D

    Sketch uses 263233 bytes (25%) of program storage space. Maximum is 1044464 bytes.
    Global variables use 28004 bytes (34%) of dynamic memory, leaving 53916 bytes for local variables. Maximum is 81920 bytes.

    Arduino IDE-t használok (Debian Testing legfrissebbet, apt install -al feltoltam), szokásos ESP library, Board Manager-ben pedig Node MCU.. látjátok. (A kütyü is az, ESP-F-em van, de ez az ESP-E-től csak antenna formában tér el, azt olvastam neten, a NodeMCU pedig 1-2 plussz könnyítő elektronikával van ellátva egy sima pucér ESP-hez képest).

    Beleférhetek ? Most lehet megmosolyogtok, de na. :)

    Milyen beállításon érdemes Szerintetek dolgoznom vele ?
    Most ez van, ezt kaptam, a LED-en kívül semmit nem kellett állítanom, teszi a dolgát.

    Lá lá lá lá lááá lááá.. Lá lá lá lá lááá lááá .. Lá lá lá lá lááá lá lááá lá lá lá lááááá láááá

  • biker

    nagyúr

    válasz Dißnäëß #17740 üzenetére

    hát, lehet én vagyok hozzád hasonló hülye, aki ezt nézegeti, de én még nem fejtettem meg, mitől függ a méret.
    Volt hogy egy sort hozzáírtam, elment pl 600byte, kitöröltem, erre elment még 900byte :D

    Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

  • Aryes

    nagyúr

    válasz Dißnäëß #17740 üzenetére

    Nézd meg, hogy mennyit tesz ki, ha egy teljesen üres sketch-et fordítasz le. Az ESP nem egészen úgy működik, mint az AVR-ek, ezen eleve elfoglal valamennyi helyet az oprendszer. Másrészt ha nem használsz filerendszert (FS), valamint úgy tudom az OTA részt is le lehet valahogy tiltani (legalábbis régebben le lehetett), akkor 4MByte felhasználható tárhellyel tudsz gazdálkodni, szemben az AVR-ek kbyte-jaival. :Y
    A lefordított program mérete nem csak a beírt sorok számától függ, hanem attól, hogy használsz-e olyan dolgot, amihez be kell fordítani valami standard (vagy 3rd party) library-t.

    [ Szerkesztve ]

  • Dißnäëß

    veterán

    válasz biker #17741 üzenetére

    Igazából vállvonós, csak nem szeretnék egy többnapos kódolás, szívás, tanulás, fejtörés, és vért izzadt eredmények után - most mondok valamit - 75%-nál megakadni, hogy feltöltésnél egyszercsak szól az IDE, hogy nem fér több bele. Akkor nagyon morci lennék, lehetne kódot optimalizálni vagy átírni, vagy komplett új kütyü nagyobb flash-el, vagy feltenném a kérdést, hogy micropython-al beleférnék-e és utána azt is, hogy vajon megőrültem-e, mert nem hiszem, hogy sokkal lean-ebb lenne a végeredmény más nyelvről, mint egy C++.

    No, de addig is, hogy rájöjjek, hogyan osszam fel ezt a kis kontrolleremet mekkora "particiókra", találtam egy marha jó leírást arról, mi a különbség az EEPROM és a FLASH között és megint hatalmasat tanultam. :D :U

    Lá lá lá lá lááá lááá.. Lá lá lá lá lááá lááá .. Lá lá lá lá lááá lá lááá lá lá lá lááááá láááá

  • Dißnäëß

    veterán

    válasz Aryes #17742 üzenetére

    Értem, köszi ! Ez hasznos volt. :R :R :R

    Lá lá lá lá lááá lááá.. Lá lá lá lá lááá lááá .. Lá lá lá lá lááá lá lááá lá lá lá lááááá láááá

  • Aryes

    nagyúr

    válasz Dißnäëß #17743 üzenetére

    :DDD

    Igazából multimédia nélkül elég nehéz 4Mbyte tárhelyet megtölteni "csak" programkóddal.

  • ekkold

    Topikgazda

    válasz Dißnäëß #17740 üzenetére

    Szerintem nem tudsz akkora menüt írni, ami nem fér el az ESP8266-ban.

  • Dißnäëß

    veterán

    válasz ekkold #17746 üzenetére

    Köszönöm és az Előtted szólónak is, megnyugvással tölt el. Kimentem futni és a spirituális angyaloktól kezdve a majdnem-barátnőmmel történő szexen át gyorsan kikötött az agyam a 8266 leendő kódján és menüjén és úgy mindenén, viszont közben sürgősen meg kéne találnom Gugli bugyraiban valahol azt, hogyan fordítom meg 180 fokkal a kis OLED kijelző képét, mivel az oldalán lévő csatlakozói miatt csak fejjel lefele tudom beszerelni a nyílásba, hogy ne akadályozzák egymást a mellette lévő nyomógombbal (amit túl közel tettem a nyíláshoz, epic human error). :D Aaaaah jól indul, hát ez sem az a smooth sailing lesz :D

    Lá lá lá lá lááá lááá.. Lá lá lá lá lááá lááá .. Lá lá lá lá lááá lá lááá lá lá lá lááááá láááá

  • Aryes

    nagyúr

    válasz Dißnäëß #17747 üzenetére

    "...majdnem-barátnőmmel történő szexen át..."
    "...túl közel tettem a nyíláshoz..."

    :U :DDD

    A kijelző képének megfordítását valószínűleg a kijelző library-jének egyik .h fájljában tudod beállítani.

    [ Szerkesztve ]

  • Dißnäëß

    veterán

    válasz Aryes #17748 üzenetére

    Megkérdeztem Github-on a lib íróját, válaszékony ember, reméljük, lesz rá ötlete. :)
    (Fél óráig kerestem a .h-kban, nem leltem meg).

    Amúgy tök jó :B

    Lá lá lá lá lááá lááá.. Lá lá lá lá lááá lááá .. Lá lá lá lá lááá lá lááá lá lá lá lááááá láááá

Új hozzászólás Aktív témák