4 db 6C595 IC van sorba kötve, az spi adott volt, SD kártya is azt használja, igy csak plussz egy láb kellett. A kijelző távol lesz (1m) a többitől, nem akartam túl sok vezetéket, igy 4 vezeték + 2 a 12V-nak kell bekötni. Nekem ez jónak tűnt.
1. a szokásos multiplex meghajtás miért nem volt jó? az is villog, de másképp :-)
2. a kontrasztot kell növeld. milyen színű a kijelződ maga? mármint a szegmensek között? ott le kellene kenni feketére. ezen a fólia nem segít, mert az a szegmenst is sötétíti nem csak a hátteret. utánna jön hogy nem tükröző felület, hogy a külső fény kevésbé látsszon rajta. utánna hogy korberakni árnyékolóval.
a valóságos fényviszonyok nagyon durvák. kocsmai beszélgetésekben gyakran elhangzik hogy miért van még mindig tükör a kocsikon, miért nem kamera és monitor. hát azért mert amíg ki nem próbálod el sem hinnéd milyen macerás olyan monitort csinálni, ami mindenféle fényben látható normálisan.
Még egy kis gondom van, a kis csónakomra csináltam egy gps alapú sebességmérő + útvonal naplózó valamit, amihez egy elég nagy 4db 4cm magas zöld 7 szegmenses kijezlőt csináltam.
Ez 12V-ról megy, két hibája van, amire nem számitottam.
Shift regiszterekkel iratom ki a számot, amit 1 mpként frissitek, és sötétben (értsd a szobában már jól esik a lámpa), látom ahogy frissit. SPI -n keresztül nyomom ki gyorsan egymás után a számokat, de mivel az első helyi értéken nincs szám, pl 2,36 kiirásánál, ezért ott (számomra) zavaróan felvillan az első kijelzően is pár led.
Még nincs beépítve a hajóra, azon gondolkoztam, hogy egy tranzisztorral elveszem a kijelzőtől a 12V tápot a kiiratás idejére, de lehet akkor másképp fog villogni. :(
A másik, ennél sokkal nagyobb bajom, hogy teszteltem a kütyüt az autóban, kiraktam a szélvédő elé (belülre) a kijelzőt, ahol sok esetben egyszerüen nem látom. Hát erre nem számitottam, mert normál fényviszonyoknál, amikor nem süt rá a nap kiégeti a szemem, de mikor rá süt, akkor semmi.
Próbálkoztam az itt olvasott szürke öntapadós fóliával, de nem sokat, mondhatni semmit nem javult fényben. A szobában sokkal jobb lett már egy rétegtől, két rétegnél az első helyen emlitett villogás sem zavaró annyira, de ez nem szobai használatra lenne. :(
Holnap még elmegyek egy autófóliáshoz, hátha neki van valami másfajta fóliája, de nem sok reményt fűzök hozzá.
Van esetleg valakinek valami ötlete? (mármint azon kivül, hogy egy nagy árnyékoló lemezt teszek a kijelző fölé. (ami balesetveszélyes is egy kis vitorlás csónakon, meg útban is lesz)
Programozás nélkül nehéz lesz bármit is kihozni az arduinoból. Adok egy kész kódot, ami nálam olvassa a 18b20-at, de mi van, ha kettővel vagy öttel már nem jó, valamit módosítani kellene. Állandóan megkérni valaki hozzáértőt nem fog menni, pénzért talán lehet találni fejlesztőt, aki erre az egyedi feladatra ráfordít időt, de az meg nem lesz olcsó.
Vagy pl. írok egy 3 eszközt használó programot, benne van a ds3231-es rtc, meg még több dolog, ha odaadom az egész kódot ami többszáz sor az se az igazi, ha meg kivágom belőle csak az rtc-t nem biztos hogy nem követek el hibát, vagy nem hagyok-e ki valamit. Abból meg hibaüzenet lesz, és nem működik.
Szóval az a legjobb, ha elkezdi az ember tanulni a programozást, és akkor már lehet alap dolgokat kérdezni, én is így kezdtem. Vagy nem tanul semmit, hanem leírja mit szeretne és keres rá vállalkozót, a rávaló pénzt meg megkeresi valamivel amihez ért.
Még sajnos nem jutottam el a megvalósításáig,időhiány miatt,de a leckéjét már megkaptam és érthetően le van írva minden. És a címzések miatt egy érpáron max 10 eszköz a címzés miatt.
Kezdd el elemenként összerakosgatni őket, mindegyiket külön tesztelni, játszani vele kicsit (adatkinyerés, konverzió stb.), aztán összerakni a kész rendszert.
Csak egy db 18b20-szal van tapasztalatom, sokat nem tudok segíteni. Amivel próbáltam, az eléggé univerzálisnak tűnt, mindenhol sorszámok, persze nálam csak egy szenzort talált.
Elérkezett az idő az életszerű tesztelésre, van ds18b20, ds3231 rtc, rs485. Kezdem egy 10-20 m-es telefonzsinórral, aztán majd meglátom. A kérdésem az, hogy mekkora sebességet válasszak? Egy hőfokot és egy dátum-időt kérek le, kifelé meg 1 byte-ot küldök, tehát sok adat nem lesz. Minél kisebb a sebesség, annál biztosabb az átvitel hibamentessége? A legtöbb példában 9600, de láttam már 115200-at, az rs485 meg talán 1 Mbitet is tud.
Kb. 100 ezerszer fut le a loop másodpercenként egy egyszerű led villogtatással, az 10 mikrosec, 16 relé kiírása 160 mikrosec, a relé sokkal lassúbb ennél, mire összeérnek az érintkezők.
Töb gomb nyomása semmi gond, akár 16-ot is nyomhatsz egyszerre, 160 mikrosec alatt beolvassa és újabb 160 mikrosec után bekacsolja a reléket. Mivel nem mátrixban vannak a gombok, hanem mindegyik egy egyedi ic bemenethez csatlakozik, egymástól függetlenek, csak a beolvasás soros.
A rövid nyomás egyszerűbb. Nekem 50 msec a legrövidebb gombnyomás időm, ezalatt 100-szor beolvassa a 16 gombot és kiírja a relék állapotát, tehát tetszőleges gyorsasággal csattoghatnak a relék.
A hosszút le kell kezelni, hogy a következő ciklusban ne vegye egyből gombnyomásnak. Delay nincs, hanem jelzőváltozó van, ami a gomb állapotát mutatja, és amíg nem engedték föl, addig azzal a gombbal csak vár.
csak vázlatosan:
gomballapot=0
loop
{
if(gomb benyomva && gomballapot==0)
{
relet valtani
gomballapot=1
}
if(gomb felengedve){gomballapot=0}
}
A loop pörög, amíg a gomb nincs benyomva a gomballapot valtozóba 0-t ír.
Ha benyomom a gombot, akkor az első if feltétel teljesül, kapcsol a relé és a gombállapotba 1-et ír. Amíg nyomom a gombot a továbbiakban nem teljesül a feltétel egyik ifben se, de a loop pörög tovább.
Amint fölengedem a gombot, a második if teljesül, 0-t ír a gomballapotba, és visszakerültünk az eredeti állapotba, jöhet a gombnyomás.
Áramszünetnél reset van. Egyrészt ha bootloader van, akkor 1-2 másodpercig inicializál, közben villog a 13-as pinen a led, ki tudja a többi pinen mi történik, ezért valószínűleg a bootloader nélküli használat tanácsolt. Másrészt a pinek bemenetek lesznek az inicializálás után, tehát nem hajtanak meg semmit, relét se. Harmadrészt én shiftregiszterben gondolkodok, mert 6 kapcsoló kevésnek tűnik, tehát nem az arduino kimenetei számítanak, hanem a shiftregiszter ic. Fogalmam sincs, hogy pl. a hc595 mit csinál táp rákapcsoláskor, de más portbővítő megoldás is lehet, ezt mindig egyedileg meg kell vizsgálni, hogy az hogyan viselkedik. Ha nincs bootloader, akkor elég hamar elindulhat a program, és előírt állapotba kapcsolja a reléket, de pártized másodpercig akár ismeretlen számú relé meg is húzhat. De lehet egy kis monostabillal a G-t lehúzni fél másodpercre, és akkor nem kapcsol be semmi, utána meg már a program beállította tetszőlegesre.
Ha egyszerre két gombot nyomok akkor hogyan viselkedik az arduino?
Ha hosszan (5-10 másodperc) vagy ha nagyon röviden gyorsan egymás után nyomom a kapcsolót akkor is egy-egy kapcsolásnak veszi a rendszer?
Gondolom ha csak az arduinot kártyát + ssr omron reléket használom akkor áramszünet esetén nem világít semmi, a következő újraindulás után minden lekapcsolt állapotban lesz. Vagy nem?
plusz átgondolni erősen hogy bekapcsoláskor mi és milyen sorrendben történhet, és az mit okozhat. a legtöbb mikrovezérlőn a portok bemenetként ébrednek, meg kell vizsgálni hogy ez a relédnek melyik állapota.
Arra kell megoldás, hogy ha áramszünet van, az arduino resetel, és elszáll az összes kimenet állapota. Vagy minden változás után ki kell írni eepromba, detektálni az újraindulást, beolvasni eepromból az előző állapotot, vagy megoldani az arduino szünetmentes tápellátását.
Nekem is ilyen rendszerem van jelenleg. Egyetlen hátránya van ennek, hogy nem ssr relékkel kapcsolom ezért hangosak.
Most a továbbfejlesztésen gondolkozok és ha sikerül a teszt rendszer akkor kerül beépítésre véglegesen a házba.
Villanykapcsolóból én is néztem a redőnykapcsolót, de drágább is zavartak a nyilacskák. Nálam a megoldás sima csillár kapcsoló máraka: ANYA ár kb 650 Ft. + 2 db rugó ami visszanyomja a billentyűt 2*50 Ft (legyártatva sok darab) + kis szerelés.
A delay()-nál elegánsabb megoldás, ha rögzíted az esemény (gombnyomás) időpontját (millis()), és megvizsgálod, hogy x idő elteltével is megnyomott állapotban van-e.
Egy delay nem delay, de ha több dolgot kérdezel le így, miközben le kellene kezelni különféle kommunikációs csatornákat, akkor okozhat meglepetést. Úgyhogy a delay-t jobb kerülni.
Itt is ugyanaz a helyzet mint a wc-lámpával, ha arduino vezérel, akkor sok más dolgot is meg lehet csinálni, időzített kapcsolások, csoportok egyszerre kapcsolása, más bemeneteken érkező infóktól függő kapcsolások stb.
Ha az arduino kivezetéseit egy az egyben használjuk, akkor talán 6 relé lehet, mert 12 pin használható (talán az rx-tx is).
De nyilván jobb megoldás a pufferelt vezérlés, mondjuk két hc595 és akkor van 16 kimenet (de ez tetszőlegesen növelhető minden ic újabb 8 kimenet). Kiléptetni az aktuális értékeket, és amikor kész, akkor átírni a pufferből a kimenetre.
Befelé meg hasonlóan csak párhuzamos in soros out ic-vel és pollozni, valószínűleg ezerszer gyorsabb az arduino, minthogy elveszítsen egy gombnyomást, persze delay() függvényt el kell felejteni.
Nekem egy légtér a folyosó, konyha, étkező, nappali. Ezért sok helyre tettem 4-4 nyomógombot (a kapcsoló családban redőnygomb volt amivel megoldottam), ami a biztosítéktáblában lévő reléket vezérli. Olyanok mint egy kismegszakító és van rajta manuál gomb is. Ha kapcsoló feszültséget kap akkor állapotot vált.
ami nincs elromolva, azt nem javítjuk. ez alap. nem fogod kiásni a csövet csak mert 20 vagy 30 éves. kerti fagycsapot sem cserélsz 3 évente mert a negyedikben el szokott romlani. igenis vannak olyan dolgok, amikor akkor javítunk ha elromlott. de azt hogy mikor romlott el nem mindig triviális érzékelni.