Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Bocs nem tudom miért irtam printmodet.
Szoval pinMode(esense, INPUT) pinMode(wsense,OUTPUt) Közben már sikerült pár lépéssel tovább lépnem, és alakulgat a kode. Kösz a segitséget.
Namost nem tudom mi a gond, de leírom ahogy írtad:
Valami ilyesmire gondoltál?
Kösz igy irtam meg én is, csak még valahol nem ott van, ahol lennie kell. A fenti sorokat a loopba tettem. A 6. sor után még be kell olvasnom az esense értékét, (int val8=digitalRead(esense); illetve 13. sor után után a wsense értékét (int val9=digitalRead(wsense); majd ezek a valA0-val illetve a valA2vel határozzák meg a 6 státusz egyikét, azaz e 4 változo határozza meg valamelyik státuszt. A statuszok jok, azokat kiprobáltam A0,A2,A3 és A4 bemenetekkel). Sajnos a progi még valami hibát jelez, és még nincs annyi tapasztalatom, és a hibajelzés sem egyöntetü. Majd holnap folytatom, lehet, hogy elindul.
Sikerült befejeznem a progit (vagy 500 sor) és müködik. Kösz mindenkinek a segitséget!
Sziasztok! Egy kis segítséget szeretnék kérni. Adott egy arduino uno „késöbb nano” relé modul egy mikrokapcsoló végállásnak „késöbb reed” és egy levegő szelep amit két AC 24V tekercs kapcsol. Megírtam a programot ami asztalon tökéletesen működött addig amíg a AC 24V nem került bekötésre. Sajnos a két tekercsnek a vezetékei és a végállás kapcsologegy kötegbe megy 5X0,75”. Próba során random módon különböző hibákat csinált. Pl.:olyan helyen érzékelte a végállást ahol nem kellet volna, nem ment magától vissza a végállásba csak akkor ha folyamatosan nyomtam a gombot. Először arra gyanakodtam hogy összeszed valamit a 24V kapcsolgatásakor. Ezért a végállást alapba földre huzam”nyitott kapcsoló” és zárt állapotba 5V. De így is produkálta. Gyanús lett hogy olyan dolgot nem csinál amit minden körülmények között meg kellet volna tennie. A program nagyon egyszerű. Setupba van egy ellenőrzés hogy nyomva van e a végállás, ha igen az érték 1 ha nem 0. Ezután belép a Loopba ahol a működtető kapcsoló megnyomásával meghúzza a relét és a szelep működik, ha elengedem akkor relét vált és vissza tér alap helyzetbe. Beraktam egy ledet, Setupba be írtam hogy ha végállás 1 akkor világítson ellenkező esetbe ne. És itt jött a meglepetés. Ha úgy indult hogy nem világított akkor ez első vagy második végállás érzékelés után elkezdett világítani. Kiderült hogy mindig újraindul az Andurio és akkor már lehet olyan állapot hogy 1-re vált. Ezt csak akkor csinálja ha a tekercseket működteti. Létezik az hogy a bemenet kap egy feszültség löketet és ettől újra indul? Sokkal gyorsabban csinálja az újraindulást mint ha a resetet nyomnám. Egy pillanatra látni, hogy kikapcsol a led. Elég lenne egy rc tag a 24V-hoz vagy a végállás kapcsolot kellene leválasztani pl: opto? Eőre is köszönök minden javaslatott segitséget. Bocsi ha hosszú lett
Tipikusan a mindig elfelejtett ki és bementi portok védelmének a hibájába estél bele.
OPTO CSATOLÓ ki és bemenet oldalon, hosszú drótokra nem lógatjuk a uC lábát ....stb. A uC FÜGGETLEN tápról járjon ami STABIL és nem rángatja a 24V relé. Ilyen apróságok....
Van egy 24V trafó ami csak a mágnestekercsek megtáplálására szolgál. Van egy 220v/12V led táp ami a relémodul tápja "12V-os relék"és ugyan innen egy LM7805 modul csinálja a uC stabil tápját. Az tény hogy a végállás kapcsoló 5mvezeték végén van és ugyanabba a kötegbe megy a 24V is. De a hiba csak akkor van ha a tekercsek müködnek. Akkor érdemes lenne közel a uC-hez csinálni egy leválasztást pl optot? Vagy mivel lehet még leválasztani?
A tekercsekkel párhuzamosan nincs szupresszor? Mert az induktív visszarúgásokat nem szereti semmi sem...
Idézet: „uC-hez csinálni egy leválasztást pl optot?” Igen ezt se ártana. A uC portja max 2 3 centi vezetéken legyen rákötve az optocsatoló tranzisztorára.A port külső pár kiloohmos ellenálláson keresztül legyen felhúzva uC + tápágára.A bemenő portot hidegítsd pár 1-10nanos kondival Ha eddig magas H szintre működött a progiban a végállás akkor most "aktív L-re" fog ... softvert módosítani szükséges ... persze csak akkor ha fordulna a logika a felhúzott port miatt. Az optocsatoló ledjével sorba köthetsz egy másikat pl zöld/kék is így sokkal nagyobb feszültséggel nyitnak és visszajelzésed is lesz a kontaktusok, végálláskapcsoló állapotáról. Viszonylag nagy áram haladjon át rajtuk 5-10 mA. Így már kevésbé fogja az induktív relé tekercs rúgások zavarni a portot. Az opto ledjét NE a uC 5 Voltjáról tápláld! A relék tekercseivel párhuzamos antiparalel dióda tompítja a feszültség tüske egyik periódusát , supressor mindkettőt tudja vagy 2 szembekötött 30V köröli zener dióda is hasonlót tud. Idézet: kapcsoló üzemű vagy analóg ?„220v/12V led táp” Kapcsoló üzemű esetben plussz C L C szűrők a tápágba nem hátrányosak. Relék kontaktusaival párhuzamosan kötött soros R C tagok pár 100 ohm és pár 10n . A hozzászólás módosítva: Szept 18, 2019
Igen kapcsoló üzemű. A pár kiloomosnak a 10K az gondolom jó? A hidegítő kondit ezzel az ellenállással kell párhuzamosan kötni?
Én arra gondoltam hogy az opto ledjét a 12V-ról táplálnám. Akkor 910-1k ellenállás jó lenne? A szembekötött zenernél a két katod néz össze? A teljesitménye mekkora legyen?
Hidegítő kondi a negatív és a uC és port közé nem plusz tápra .
Optocsatoló adatlapja eldönti a maximális led áramot ... 5 - 10 mehet rajta ...
Még az is kérdéses, hova megy a végállás kapcsolo. Ha van mod akkor használd valamelyik analog bemenetet amire egy kondit is rakhatsz ami kiszüri a zavarokat. Ha digitális a bemenet akkor azon kezelni kell a végállás kapcsolo állapotát ( prellmentesités). A legegyszerübb ha többször beolvasod (5-10x 2-10 ms-ként) és csak akkor fogadod el, ha sorban 5-10 egyforma állapotot olvasol be. Persze az optobemenet meg a szürések is elengedhetetlenek.
Ha nem is optocsatoló ahol nem indokolt, de egy 74HC541 nem árt portleválasztónak, ahol dolgozom a japán mérnökök mindig így készítették a tesztereket, sőt olyan is volt hogy csak a port felhúzóellenállását kapcsolgatták és 100kOhm ellenállásokkal volt lehúzva a port ezt erősítette az 540, vagy 541 buffer IC.
Köszi. Hirtelen itthon K814P optot találtam, de csak egy darabot. Majd még beszerzek.
Sziasztok!
Szeretném arduinóval 89c2051 mcu-kba végrehajtandó programokat beírni. Bővebben: Link ezt találtam. Dolgozott màr valaki ezzel? Tud mondani tapasztlatot valaki? Vagy màs megoldás is érdekel.
Sziasztok!
Segitségre lenne szükségem. van 8db nyomógomb 16db relé az megvan hogy minden relé egy gombnyomásra 1 relét működtet. (on-off) azt hogyan tudom leírni codba hogy minden nyomógombhoz 2db relé van hozzárendelve. ami úgy működne hogy minden egyes gombnál : az első gombnyomásra meghúz az első relé a másodikra elenged a harmadikra meghúz a második relé a negyedikre meg elenged. állapottól függetlenül 90mp után visszaállna alapállapotba (az első gombnyomást várni).?
Ennél a feladatnál a DELAY() mint időzítő függvény felejtős lesz!
millis() függvényt kell használnod mindenképpen! Mert a delay() esetén nem fog csinálni semmit a proci csak vár. Ha közben nyomsz 1 gombot nem fogja lekezelni csak ha letelt a legutolsó 90 sec. Te pedig "bármikor" meg nyomnád bármelyik gombot , ezt kell lekezelnie a uC-nek.
Egy kérdés:
Van egy i2c hálozatom ( most még csak 2 résztvevövel). Az egyikböl olvasni kéne a bemeneteket a másikba kiküldeni. Az olvasott egység cime 0x20, a cimzetté meg 0x39. Egyenként tudom olvasni is meg irni is a modulokat, de ha berakom a void loopba akkor azt irja, hogy redefined address. Még kezdö vagyok az Arduino nyelvezetével igy fogalmam sincs hogyan kell ezt megoldani. Azt hittem ha a müködö iro meg olvaso kodokat berakom a loopba akkor az menni is fog. Kösz!
Helló.
Van egy változód, amit rossz helyen definiálsz, mégpedig az, amelyikben az eszköz címét tárolod. Vedd ki a definíciót a loop-ból, mert az egymás után mindig lefut. Legyen a setup-ban, vagy csak simán minden függvényen kívül. A loop-ban pedig csak értékadással változtasd a változó értékét, ne szerepeljen előtte semmi definíció. A hozzászólás módosítva: Szept 25, 2019
Kösz, erre már gondoltam csak nem tudom megcsinálni.
Már probálkoztam a int addressR = 0x20; // olvasando cim int addressW = 0x39; // irando cim A loopban még nem tudom hogyan kellene ezt elkülöniteni, mert a portokat is kapcsolni kellene (INPUT/OUTPUT). Ez nem megy még, és nem találok semilyen mintát ahol ilyen megoldás lenne. Esetleg azt meg lehetne csinálni, higy az egyes modulokat elöre a loopon kivül fixen definiálni tudnám Inputra meg Outputra? Ezzel is rövidülne a loop. A hozzászólás módosítva: Szept 25, 2019
Setupba: int addressR, addressW;
Loopba: addressR = 0x20; addressW = 0x39; A definíciót a setupban, az értékadást a loopban. Nem tudom, de szerintem AMS programozásnál is ezt a logikát kell követni nem? A hozzászólás módosítva: Szept 25, 2019
Ezt probáltam de erre mondja, hogy nem lehet változtatni a cimet.
igen az ASM-be ezt csinálnám, de itt valahogy nem tetszik neki. Na mindegy megyek még tanulgatni.
Másold be ide az egész sketch-et. Úgy könnyebb segíteni.
Sajnos most csak igy fejböl, mert egy masik gépen vagyok. A kode vége zavar egy kicsit, mert ott is konfliktus van, ha több cimmel dolgozok. (Wire.beginTransmission(address); ha csak egy cim van akkor müködik. Kösz! A hozzászólás módosítva: Szept 25, 2019
Na már sikerült egy mintakodot találni, de sajnos ebben is van hiba. Ráadásul képtelen vagyok a githubrol letölteni a jo pcf8574 könyvtárat. (Eltünt a download gomb).
Mindjárt az elején hibát jelez: (*****HIBA sorban)
Közben kiderült, hogy többféle PCF8574.h könyvtár van. Sajnos egyikkel sem megy a mintaprogram: most az 56. sorral van gond. Azt irja, hogy a
Class PCF8574 has no member named ´read8´ Érdekes délelött olvaso meg iro programokat probáltam, ott nem volt gond a PCF8574.h koddal és vagy 3-t sikerült müködésre birni a LEDek villognak a kapcsolok müködnek, csak nem egyszerre. Már kiprobaltam vagy 3-t. Az utolso kettö egyöntetüen a fenti hibát hozza az 56. sorban ( tehat nem a jm_PCF8574.h, mint a berakott mintán.)
Arduinónál mintha az a logika lenne, létrehozol két külön egységet az inicializáló részben, különböző init értékekkel, ez után csak ezekre az egységekre hivatkozol a főprogramban. Nem a címeket kell átírni üzem közben.
Kösz, pechemre egy rossz kodot találtam, legalábbis képtelen voltam müködésre késztetni. A végén már a kodban nem volt hiba de kiirta, hogy nem tudja NANOra kompilalni. Az utolso remény volt egy másikat találni és szerencsém volt, egy másik kod az elsöre megy már 12 LEDdel meg 4 kapcsoloval. Holnap megprobálom azt tovább fejleszteni.
Sziasztok!
Van néhány újabb kínai Lenardóm, pro micróm ATmega32U4-vel, amik nem hajlandóak együttműködni az NRF2401L+ modullal. Nem jelenítik meg a printDetails()-t és persze nem működtetik a rádiót se. Régi alaplap viszont megjeleníti a részleteket, a működést nem tudtam ellenőrizni, mert nincs belőle másik. Az a kérdésem, hogy át lehet-e írni a processzor tartalmát, ki lehet-e javítani ezt a hibát? |
Bejelentkezés
Hirdetés |