Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   349 / 1319
(#) kissi válasza delmur82 hozzászólására (») Nov 30, 2008 /
 
A tranzisztor bekötését nem rontottad el?!

Próbálj meg a tranyóval csak 1-5 LED-et működtetni ( soros ellenállás kötelező!), esetleg PIC nélkül, az 5V-ot közvetlenül az 1 kohmos ellenállásra tenni!
Erről jut eszembe: a PIC megfelelő lába kimenetnek van definiálva ( nem a bemeneti felhúzóellenállás okozza a derengő fényt?) ?!

Steve
(#) szilva válasza krisztian98 hozzászólására (») Nov 30, 2008 /
 
Én körülnéztem, ahol hirtelen tudtam volna ilyesmit, de sehol nem találok. Emlékeim szerint ez az IC nem egy mai csirke, nem biztos, hogy olyan egyszerű lesz beszerezni. Lehet, hogy ha van rá mód, inkább érdemes egy funkciójában helyettesítő, de beszerezhető típusra áttervezni az áramkört.

(Ha valahol találsz Budapesten ilyen IC-t Általad is elfogadható áron, és csak a megvásárlás/posta az akadály, abban tudok segteni, hogy megveszem és elküldöm.)
(#) kissi válasza krisztian98 hozzászólására (») Nov 30, 2008 /
 
Szia!

A RET-nél ezt látom:

38-28-15 AD 558JNZ 8-BIT D/A-KONVERTER PÁRHUZAMOS DIP16 AD 3 271,67 Ft

Steve
(#) szilva válasza delmur82 hozzászólására (») Nov 30, 2008 /
 
500mA kapcsolására én nem BC337-et használnék. Adatlapja szerint a maximum Ice 800mA, és 500mA Ic-hez 50mA Ib-nél ad meg szaturálási feszültséget (max. 0.7V), továbbá 300mA-nél a Hfe min. 60-as értéke sem túl bíztató. Elképzelhető, hogy egyszerűen kevés ekkora bázisáram (1k soros ellenállásnál ~4.5mA) az 500mA kollektoráramhoz, nem nyit ki rendesen a tranzisztor.

Sajnos egyébként ekkora kollekoráramokhoz általában már (PIC számára) jelentős bázisáramok szoktak kelleni, ezért javasolt darlington kapcsolású meghajtófokozat. Esetleg egy N csatornás teljesítmény FET, pl. IRLZ34, ennek a G-jét közvetlenül (vagy esetleg pártíz ohm-on keresztül) a PIC kimenetére lehet kötni, és 30A-ig használható. A maradékfeszültsége is kisebb, mint egy tranzisztornak, emiatt kevesebb hő keletkezik.
(#) trudnai válasza krisztian98 hozzászólására (») Nov 30, 2008 /
 
Gyorsan rakerestem a DigiKey-nel erre az IC-re, sok fajtaja letezik, ugyanis van 10-ert, de van 40 euroert is! Tokozasban is elternek, de szerintem masban is, de most ha nem muszaj nem asnam bele magam, helyette itt a link, az adatlapok letolthetok onnan:

DigiKey: AD558
(#) trudnai válasza delmur82 hozzászólására (») Nov 30, 2008 /
 
Idézet:
„Valószínüleg stabilizált.
Leterhelési kisérletet elvégzem de elég jól bírhatja mert még nem volt alkalmam érezni hogy langyosodott volna egyáltalán.”


Figyi, ez egy muszaki forum, kodositesekbol itt senki sem ert. Tehat:

1. Mekkora feszultsegeket mersz terhelten es terheletlenul
2. Terheles alatt mekkora terhelest ertesz (wattban vagy amperban..)
3. Milyen zavarszintet tapasztalsz?
4. Mennyi ideig terhelted?
5. A 'langyos' az hany fok?
(#) trudnai válasza delmur82 hozzászólására (») Nov 30, 2008 /
 
Idézet:
„A relé jobb lenne mert ott csak az érintkezőktől függ milyen áramot bírnak kapcsolni viszont hangosak. A tranyók meg halkak.”


No meg arrol se feledkezz meg, hogy a relet egy elektromagnes uzemelteti aminek egyreszt joval tobb aram kell a meghajtasahoz, mint egy tranyonak, ugyhogy a meghajtasahoz mindenkeppen kell neked tranyo. Azonkivul a rele tekercse parazita aramokat general amik kivedeset szinten meg kell oldani. Tovabba egy tranyoval tudsz akar dimmelest is megvalositani ha PWM-re kotod, mig ugyanez relevel lehetetlen.

Ja, es a rele mechanikai kapcsolo, theat egy ido utan neked egeszen biztosan cserelgetned kell...
(#) delmur82 hozzászólása Nov 30, 2008 /
 
4 db LED - et sorbakötve szépen villogtat a tranyó. Kivettem a PIc et és az 1K elé közvetlenül odatettem az 5V - ot. Igy is világítenek a ledek. Viszont ha az izzót tettem rá a tranzisztor után és a tranzisztor bázisa lóg, akkor a tranzisztor felmelegszik. Az izzón keresztül az emitter plust kap és collektoron kerssztül pedig GND - t. Az izzó szintén gyengén ég de a tranyó felfűt.
(#) trudnai válasza delmur82 hozzászólására (») Nov 30, 2008 /
 
A bazisnak nem illene lognia, kosd a foldre es nezd meg ugy. Amugy nem ertem, hany wattos az az izzo - elbirja azt a tranzisztor? Es megintcsak: mekkora az a 'forro' - az adatlap szerint az meg rendben van? El tudja diszcipalni?
(#) kissi válasza delmur82 hozzászólására (») Nov 30, 2008 /
 
Szerintem fordítva kötötted be!

Mi az hogy az emitter pluszt kap az izzón keresztül, a kollektor meg GND-t?!

Az emitert kösd a GND-re, a kollektort meg az izzóra NPN tranzisztor esetén ( ha nem ment eddig tönkre a tranzisztor!) !
(#) szilva válasza delmur82 hozzászólására (») Nov 30, 2008 /
 
Ezt inkább rajzold már le, légy szíves, mert nekem nagyon homályos, hogy hogy lehet az, hogy "az izzón keresztül az emitter plust kap". Akkor lehet, hogy mégsem jól van bekötve valami?
(#) krisztian98 hozzászólása Nov 30, 2008 /
 
Sziasztok,

Köszi a segítségeket. Pesten megyek keresztül minden héten szóval meg tudom vásárolni. Olyan IC kellene, aminek a bemenetei párhuzamosak 8 bites, és a tápfeszültsége 5v-os. A tokozása DIP-es legyen. Szóval csak egy bolt érdekelne, ami olcsó és viszonylag értenek is a dolgokhoz.
(#) krisztian98 válasza krisztian98 hozzászólására (») Nov 30, 2008 /
 
Ja DAC kellene.A legprofibb olyan lenne, ha 5v-os kimenet mellett rá tudnák kötni egy 100Ohm-os ellenállást. A kimenetén feszültség legyen, ne áram.
(#) szilva válasza kissi hozzászólására (») Nov 30, 2008 /
 
Ha C-E felcserélve volt, akkor nem megy tönkre, hanem a fordított áramerősítési tényezővel (vagy mi a szösznek mondják ezt) fog működni, mint egy NPN tranzisztor. Ha jól emlékszem, ilyenkor a Hfe értéke 1-2 körül szokott lenni.
(#) kissi válasza szilva hozzászólására (») Nov 30, 2008 /
 
Szerintem ilyenkor a B-C diódát használja, ami ide-oda kapcsolgatva ( érintve!) akár tönkre is mehetett, én csak erre gondoltam!

Steve
(#) szilva válasza krisztian98 hozzászólására (») Nov 30, 2008 /
 
Az, hogy a kimenetén mi van, már csak azon múlik, hogy milyen kimeneti illesztőfokozatot építesz mögé. De pl. az első, amit a kereső kidobott a L...x oldalán a DAC0800, 200Ft körüli áron, raktáron van.

Bővebben: Link
(#) pako hozzászólása Nov 30, 2008 /
 
Üdv!
Egy 18F452-re akasztottam egy 40MHz-es oscillatort, aminek van enable lába. Az eszköz akksiról megy, az élete nagy részét sleep-ben tölti a PIC. Az a gondom, hogy az osci 15mA-t fogyaszt, ami azért sok ilyen alkalmazásnál. A PIC külső interruptról fog felébredni (RB0..2), meg lehet valahogy oldani, hogy sleep alatt az osci sem működjön? Az működne, hogy az Osco láb kisimításával adnám neki az enable jelet?
(#) szigetivan válasza icserny hozzászólására (») Nov 30, 2008 /
 
Szia Icserny!

köszi a válaszodat, eddig sajna kevesebb időm volt átgondolni mit írtál, de most újra a témán vagyok.De egy valamit még mindig nem értek ugyebár a végső képlet ez lesz: T=(150*i-50*1024)/1024
és a kinken amit küldtél kiválasztom a számomra szükséges matematikai műveleteket, amire kiadja a programkódot. A kérdésem az,h. ki tudnád jobban fejteni,h.mégis hogyan értelmezzem a képleted kontroller szemmel??most ezt hány biten kezeljük vagy egyáltalán hogy értelmezzem(2 regiszterben?)ez nekem még mindig nem tiszta,h.8 bittel és 10 bittel egyszerre mit tok kezdeni és ezzel hogyan kell műveleteket végrehajtani, azaz pl. hogy szorzok össze egy 8bites és egy 10 számot??jó az a kód erre mit a link kiad?
Én ugy gondolom,h.nekem 2x8bittel kell majd kezelnem ezeket a műveleteket, de hogy hogyan aazt nem nagyon akaródzik a fejembe menni.

köszi
(#) Jobbagyag válasza trudnai hozzászólására (») Nov 30, 2008 /
 
Udv!
Visszaterhetnenk meg egy pillanatra a forraskod "darabolasahoz" (a prg attekinthetosege es tobbszor felhasznalhato modulok keszitese miatt lenne ra szukseg). Hozzaadtam 2 file-t es a linker-t a projektemhez, utvonalak be lettek allitva. Built-re sikeresen felepiti mindegyiket, de a linker fazisnal hibat jelez. Nagy keres volna, hogy valaki csatoljon egy barmilyen egyszeru, assembly, egynel tobb forrasfile-bol allo programot, hogy megnezhessem hogyan neznek ki formailag a file-ok, lefut-e nalam, azaz a programomban van hiba, vagy a linkeres osszekapcsolasban stb.
Kosz.
(#) trudnai válasza pako hozzászólására (») Nov 30, 2008 /
 
Miert nem kristalyt akasztasz a PIC-re? A PIC-nek van oszcillatora csak kell neki a kristaly. Ez a belso oszcillator alvo allapotban nem megy, tehat gyakorlatilag nem fogyaszt - cserebe van egy kis kesleltetes ebredeskor, nezd meg az OST-t az adatlapban.

Amugy jomagam is sokat szoktam vacakolni mire minden periferiat sikerul elaltatnom, osszes bemeneten ahol nincs belso felhuzo ellenallas vagy kulsot ratenni vagy alvas elott kimenetre kapcsolni - mar ha az lehetseges es akkor is ki kell talalni alacsony vagy magas a jobb fogyasztas szempontjabol.
(#) icserny válasza gulasoft hozzászólására (») Nov 30, 2008 /
 
Idézet:
„Az az érdekes, hogy a ccs az output_float(port)-al emel fel elméletileg egy adott port-ot”

Nem portot, hanem pin-t, s nem felemeli, hanem lebegő (tri-state) állapotba, vagyis input módba kapcsolja. Ezzel nem csoda, hogy nem gyulladt fel a LED...

Idézet:
„output_bit(PIN_B2)”

Ez így hibás, kell egy második paraméter, 0 vagy 1!

Ezen kívül output_low(pin), output_high(pin), output_toggle(pin) állítja az adatbiteket.

output_float(pin) és output_drive(pin) állitja a TRIS biteket.

output_x(adat) beírja az adatot az x(=A,B,C...) portra.
(#) delmur82 hozzászólása Nov 30, 2008 /
 
Köszi mindenkinek a segítséget. Figyelmetlen voltam. Fordítva volt bekötve a tranyó.
(#) icserny válasza szigetivan hozzászólására (») Nov 30, 2008 /
 
Idézet:
„Én ugy gondolom,h.nekem 2x8bittel kell majd kezelnem ezeket a műveleteket”

Így van. Minden bemenő és kimenő adatot két-két bájban kell tárolni. Az ADC eredményét is két SFR regiszterből kell kiolvasni (a jobbra igazított kiemenetet célszerű választani).

A képletben szereplő konstansok kétbájtos alakja hexadecimálisan:

150 = 00/96
50*1024 = C8/00

Az általam korábban adott linken található szubrutinoknál le van írva, hogy hova kell pakolni a szorzandókat és hol találod meg az eredményt.

Utána már "csak" a stringgé alakítással kell megküzdeni, az is szép feladat lesz...
(#) szigetivan hozzászólása Nov 30, 2008 /
 
Sziasztok!

Van két kérdésem:

1. Az MPLAB-ban, hogyan tudom figyelni a definiált regisztereknek (REG_X: PRECISION, REG_Z: PRECISION) a tartalmát?

2. Hogy tudnám átalakítani ezt a programot úgy, hogy én adjam meg a REG_X és REG_Z értékeit?




list p=16F690 ; list directive to define processor
#include ; processor specific variable definitions
#define PRECISION 2 ; byte size for registers
errorlevel -302 ; suppress message 302 from list file


__CONFIG _CP_OFF & _CPD_OFF & _BOR_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT & _FCMEN_OFF & _IESO_OFF

M_STOR_STATUS macro WHERE
movf STATUS,w
movwf WHERE
endm

M_RETR_STATUS macro WHERE
movf WHERE,w
movwf STATUS
endm

cblock 0x20
REG_X: PRECISION
REG_Y: PRECISION
REG_Z: PRECISION
REG_COUNTER
REG_STATUS
REG_T1
REG_T2
REG_ROT_COUNTER
endc

org 0x0c

M_ADD ; Z + X -> Z
bcf STATUS,C
clrf REG_STATUS
clrf REG_COUNTER
M_ADD_loop
clrf REG_T1
btfsc REG_STATUS,C
incf REG_T1,f
clrf REG_STATUS
movlw REG_X
addwf REG_COUNTER,w
movwf FSR
movf INDF,w
addwf REG_T1,f
btfsc STATUS,C
bsf REG_STATUS,C
movlw REG_Z
addwf REG_COUNTER,w
movwf FSR
movf INDF,w
addwf REG_T1,f
btfsc STATUS,C
bsf REG_STATUS,C
movf REG_T1,w
movwf INDF
incf REG_COUNTER,f
movlw PRECISION
subwf REG_COUNTER,w
btfss STATUS,Z
goto M_ADD_loop
return


END




Köszi!
(#) icserny válasza szigetivan hozzászólására (») Nov 30, 2008 /
 
Idézet:
„1. Az MPLAB-ban, hogyan tudom figyelni a definiált regisztereknek (REG_X: PRECISION, REG_Z: PRECISION) a tartalmát?”


A Watch ablakban hozzáadod a REG_X szimbólumot, majd a szimbólumra jobb gombbal kattitva beállítod a tulajdonságait (16 bites, és Low:High byte order). A byte order (hogy a helyiértékek milyen sorrendben vannak) az alkalmazott eljárások függyvénye. Felületes ránézésre úgy tűnik, hogy REG_X-be kell az alacsony helyiértékű bájt, s REG_X+1 rekeszbe a magas helyiértékű bájt. Ha nem így lenne, majd észre fogod venni az első összeadás után...

Idézet:
„hogy én adjam meg a REG_X és REG_Z értékeit”

A túl általánosan megírt szubrutinok indirekt címzést használnak. Kevésbé elegáns (és benszülött ), de egyszerű megoldás:
REG_X-be írod az egyik bájtot, majd REG_X+1-ve írod a másik bájtot. Valahogy így képzelem:

  1. movlw 0x96
  2. movwf REG_X
  3. movlw 0x00
  4. movwf REG_X+1
(#) szigetivan válasza icserny hozzászólására (») Nov 30, 2008 /
 
Szia.

Ok. Köszi, de nekem az a gond, hogy a watch ablakban az "Add Symbols" gomb inaktív, így nem tudok semmit se hozzáadni.

Köszi
(#) trudnai válasza Jobbagyag hozzászólására (») Nov 30, 2008 /
 
Nagy segitseg az lenne ha mikor azt irod hibauzenet be is idezned, hgy mi az az uzenet No meg nem artana tudni azt sem milyen nyelven programozol, asm?
(#) icserny válasza szigetivan hozzászólására (») Nov 30, 2008 /
 
Először is a programodat hozd lefordítható állapotba.

pl. ehelyett
  1. #include  ; processor specific variable definitions


írd ezt.
  1. #include <p16f690.inc> ; processor specific variable definitions


(#) icserny válasza icserny hozzászólására (») Nov 30, 2008 /
 
Ja, lehet, hogy ez volt, csak nem {code=asm}-mal szúrtad be?
(#) szigetivan válasza icserny hozzászólására (») Nov 30, 2008 /
 
Ok, így írtam:
#include ; processor specific variable definitions

de még így sem akar működni...még mindig inaktív az Add Symbols gomb.

És az elöbbit így gondoltad:

M_ADD_loop
clrf REG_T1
btfsc REG_STATUS,C
incf REG_T1,f
clrf REG_STATUS
movlw 0x96
movwf REG_X
movlw 0x00
movwf REG_X
addwf REG_COUNTER,w
movwf FSR
movf INDF,w
addwf REG_T1,f
btfsc STATUS,C
bsf REG_STATUS,C
movlw 0x36
movwf REG_Z
movlw 0x10
movwf REG_Z
addwf REG_COUNTER,w
movwf FSR
movf INDF,w
addwf REG_T1,f
btfsc STATUS,C
bsf REG_STATUS,C
movf REG_T1,w
movwf INDF
incf REG_COUNTER,f
movlw PRECISION
subwf REG_COUNTER,w
btfss STATUS,Z
goto M_ADD_loop
return


Köszi.
Következő: »»   349 / 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