Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   902 / 1203
(#) Hp41C válasza gaspar_zsolt hozzászólására (») Feb 15, 2017 /
 
Csak annyt tudok, amit erről a honlap tartalmaz.
(#) picipic válasza pajti2 hozzászólására (») Feb 16, 2017 /
 
Először közvetlenül a 7812-es IC után raktam be a 20 Ohmos ellenállást, vele párhuzamosan egy jelző LED-et 1K-s ellenállással. Ezen a 20 Ohmon mértem 11,8, lefékezve 9,8 V-ot.
Ezzel a két volt feszültségeséssel szerettem volna meghajtani egy relét, ami a PIC PORTB lábára földet adott volna.

Ez nem működött.

Javaslatodra a motor fáziscserélő reléje után raktam be 20+80, majd 80+80+20, majd egyedül 20 Ohmos ellenállás, párhuzamosan vele egy jelző LED-et (1k-val).

Ezzel két bajom támadt. Melegszenek az ellenállások, a 80+80+20 verzióban is (66 mA megy át
rajtuk)

A másik gond, hogy a feszültség esés a fékezésre, ill. kényszer megállásra sem változik.
(#) foxi63 válasza picipic hozzászólására (») Feb 16, 2017 /
 
Szia! egy optocsatoló kell neked.
Ha üzem közben 2 3V a feszültség esés a söntön, akkor a zener miatt nem megy az opto ledje .Ha megakad és valóban 6V a fesz, akkor meg jelez a PIC -nek.
üdv.: Foxi
A hozzászólás módosítva: Feb 16, 2017

opto_pic.jpg
    
(#) pajti2 válasza picipic hozzászólására (») Feb 16, 2017 /
 
Kicsit szedjük rendbe azt a temérdek sok ellenállást, ha végre sikerült konkrétan áramot is mérni. A 20 ohm 11.8V / 9.8V adatokból olybá tűnik nekem, hogy a motor normál pörögve felvesz 10 mA-t, álló helyzetből indulva / megakadva 110 mA-t. Túl nagy feszültséget ne akarj a motortól elvonni, nem lesz jó ötlet. A mechanikus relét felejsd el, legyen elég az elektronikus (optocsatoló bőven jó). Elég az a 20 ohm, nem kell több. Foxi63 linkelt egy kapcsolási rajzot. Abból ha kihagyod a zenert (bocsi @foxi63 de nem értem, minek az oda ), a 200 ohm-ot lecseréled 1k-ra, és az Rs helyére berakod a 20 ohm-ot, jó is lesz. A pic oldalán kollektor munka ellenállásnak maximum 3.3k-t használj, kb 1-2 mA áramra számolj abban a körben normál esetben. A túl nagy ellenállás azért nem jó, mert szivárgási áramod is lehet, és nem kellene azzal is kinyitni a pic-et.

A működésére vonatkozóan még mérned kellene pár dolgot. A motor nem csak végállásban fog sokat megenni, hanem indulásnál is. Ami különbség lesz közöttük, hogy indulásnál kevesebb ideig tart a megemelt áramfelvétel - végállásban pedig maradandó lesz az állapot. Megfigyelés gyanánt kellene valami olyasmit csinálnod, hogy pic-el mondjuk 10 millisec időközönként olvasni az optocsatoló jelét, és amikor összegyűlt 8 bit, kidobni uart-on mondjuk számítógép felé, és ott logolni. Aztán játszadozol a motorral egy picit, hogy elindítod / leállítod / hagyod végállásig billenni, és akkor állítod le. Látni kellene a bitlogon az időt, hogy meddig tart indulásnál a nagyobb áramfelvétel, mert azt még le kell nyelned, az nem motor végállásra utal, csak induláskori állapot.
(#) picipic válasza pajti2 hozzászólására (») Feb 17, 2017 /
 
Tegnap (Csü. 16:47) amint elküldtem a hozzászólásomat, azonnal rájöttem, hogy én vagyok a balfék, a kapcsolás kiépítését nagyon elnéztem. Hevenyészve, de rendesen elkészítve minden O.K. lett.
20 ohm a motorból jövő "föld" ágon, vele párhuzamosan, 1K+jelző LED, vele párhuzamosan feszültség osztó (0,5+0,5 Ohm). Ezen üres járatban 1,12 V, megfogva a motort ez felmegy 4 V-ra.
Semmi nem melegszik. Pont erre gondoltam eredetileg.
Hétvégére unokák jönnek, itt is alszanak. ( 3 pici 0,5-3 évesek + 2 felnőtt) Csak az elvonulásuk után tudok a függöny projektemmel foglalkozni.

A helyzet nagyon biztató.
(#) dani555 hozzászólása Feb 18, 2017 /
 
Sziasztok!

PIC-ezés közben egy probléma merült fel, amit nem igazán tudok megoldani. A PWM modul-nak nem lehet változót beadni inicializáláskor, frekvenciának. ((( PWM1_Init(const long int) ))) De szeretném változtatni a frekvenciát. Ezt hogyan lehetne szerintetek megoldani? Le kéne menni regiszterszintre? MikroC fejlesztőkörnyezetben csinálnám.

Köszönöm a válaszokat!
(#) gaspar_zsolt hozzászólása Feb 19, 2017 /
 
Sziasztok!
Egy újabb kis fennakadásom történt ezzel a csúcs szuper 16F18326 PIC-el.
Éppen az EEPROM írás olvasásnál tartottam, illetve csak szerettem volna, mert még olvasni sem tudok. Felprogramozni PICKIT3-mal megy az EEPROM, kiolvasni nem tudom.
Biztos, hogy mivel más a menete, én rontottam el valamit, vagy nem vettem figyelembe, csak most kifogytam az ötletekből.
Programsort mellékeltem.

  1. Bejövő adat a W=Eeprom címe
  2. EE_Read:
  3. BANKSEL NVMADRL         ; w=ADR
  4. movwf   NVMADRL
  5. MOVLW   0x00
  6. MOVWF   NVMADRH
  7. BSF     NVMCON1,NVMREGS
  8. bsf     NVMCON1,RD
  9. BTFSC   NVMCON1,RD
  10. GOTO    $-1
  11. movf    NVMDATL,w
  12.  
  13. Kimenő adat W az Eepromban tárolt adat.
A hozzászólás módosítva: Feb 19, 2017
(#) Elektro.on válasza dani555 hozzászólására (») Feb 19, 2017 /
 
Szia!
MikroC -ben és MikroPascal-ban a helpnél írják, hogy nem lehet változtatni. Most a konkrét okára nem emlékszem. Egéb fejlesztő környezetet nem használtam még.
(#) gaspar_zsolt válasza gaspar_zsolt hozzászólására (») Feb 19, 2017 /
 
Megoldottam!
Ezeknek az új prociknak az ADRH=0x70-nek kell lennie.
(#) kriszrap hozzászólása Feb 19, 2017 /
 
Sziasztok
Van egy PIC16f628 pickem.
10k felhuzó mclre megcsináltam xt osc konfig is 4mhzről fog müködni.
MikroC ben programozok.
A hiba oka hogy while(1) nem fut le egyszersem .
Pedig a shiftelés szépen megcsinálja while cikluson kivül.
Ha shiftelés megcsinálja akkor a osc beállításaim jók???
(#) pajti2 válasza kriszrap hozzászólására (») Feb 19, 2017 /
 
Bocsi hogy jelzem, kutyán van a jégkrém, és különben is elfelejtettem az esernyő után a boncasztalt, mert a varrógépes palacsintának uránium fagyi íze nincsen cica a kalapban, de azért érted ugye? Nem vagyunk gondolat olvasók. Ha segítséget kérsz, kapcsolási rajz, forráskód, és utána lesz valódi esélyünk megérteni a kérdésedet.
(#) kriszrap válasza pajti2 hozzászólására (») Feb 19, 2017 /
 
rendben csak gondoltam ha shiftelni tudok akkor osc konfig jó. na mindegy küldöm a kódokat.

CONFIG : $2007 : 0x2149
  1. void InitTimer2(){
  2.   T2CON = 0x4D;
  3.   PR2 = 249;
  4.   TMR2IE_bit = 1;
  5.   INTCON = 0xC0;
  6. }
  7. void main() {
  8.      InitTimer2();
  9.      TRISA=0b00000000;
  10.      TRISB=0b00000000;
  11.      TRISB.F1=1;
  12.      TRISB.F2=1;
  13.      TRISB.F3=1;
  14.      PORTA=0;
  15.      PORTB=0;
  16.      
  17.     while(1)
  18.     {
  19. shiftelések....(nem működik)
  20.     }
  21. shiftelések....(itt igen)
  22. }
(#) pajti2 válasza kriszrap hozzászólására (») Feb 20, 2017 /
 
Az a sanda gyanúm, hogy valami nem stimmel a forráskóddal, és szimplán elnézted, hogy mi nem működik. Tudsz file-t csatolni? Teljes forráskód kellene, és hogy miből gondoltad, hogy nem működik?
(#) Hp41C válasza kriszrap hozzászólására (») Feb 20, 2017 /
 
Nem jó megoldás:
  1. TRISB=0b00000000;
  2.      TRISB.F1=1;
  3.      TRISB.F2=1;
  4.      TRISB.F3=1;

A PIC kimenetét - ha csak rövid időre is - szembekapcsolja a bemenetet meghajtó áramkörrel. Amennyiben ezek nyomógombok, még elmegy, de kapcsolók, kapu kimenetek esetén már károsodhat a PIC kimenete és / vagy a meghajtó kapu kimenete. Sajnos erre nevel a Microchip C mivel nem definiálja a maszkok értékét.

Ha a az F1 az 1., F2 a 2., F3 a harmadik bitet jelöli:
  1. #define F1_Mask = 0x02
  2. #define F2_Mask = 0x04
  3. #define F3_Mask = 0x08
  4.  
  5.     TRISB = (F1_Mask | F2_Mask | F3_Mask);


Miért is kellene a beállításnak 4 utasítást elhasználnia?
Egy 16 vagy 32 bites kontrolleren használjak 16 illetve 32 utasítást?
A hozzászólás módosítva: Feb 20, 2017
(#) usane válasza kriszrap hozzászólására (») Feb 20, 2017 /
 
Mi shiftel hova? Vagy hogy pajti2-t idézzem még mindig nem tudjuk mit takar a varrógépes palacsinta.
Miből gondolod, hogy mi működik és mi nem? Ha belefut a while ciklusba és nincs kiléptetés akkor a while után miért is működne? Ha pedig van kiléptetés akkor azt nem értem. Miért kell véget érnie a programnak a PIC-ben?
(#) picipic válasza pajti2 hozzászólására (») Feb 20, 2017 /
 
Letakarítottam a felesleges reléket a nyákról. Most így néz ki a PIC rész nélkül.
Egyik irányba a függönyhúzást is sikerült kipróbálni. A V1 értékeket ráírtam a rajzra,

A V1 után egy olyen Zénert raknék be, ami kb. 3 voltnál nyit csak ki. A vizsgált feszültség felmehet esetleg 3 voltra is. Nehogy ezt is "végállás" jelnek érzékelje e PIC.

A PIC PORTB-je a config részben fel van húzva. Ezért mindenféle gombnyomást a láb földre húzása jelez.
(függöny kézi ki-be húzása, RF jel fogadása) Ezért a V1-et át kell váltanom "föld" jelre.

Milyen opto csatolót keressek? (Lomex)

A motor indulásánál fellépő áram löketet már a jelző LED felvillanásából érzékeltem. Ezt programban egyszerűen kezelni lehet. A motor indításakor cca. fél sec várakozás után kezdem nézegetni a bejövő jeleket.

Kapcs_1.JPG
    
(#) kriszrap hozzászólása Feb 20, 2017 /
 
Abbol gondolom hogy a while ciklus nem müködik amikor az idokiir() akkor látszólag nem csinál semmitse.
De a whileon kivül használom akkor jó.File linkelve
Vagy lehet valamit elöbb rezetelek átnéztem a kódot többször de nem találtam ilyenre utaló hibát.
A hozzászólás módosítva: Feb 20, 2017

ajandek.rar
    
(#) benjami válasza kriszrap hozzászólására (») Feb 20, 2017 /
 
Azokat a változókat, amit megszakításból és azon kívül is használsz, volatile-nek definiáld!
(#) pajti2 válasza kriszrap hozzászólására (») Feb 20, 2017 /
 
A linkelt projectben több külön forrást is találtam, viszonylag azonos tartalommal, pld ajandek.c és ajandek.cp. Egy tipp a "mákostészta" projectek kivédésére, hogy ha valami állományt még nem szeretnél letörölni, de útban se legyen, létrehozol a project könyvtárban egy "archiv" vagy hasonló nevű mappát, abba belemozgatod a félre pakolt file-okat, és mindegyik mappában létrehozol egy pld "olvass_el.txt" file-t is, amiben leírod, hogy micsodák az egyes állományok, amik abban a mappában vannak. Ami az előző üzenetemet illeti, teljes forrás elég lett volna, mikroC projectet nem tudok megnyitni, nincsen olyan fejlesztői környezetem, és így most gőzöm sincs, melyik file "aktív" vagy sem.
(#) kriszrap válasza pajti2 hozzászólására (») Feb 20, 2017 /
 
Hopsz elnézést ahogy lesz idöm megcsinálom txtbe.
(#) pajti2 válasza picipic hozzászólására (») Feb 20, 2017 /
 
Az értékek egy kicsit hajmeresztőek. Biztos nem mértél félre valamit? 8.4V a 20 ohm-on kb azt jelenti, hogy 420 mA folyik át a motorban végállásban. Az biztos úgy van?

Az a "fázis fordító relé" hogyan hangzik kevésbé laikus nyelven? Mi a fene az?
(#) brato válasza pajti2 hozzászólására (») Feb 20, 2017 /
 
Valószínű, hogy irányváltó relé akar lenni a "fázis fordító relé".
(#) picipic válasza pajti2 hozzászólására (») Feb 20, 2017 /
 
Újra ezeket az értékeket mértem, az asztalnál (függöny nincs rákapcsolva), terhelés nélkül ill. erővel megállítva, megfogva a hajtott kereket a 20 Ohmon a fesz. esés: 1,12 és 8,3 VDC

A fázis fordító felcseréli a 12 V és Föld ágat.
A program ide vonatkozó lépései:
Első lépésben a motor forgás letiltva (12 V elvétele), másod lépésben a forgásirány beállítva, harmadik lépésben a motor forgás engedélyezése.

Keresgéltem opto csatolók tájékán. A legmagasabb Collector-Emitter áram 50-60 mA. Ez ide nagyon kicsi érték. Lehet, hogy vissza kell térnem a mechanikus reléhez?
(#) Hp41C válasza picipic hozzászólására (») Feb 20, 2017 /
 
Nézd meg a H hídakat (H-bridge) pl. L298
(#) picipic válasza Hp41C hozzászólására (») Feb 20, 2017 /
 
Ha ezt hamarabb tudom, lehet, hogy az egész függöny projektet erre építem, de most már a vége felé járok. A PIC része nem tűnik problémásnak. Jelenleg a hagyományos végálláskapcsolók helyett választottam a "motor lefullasztásos" megoldást. Ennek egy része okoz gondot.
Relé vagy opto csatoló, számomra ez itt a kérdés.
(#) pajti2 válasza picipic hozzászólására (») Feb 20, 2017 /
 
Oké, ezt a fázisfordító relét nem igazán vágom, mondjuk legyen az e részlet egészében "motor fekete doboz", amin áram folyik át, és egészében úgy van, ahogy van.

A 8.4v elég markáns feszültség, nyugodtan rá lehet arra rakni egy npn-pnp darlingtont + pár ellenállást szintkomparátornak.

Optocsatolóból a TLP181 például elégnormális darab, még ha nem is a legolcsóbb.

Optocsatolót illetően továbbra is kérdéses, milyen messzire raknád a pic-et a motortól? A galván leválasztás csak akkor fontos, ha messzire lennének egymástól, hogy a sztatikus feszültség ne nyírja ki a pic-et. Ha közel vannak egymáshoz, szegről-végről azonos áramkörben, akkor még szintkomparálásnak is inkább használd a pic belső A/D-ját, és nem kell arra sem semmi más.
(#) picipic válasza pajti2 hozzászólására (») Feb 21, 2017 /
 
kb. 5-6 méter lenne a távolság a motor és a PIC között.
A távirányításra tervezett RF jel is bezavarhat a statikus feszültségbe?
(#) nagym6 válasza picipic hozzászólására (») Feb 21, 2017 /
 
A motor is termelhet zavarjelet, sokat is, picnek bezavarhat. A pic bemenetét nem ártana szűrni soros ellenállás, párhuzamos kondival. Ellenállás pic bemenetéhez választva, kondi az ellenálláshoz választva egy lassú időállandóhoz.
(#) pajti2 válasza picipic hozzászólására (») Feb 21, 2017 /
 
Éppen azon filozom, miért ábrázoltad egy rajzon a 12v és 5v tápokat, meg hogy hogyan is fogod vezérelni a reléket. Ha közösített gnd jeled van a motor meghajtás és a pic között, gyakorlatilag nincs értelme a galván leválasztásnak, és akkor felejtős a szintkomparálás is meg az optócsatoló is. Vidd a V1 jelet közvetlenül a pic AD bemenetére, és a sztatikus feszültség majd vagy kinyírja, vagy nem. Egy próbát megér.
(#) picipic válasza pajti2 hozzászólására (») Feb 21, 2017 /
 
A irányváltó relét a RORTA2-re (Output) adott SET paranccsal. A tranyó: BC1872B.

A végállás jel a PORTB0-ra (Input) adott föld. Még ki kell dekáznom, hogy egy kiválasztott tranzisztor mekkora feszültségre v. áramra nyit. Ezt kell majd kicentizni a fesz. elosztóval.

A motor engedélyező relét az irányváltó reléhez hasonlóan vezérelném a PORTA3-ról (Output).

A mostani megoldás a két félfüggöny egyik- behúzva kb. 2 méteres - felét kezeli. Annyi szabad láb maradt még a PIC-en, hogy a másik -behúzva kb. 3,5 m-es - függönyt is kezelni tudnám.
Csak az AC ADAPTOR bírja, elméletileg az 1,1 A elég kell legyen.
Következő: »»   902 / 1203
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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