Fórum témák
» Több friss téma |
Olvasgattam az infrakapuk után. Jól gondolom,hogy az adó infraledet 30kHZ körül kell járatni? Ezt érzékeli a fotodióda,ezt a frekit tudjuk detektálni róla,amit aztán kapcsoló jellé tudunk alakítani.
A programban úgy gondoltam,hogy az infraledet egy PWM modullal lehetne meghajtani,aminek a frekvenciáját a programban be lehetne állítani. A vevővél a bejövő jelet számlálóval lehetne kielemezni és kapcsoló jellé alakítani a programban. Jó a logikai menetem? Ha úgy gondolod így lehet belőle valami,akkor nekiállok kísérletezni vele.
Létezik ez az út is. Én biztosan nem bonyolítanám meg ennyire. Tehát: a szivattyú forgását akarod detektálni, Erre nem biztos, hogy 30Khz kéne a PIC részéről. Értem én ezalatt, hogy ez a ms harmada. A parsic progival ezt nem igen tudod előállítani... Sima kapu kellene amelynek a frekije maximum a forgásjeladó "frekije". Most én is benne vagyok egy nagyobb projektben és nem tudok részletesebben segíteni.
Szia!
Nem engem kérdeztél, de: Ha az infra kapudnak viszonlag kis távolságot kell áthidalni 3-4cm (max), a meghajtásra simán elelgendő a fix egyenáramú meghajtás (20mA/adó). Ekkor nem kell kiértékelned a vevő jelét, elég csak detektálni. Nálam több alkalmazásban működik. Ha nem túl erős a külső megvilágítás, stabil bemenő jelet kapsz a PIC-nek.
Köszönöm neked is a tanácsot,akkor valószínű,hogy a fix meghajtással fogok majd próbálkozni.
Szia Csabi ! Szerinted ezek közül valamelyik működne ? És ha igen kb milyen frekvenciát tudna produkálni ? Azt tudjuk hogy az eredeti ütemadó 2ms alatt nem dolgozik, evvel nem lehetne megkerülni ezt a "bug-ot"?
A hozzászólás módosítva: Jan 23, 2014
Hello! Ez nem "bug", hanem szerintem így működik. (Akárcsak egy PLC létraprogramja.) Nézd meg egyszer az ASM listában hogy működik az One-Shot, vagy egy kapu. Akkor meglátod. A program 2ms-onként végigrohan a sorokon és az számított eredményt egy adattárolóba írja. Majd 2ms múlva ismét nekiáll. Vagy is adatváltozás, kimeneten vagy belül csak 2ms-onként lehetséges.
Átverni úgy lehet, hogy pld. 20MHz-es kavicsot teszel bele, és azt hazudod neki, hogy 4MHz-es van benne. Ekkor minden ötször gyorsabban fog végrehajtódni. De ezt minden időzítésnél figyelemebe kell venni. LCD vezérlésnél lesz pld. a gáz, mert inicializáláskor vannak belső időzítések. üdv!
Tehát akkor ez az ötlet nem életképes, a trükköt amit írtál azt ismerem de arra gondoltam hátha megkerülhető az időalap, programon belül is és nem csak "átveréssel"
Szia, Bocs egy ideje nem jártam itt. Mindent nem biztos, hogy meg lehet csinálni. jeleztem az illetőnek anno, hogy szükség van-e a 30Khz, folyamatos küldésére? Az a helyzet, hogy én egy feladatot a rendelkezésre álló eőforrások szerint fogalmazok meg. Lehet még INC filet is írni hozzá, esetleg a megszakítás rutint kivenni INC-re és átvariálni...stb. Volt, már rá példa, hogy a program annyira bonyolult volt, hogy bizonyos feladathoz tartozó "gyári modul" instabilitást okozott a rendszeren. Az adott feladathoz tartozó modult INC-ben újra megirtam egy kicsit másképpen és egy btfss utasítással meghívtam...stb. A modulos rajzolgatás mögé tekingetve, el lehet sajátítani a klasszikus ASM kódu programozáshoz is egy-két dolgot.
A hozzászólás módosítva: Jan 25, 2014
Üdv.
Elég sokat keresgettem, de nem nagyon találtam konkrét leírást arra, hogy a Parsic nevű programban az Uart-ot hogyan kell használni. Már jó pár dolgot csináltam benne, de most kicsinek tűnik a PIC memóriája. Egy változót tovább szeretnék vele vinni egy másik PIC-be. Esetleg valaki tud ebben segíteni? Előre is köszönöm.
A topic elején kb 10. oldalig, elég sok működő projektet tettem fel. Van Uart-os is.
Mindenekelőtt készíts két PIC-es áramkört LCD-vel. Mert a változókat elég nehéz a "fekete műgyanta mögött meglátni". A szimulációban nem minden jelenik meg. Egyébként pofon egyszerű... A gyári példa és van rá 2x3db...A PIC-ek Rx lábát az ellenoldal TX lábával kösd össze, és fordítva ugyanígy. Az adatsebességek 4Mhz Quartz-ra vonatkoznak. A hozzászólás módosítva: Jan 27, 2014
Sziasztok!
Bocsánat az alapvető kérdésért,lehet hogy már kérdezték... A 16F628A-nak elvileg van 4 analóg bemenete ( RA0/AN0 - RA3/AN3 ),de a parsic és fordításnál az mplab is nyafog,hogy nincs. A 16F 877-nél ugyanezek a lábak vannak és ott gond nélkül fordít. Miért van ez? Válaszotokat előre is köszönöm.
Megtaláltam a választ itt egy kicsit visszább. Sajnos nincs neki,csak a 876-nak. Csak a " kis" feladathoz nem akartam 28 lábas picet. De ha csak ennek van analóg bemenete...
A 16F628 -nak csak komparátora van, A/D nincs benne. Esetleg a 16F819 vagy 16F88 18 lábú és rendelkezik A/D -vel.
Sziasztok!
Még új vagyok itt a fórumon,de lenne egy nagy kérdésem! Szeretnék építeni egy 0-250 fokig állítható hőfokszabályzót egy pic 16f877a segítégével. Meg tudom e valahogy oldani parsicban a programozást? Milyen módon csatlakoztassam a PIc-hez a hőelemet (J vagy PT100, még nincs eldöntve, amelyik az egyszerűbb)? Nem kell nagy tudás csak kijelezze a beállítótt értéket és annál a hőfoknál kapcsoljon az egyik kimenet. A válaszokat előre is köszönöm!!!
Kezdd el olvasni a témát, az elején találsz több hőmérő megoldást .. A pt100 hoz és a hőelemhez is nagy valószínűséggel kell majd egy előerősítő ami a pici feszültség változást 0-5v közé konvertálja
A hozzászólás módosítva: Feb 2, 2014
Gondolom füstöt akarsz mérni (?) Ebből az utcából már megfordultam. A PT100 olyan sérülékeny magasabb hőmérsékleten, hogy nem érdemes vele foglalkozni. Hőelem az nem megy tönkre. K a legolcsóbb, a J is gyakori...Keresni kell egy előerősítő példát a neten, és analógbemeneten mérni a PIC-el. Ha ragaszkodsz a teljes pontossághoz, akkor egy táblázatban átkonvertálhatod az értékeket, ugyanis nem lineáris a hőmérséklet és thermo feszültség karaktarisztika. Parsic, tab és call modul...
A hozzászólás módosítva: Feb 2, 2014
Sziasztok!
Van egy kérdésem. Analóg bemenetnél a kijelző nem tudja pontosan megjeleníteni az értéket. Pl.: 6-ról 7-re váltásnál 8-at mutat aztán beáll 7-re. Ez egy hőfokmérő lenne 16 bites beállításnál 0-100 fokot kellene neki kijelezni. Valójában a szimulácíó tökéletes de a PIC-be befordítva ez a jelenség jön létre. Van valami ötletetek a hibára? A hozzászólás módosítva: Feb 2, 2014
Feltételezem a kijelző frissítése túl gyors...vagy sok a timer és a késleltetés. Pl nem értem minek a nyomógombra 50ms késleltetés, amikor az oneshot mindent megold...
A hozzászólás módosítva: Feb 2, 2014
Továbbá helyezz el a főprogramba a "kijelzést kezelő legfontoasabb" modulok elé és végére BCF INTCON,GIE és BSF INTCON,GIE párokat. Ehhez nyísd meg az Mplabot és oda írd bele és onnét fordítsd tovább...
A hozzászólás módosítva: Feb 2, 2014
A második oldalon van a kijelző vezérlése. Digitálisan állított értékeknél tökéletes, Timer is csak 1van. A késleltetés a nyomógomb prellegése miatt van.
A hozzászólás módosítva: Feb 2, 2014
Helyesbítek: Timer és bármilyen idő alapú modul, késleltetés, impulzus hossz, stb. A Parsicnak nem a legjobb a hétszegmens kijelző kezelője. néhány társunk javított már rajta. keress rá. vagy használj lcd-t van 2x8 soros is...Vagy a már említett megszakítás kezelést...
A hozzászólás módosítva: Feb 2, 2014
Köszi a választ! Egy jó előerősítőre találtam mintát. Pic- be volna egy kis gondom hogy hogyan is kezeljem le. Esetleg egy egyszerű mintát ha fel tudnátok tenni akkor már az alapján meg tudom csinálni. A pontosság az jó lenne ha olyan 1 fok volna.
Tessék 0-100c
A hozzászólás módosítva: Feb 4, 2014
Ha igazán pontos hőmérőt akarsz, akkor használj ds18B20-t. Létezik 1-2-3-5m-es vezetékes "vízhatlan kivitel" ez Pl 0,0625 felbontású. (ha van időd kivárni a szállítást, free shipping 3$...stb) Kb 2 hét:Érzékelő_beszerzés Ha van rá igény majd publikussá teszem az INC fájlokat egy példa keretében.
A ds18b20-t már néztem én is csak az a baj hogy mindössze 125 fokig jó. sütőbe lenne a hőfokszabályzó, a J hőelem az megvan már. Az erősítés részén gondolkodom még, meg persze a pic programon. Sajnos még nem vagyok annyira profi a parsicban, kijelzőkezelés és ennél bonyolultabbakat még nem csináltam. Pár programot már csináltam vele, működött is beégetve. Mintáknak illetve magyarázatoknak is nagyon örülnék.
Értem már. A hőfokszabályozást egyszerű módon egyetlem modullal meg lehet oldani. A fontosabb rész az a hőelem hiteles felerősítése. Én K hőelemet használtam hasonló célra, ahhoz van kompenzált előerősítő SPI busz kimenettel (max 6675). nem akarlak megtéveszteni. csak jelzem a lehetőségeket. A j hőelem táblázat is nyílván megtalálható a neten. Minden hőfok értékhez tartozik egy mV (uV) érték. Egy sima műveleti erősítővel felerősítve az analóg bemenetre juttatva, a már fentebb említett modulokkal korrigálni lehet a görbét. Erősítsd fel, mérd meg multiméterrel. A 300C körüli érték legyen egyenlő 5V-al. Ez csak egy példa...Vagy éppen 512C legyen 5V ez könnyen kezelhető..stb
Én ezt a programot lm35 érzékelővel használtam tökéletes 1c pontossággal
A hozzászólás módosítva: Feb 4, 2014
Köszi a segítséget majd megpróbálom. Amúgy a kijelző rész tökéletesen működik csak az analóg bemeneten csinálja a fent leírt hibát. Ha analóg bemenetre egy potit teszek 0-5V közé akkor a számváltásnál így jelzi ki az értéket. A tápfesz /0-5V/ ugrálása miatt lehet? Bár tettem az analóg bemenetre kondit is szűrésnek. Akkor is ilyen volt.
|
Bejelentkezés
Hirdetés |