Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Ha már I2C, meg RTCC, akkor a DS1337+ környékén érdemes lenne kotorászni. Olyan RTCC-t érdemes használni, amelyik ébresztést, riasztást is tud. A PIC teljesen átaludhatja azokat a napokat, amikor a páciens nincs szolgálatban, az RTCC felébresztheti az aktuális műszak kezdetekor.
MCP7940, MCP7941x vagz olyan kontroller, amiben benne van ay RTCC.
Üdv!
Ha PIC-el 24V-os PLC-t akarok vezérelni akkor milyen illesztést lenne célszerű használnom?. Amire gondoltam: FET, OPTO, esetleg Darlington sor(ULN28xx). Melyik lenne praktikusabb? A nyák saját gyártású lesz, tehát ebből a szempontból is meg kell vizsgálni minél kevésbé legyen kusza az áramkör. És kb. 25-30 bemenetet kell vezérelnem, bár egyszerre maximum 2-3 kimenet lesz meghajtva, tehát terhelni nem fogja a PIC-et nagyon.
A darlington megteszi, ha nem kell leválasztani, de nincs valami kommunikációja a PLC-nek? Ha lenne, én azon tolnám át az infót...
MODBUS-os. Ahhoz egyenlőre nem konyítok, máskülönben én is azon tolnám.
Ráadásul a PLC külön dobozban van, ezért a modbushoz kábelt kellene húznom, míg a PLC bemenetek ugyanabban a dobozban mint a PIC. A hozzászólás módosítva: Jan 30, 2014
Az optocsatolós megoldást ajánlanám, mert a kapcsoló üzemű tápokon keresztüli csatolást megszünteti.
A PLC bemenetein nincs véletlenül optocsatoló?
Nem tudom van-e, de 24V-os jelet igényel, ezért mindenképpen kell valami illesztés.
Wago 750-es szériából van.
Igen. És ahogy elnézem OPTO is van benne.
De attól a 3.3V-ot még 24-re fel kell tolni.
Mindegy. Végülis mint kiderült van benne OPTo, tehát leválasztás nem kell külön, a PIC 3,3V-ját meg ULN-re fogom kapcsolni az 30V-ig elviseli a bemeneti feszt. UCE feszültsége me max 50V is lehet.
De nem földre kell húzni, hanem +24 V-ra - legalábbis nekem úgy tűnt a leírás alapján. UDN2981A-t akartam ajánlani, de ez nem biztos, hogy 3,3 V-tal üzembiztosan meghajtható.
És m iért baj, ha nem a föld az aktív állapot, hanem a magas szint? Nem felhúzni hanem lehúzni fogom a PIC lábát, és magas szintre kapcsolom ha kell. Ám ez az UDN jó ötlet, köszi.
Idézet: Nem baj, csak alsó oldalon kapcsoló eszközzel nem valósítható meg ideálisan a vezérlés. Mekkora ellenállást teszel felhúzónak? Ha nagy értéket, akkor befolyásolja a bemenet feszültségét/kivehető áramát. Ha kis értéket teszel, hogy a bemenet meghajtása jó legyen, akkor meg az "inaktív" állapotban (amikor az ellenállás alsó végét földre húzod) folyatsz fölöslegesen nagy áramot. Ezért gondoltam, hogy a felső oldali aktív elem jobb megoldás.„És miért baj, ha nem a föld az aktív állapot, hanem a magas szint?” Ha jól értettem az adatlapot, akkor itt valójában nem alacsony/magas feszültségszint kell a bemenetre, hanem vagy meghajtod a bemenetre kötött diódákat, vagy szakadás van (mintha egy ki-be kapcsolható relé kontaktusai lennének rákötve a bemenet és a 24 V közé).
Így van. Ki-be kapcsoló típusú meghajtás kellene, de relézni nem akarom, így marad a félvezető. Én is gondoltam arra mit leírtál, de ha az ULN meg tud hajtani LED-et akkor egy OPTO meghajtása csak nem fog már neki gondot okozni alacsony oldali kapcsolásban.
Egyébként is elég ha a PIC kimenetét(ULN bemenetét) húzom le egy nagy ellenállással. Sőt használtam már lehúzás nélkül is igaz nem 24V-on. Nem hiszem, hogy gondot okozna itt. Mindenesetre az UDN jobb ötlet, ráadásul működni fog 3.3V-ról is ha jól nézem.
Az UDN 100mA -eket is le tud adni a kimenetein. Ez még sok problámát okozhat a szerelésnél. Egy-két elkötött kábel nagyon leterhelheti a készülék tápját, tönkreteheti az UDN -t. Jobb lenne valamilyen alacsonyabb rövidzárási áramor biztosító megoldás. A kimenetekre egy-egy UNL -t kötve vezérelni egy-egy PNP tranzisztort vagy PFET -et áramgenerátorként bekötve. Ha egy kimenet tönkre is megy, nagy valószínűséggel csak a PNP tranzisztort vagy PFET -et kell cseréni.
Az áramkör védelem nem lényeges. Ha csak 24V-ot adok a PLC-re akkor is annyi áramot vesz fel ami kell neki. Ha zárlatos lesz az ULN akkor sincs semmi gond a PLC-vel. Lehet, hogy inkább a PIC felé kéne óvatosnak lenni, nem tudom hogy tud tönkre menni egy ilyen IC. Tud-e esetleg a bemenete felé galibát okozni. Elég macera lenne egy TQFP64-es PIC-et cserélni, hacsak nem forrasztom külön adapterre.
A hozzászólás módosítva: Jan 31, 2014
Üdvözletem a fórumozóknak. Sikerült megoldanom a pic-es műszeremen a voltmérő "rész" pontosságát egészen 3-4 tized volt pontosságig. Idáig elmászott felfele a fesz. terhelés alatt és ilyen hasonló butaságokat művelt. Most ezzel a "jelformálóval" csináltam meg a bemenetet szinte pontosan ugyan ezekkel az ellenállásokkal (trimmerpotival beállítva), de még így is eltér 3-4-5 tized voltot a feszültség a valóstól. Pl.: szg. tápról megy az áramkör ilyenkor hitelesítem 11,98V környékére a dolgot digitális műszerrel is ellenőrizve közben. De beállítás után ráteszem stabil 5V-ra a bemenetet és csak 4,6V-ot jelez ki , 1,5V-os elemnél 1,1V-ot terhelésen is legalább 3-4 tiezedet esik miközben valójában 1 tized voltot esik a fesz. Mellékelem a bemenet kapcsolását. Az lenne a kérdésem mivel lehetne ezt a kis hibát lecsökkenteni maximum 1 tized eltérésre? Akkumlátor feszültségét figyelném vele , ami közben töltést is kap.
A hozzászólás módosítva: Jan 31, 2014
Szia!
A zener nagyon lapos karakterisztikával rendelkezik, így a névleges feszültsége alatt is már jelentősen söntöli a bemenetet. Inkább egy Schotty diódát tegyél a pic bemenete és a Vdd közé, ami nem engedi a lábon a feszültséget Vdd + 0.3V fölé. A hozzászólás módosítva: Jan 31, 2014
Értem, jelenleg még nincs dióda csak az ellenállások. Egy breadboard panelról próbálok 7805 a táp, és az az elől jövő tápot mérem. lehet hogy ez a sok hosszú vezeték is befojásolná?
Sziasztok.
Egy új kérdés, vagy inkább kettő: Tervezek egy egypotenciálos érintőkapcsolót(1 fegyverzet). 1. Még nem döntöttem el, hogy mtouch-os PIC vagy sima PIC ADC-jét használjam, bár valószínű az eőző lesz. Mit gondoltok? 2. A PIC fali vezetéken kommunikál intelligens világításvezérlővel, ami szintén mikrokontrolleres, a bemeneteit földre kell húzni, hogy kapcsoljon. Itt az a kérdés, hogy mehet-e direktbe a kapcsoló PIC lábáról a föld jel, bár szerény véleményem szerint le kéne választani mondjuk egy OPTO-val.
Sziasztok!
Szeretném megkérdezni, hogy van arra lehetőség az XC16 fordítóban, hogy 1 ciklus lépésenként állítsak be késleltetést? Az XC8 fordítóban a „_delay(n)” utasítást (n *cycles) használtam erre a célra. Sajnos az XC16 fordítóban nem találok erre lehetőséget. Válaszokat előre is köszönöm.
12 ciklusnál nagyobb késleltetésre a __delay32(), a rövidebbek nop() -okkal valósítható meg,
Köszönöm válaszod.
Maradok a nop() utasításnál mert a __delay32() utasításhoz plusz 5 ciklust hozzá kell adni a munkaregiszterek miatt. Sajnos 17 ciklusnál kevesebbet nem lehet beállítani. (Pl. __delay32(12) = 17 cyc, __delay32(20)= 25 cyc).
Sziasztok! Kérdésem annyi volna hogy szerintetek megvalósítható-e hogy van 4db poti és 4 pwm kimenet a 4 kimenet a 4 poti állástól függően négy különböző pwm jelet adjon ki.
PIC16F1508/9 -es PIC-el Lényeg hogy 4 független pwm jel kellene, számomra azért kérdéses a dolog, mert mind a 4 pwm a TMR2 modullal dolgozik. Válaszotokat előre is köszönöm.
Az attól függ mit nevezel függetlennek. Mivel mind a négy a TMR2-t használja, a PWM frekvencia egyforma lesz mind a 4 kimeneten, de a kitöltési tényező különböző lehet (PWMxDCL/H).
A freki lehet egy, a kitöltési tényezőnek kellene függetlennek lennie.
Sziasztok!
Szervó-t szeretnék vezérelni, nagyjából mindegy milyen módon. Jóó, nem teljesen, de már akkor is boldog(abb) ember lennék ha valahogy legalább működne. 3 lehetséges módot vadásztam össze a netről: 1: PWM 2: timer+delay 3: delay Vegyük sorra: PWM: Fogalmam sincs, hogy hogy állítsam be a PWM-et 50Hz környékére, szóval itt megbukott a mutatvány. Nyilván ha az menne, akkor csak a kitöltési értékkel kéne játszani és a motor működne. Timer+delay: Ez úgy működne, hogy a Timerrel számolok kb 20ms-ig aztán ürítem a tárolót és ráadom a szervó vezérlő lábára a villanyt, némi (0,9ms-2,1ms) időt delay-ben tölt a pic, aztán elveszem az áramot és a ciklus kezdődik elölről. Ehhez a módszerhez mellékelek kódot is, mert ezzel próbálkoztam. A kis motorocska ment egyszer jobbra, egyszer balra, de mindig ütközésig. Nem sikerült jó helyre hangolnom. Gondolom az órajeltől, a timer előosztójától és a számláló 8 vagy 16 bites tárolójától függ az, hogy tényleg 20ms-onként csordul-e túl a timer. Na, ezt nem sikerült belőni. (állítottam kódból az OSCCON-t, remélem jól, de ez sem biztos )
Delay: Ez tisztán delay alapú vezérlés, nyilván nagyon amatőr, a teljes processzoridőt megeszi, viszont így sem sikerült az elvárt működésre rábeszélni a motort . ehhez is mellékelem a kódot. (a delay beállítások a mellékelt kódban szinte teljesen randomok már, mert minél többféle képpen próbálkoztam vele, sikertelenül)
Szóval a rengeteg szócséplés után (amiért szíves elnézéseteket kérem) az lenne a kérdésem, hogy miként kéne kivitelezni szegény szervonak a vezérlését? Főleg a PWM alapú megoldás érdekelne. pic18f14k50-es pic-et és Tower pro sg90-es servo-t használok. Előre is köszönöm a válaszokat! Üdv! |
Bejelentkezés
Hirdetés |