Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1161 / 1319
(#) nedudgi válasza Attila86 hozzászólására (») Jan 28, 2014 /
 
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.
(#) Hp41C válasza Attila86 hozzászólására (») Jan 29, 2014 /
 
MCP7940, MCP7941x vagz olyan kontroller, amiben benne van ay RTCC.
(#) usane hozzászólása Jan 30, 2014 /
 
Ü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.
(#) watt válasza usane hozzászólására (») Jan 30, 2014 /
 
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...
(#) usane válasza watt hozzászólására (») Jan 30, 2014 /
 
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
(#) Hp41C válasza usane hozzászólására (») Jan 30, 2014 /
 
Az optocsatolós megoldást ajánlanám, mert a kapcsoló üzemű tápokon keresztüli csatolást megszünteti.
(#) icserny válasza usane hozzászólására (») Jan 30, 2014 /
 
A PLC bemenetein nincs véletlenül optocsatoló?
(#) usane válasza icserny hozzászólására (») Jan 30, 2014 /
 
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.
(#) Hp41C válasza usane hozzászólására (») Jan 30, 2014 /
 
(#) usane válasza Hp41C hozzászólására (») Jan 31, 2014 /
 
Igen. És ahogy elnézem OPTO is van benne.
De attól a 3.3V-ot még 24-re fel kell tolni.
(#) watt válasza usane hozzászólására (») Jan 31, 2014 /
 
15V már elég...
(#) usane válasza watt hozzászólására (») Jan 31, 2014 /
 
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.
(#) icserny válasza usane hozzászólására (») Jan 31, 2014 /
 
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ó.
(#) usane válasza icserny hozzászólására (») Jan 31, 2014 /
 
É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.
(#) icserny válasza usane hozzászólására (») Jan 31, 2014 /
 
Idézet:
„És miért baj, ha nem a föld az aktív állapot, hanem a magas szint?”
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.

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é).
(#) usane válasza icserny hozzászólására (») Jan 31, 2014 /
 
Í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.
(#) Hp41C válasza usane hozzászólására (») Jan 31, 2014 /
 
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.
(#) usane válasza Hp41C hozzászólására (») Jan 31, 2014 /
 
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
(#) janimester hozzászólása 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
(#) Hp41C válasza janimester hozzászólására (») 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
(#) janimester válasza Hp41C hozzászólására (») 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á?
(#) usane hozzászólása Feb 3, 2014 /
 
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.
(#) BlackStar hozzászólása Feb 4, 2014 /
 
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.
(#) Hp41C válasza BlackStar hozzászólására (») Feb 4, 2014 /
 
12 ciklusnál nagyobb késleltetésre a __delay32(), a rövidebbek nop() -okkal valósítható meg,
(#) BlackStar válasza Hp41C hozzászólására (») Feb 4, 2014 /
 
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).
(#) messer hozzászólása Feb 5, 2014 /
 
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.
(#) ktamas66 válasza messer hozzászólására (») Feb 5, 2014 /
 
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).
(#) messer válasza ktamas66 hozzászólására (») Feb 5, 2014 /
 
A freki lehet egy, a kitöltési tényezőnek kellene függetlennek lennie.
(#) ktamas66 válasza messer hozzászólására (») Feb 5, 2014 /
 
Akkor lehet független .
(#) HerrTopi hozzászólása Feb 5, 2014 /
 
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 )

  1. #include <p18f14k50.h>
  2. #include <timers.h>
  3.  
  4. void main(void)
  5. {
  6.         OSCCON = 0b01010111;
  7.         TRISC= 0;
  8.        
  9.         OpenTimer0( TIMER_INT_OFF &
  10.                                 T0_SOURCE_INT & T0_16BIT &
  11.                                 T0_PS_1_2 );
  12.         while (1)
  13.         {
  14.                 while(!INTCONbits.TMR0IF)// wait for timer to set flag
  15.                 {
  16.                         // do useful things
  17.                 }
  18.                 INTCONbits.TMR0IF=0;// reset timer flag
  19.        
  20.                 PORTCbits.RC1 = 1;
  21.                 Delay100TCYx(30);
  22.                 PORTCbits.RC1 = 0;
  23.         }
  24. }

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)

  1. #include <p18f14k50.h>
  2. #include <delays.h>
  3.  
  4. void main(void)
  5. {
  6.         OSCCON = 0b01010111;
  7.         TRISC= 0;
  8.  
  9.         while (1)
  10.         {
  11.                 PORTCbits.RC1 = 1;
  12.                 Delay100TCYx(30);
  13.                 PORTCbits.RC1 = 0;
  14.                 Delay100TCYx(370);
  15.         }
  16. }


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!
Következő: »»   1161 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem