Fórum témák

» Több friss téma
Fórum
Keresés
Lapozás: OK   4 / 7
(#) xfirgax válasza sprofan hozzászólására (») Aug 26, 2013
ez egy hollan erősítő av 1200 pro special edition
Ennyire nem konyítok hozzá ha pontosabban leirnád hogy mit keressek megköszönöm

asszem megvan k1a494ap 226
A hozzászólás módosítva: Aug 26, 2013
(#) kadarist válasza .colin hozzászólására (») Ápr 28, 2013
Szia!
Tessék: Bővebben: Link.
(#) Gafly válasza Hilo hozzászólására (») Ápr 21, 2013
Na jó, csak mert öreganyámnak szólítottál

A PSTN (szokták POTS-nak Plain Old Telephone System is hívni) vonalon névleges 48V egyenfeszültség (na jó, a puffer üzemben járatott savas akkumulátorok miatt ez a gyakorlatban 52 V szokott lenni) van. Amikor felemeled a kezibeszélőt, elkezd egyenáram folyni, ezt érzékeli a közont és ad tárcsahangot. Ezért kell mindenképpen kondenzátor sorba a csengővel.

A csengetés erre az egyenfeszültségre ültett váltakozó feszültséggel, legyen mondjuk 25 Hz, 70 Veff történik (nagyon függ a központtól!). Itt a magyarázat, hogy miért mondtam a 250 V polaritásfüggetlen kondenzátort.
70 Veff x 1.41 = 99 Vcsúcs és ha még hozzávesszük az 52 V-ot, akkor már 151 V-nál tartunk. Tehát kell az a 250 V-os kondenzátor oda...

A beszéd a telefonvonalon olyan 0 dB (innen is van a definíciója) szintem megy. De inkább kevesebb. 0 dB 600 Ohm-on (ez is telefonból jön). 0.775 Veff x 1.41 = 1.1 V csúcs.

A piros LED nyitófeszültsége 1.5 V (színtől függ, infra LED-é alacsonyabb, kéké sokkal magasabb).
Tehát a magasabb nyitófeszültség miatt a beszédre egyáltalán nem lép működésbe (nem zavar). Ezért jó LED-et használni.

LED-től függ, hogy mekkora áramtól világít rendesen. 70 Veff / 10 mA = 7 KOhm (itt durva elhanyagolásokat tettem).
5 mm LED 10-20 mA-el már nagyon jól világít (és akkor vannak "extra fényes LED"-ek is).
Te esetedben, 3mm-es LED esetében inkább 10 KOhm-ot javasolnék...

A LED eléggé kényes a fordított polaritású (záró) feszültségre. Ezér jó ötlet a szembe forgatott két LED alkalmazása. Egyrészt így megvédik egymást a túlzottan nagy feszültségtől, másrészt így a csengető feszültség mindkét félperiódusa hasznosul.

Akkor maradt még a kondenzátor kapacitása.
falsó = 1 / (2 PI x R x C) esetünkben 1 / (6.28 x 4700 Ohm x 0.00000015 Farád = 226 Hz (ami kb. a tízszerese annak, amivel a központ csenget...
Tehát ha van, akkor kondenzátorból meg nagyobb kapacitásút javaslok (ha van).

Egyébként pedig gyakorlatban egyáltalán nem kényes az alkatrész értékekre...
(#) gabesz.mi074 válasza highand hozzászólására (») Ápr 2, 2013
Tetszik nagyon az ötleted . 2030asal valószínúleg nem tudhatja a 90watot de akor is jó teljesítményt adhat.Tehát ha én meg építem az általad közölt kapcsolást tehát ezt akkor ez kettős táppal működik kétszer 15volt feszültséggel mondjuk 2030as esetén. Ha jól értelmezem a rajzot de lehet most óriásit tévedek, 2db 2030as kapcsolást kötöttél párhuzamosan össze és ez van hidalva. Láttam valahol egy quad elvű 2030as kapcsolást is. Az is a te ötleted ?
(#) Kicsa válasza bakos13gab hozzászólására (») Márc 17, 2013
Akkor a táp valahogy így nézne ki :Egyenirányított szekunder 4 db diódával - 110 µF - 5U8C 4-6 láb - 1 láb - kb 47 Ohm/2W - 226 µF - kb 47 Ohm/2W - 226 µF - Anód Jobb/Bal

A 226 µF 3 db 250 V/680 µF sorbakapcsolásával jön ki...A 110 µF pedig két darab400V/220 µF szintén sorbakötve.

Szeretnék biztosra menni,ez így akkor megfelelő lenne anódtápnak? Gondolkozok egy biztosíték beépítésén is...sajnos ilyen kategóriában mikrósütő biztosítékokat találtam csupán.

Ez az anódfeszültség akkor túl magas érték ebben a bekötésben? Nem értek sajnos a kapcsolásokhoz,de találtam egy pentóda bekötést. Ugyan ebben a kapcsolásban lehet használni pentóda bekötésben is?

Kapcsolási rajz

A trafót úgy tekertettem,a kapcsolási rajzhoz. Nem teljesen értem így utólag,miért lett ennyi az annyi.
(#) _JANI_ válasza Erick hozzászólására (») Feb 5, 2013
Ráakadtam a wehrlem 58 226 608: Link (57. oldal,) relé blokksémáját. Így kicsit könnyebb lesz...
(#) J-O-E válasza Joseppe210 hozzászólására (») Jan 27, 2013
Elvileg dicsérik az APS-226-ot ez lenne a PS3-ak jobbik tápja. Érdemes újat venni ha nem vagy jártas a kapcsoló üzemű tápegységek világában. 15-26$ között mozog az E-bay-en de itthon is megveheted háromezer-tol.
(#) CIROKL válasza (») Jan 6, 2013
Idézet:
„104 226 felhasználó”

Csak pusztán kiváncsiságból ? ebből mennyi az igazi felhasználó mert rengeteg van olyan aki csak beregisztrált és soha többé be sem jelentkezett, illetve már mondjuk 3-4 éve nem volt itt.
/ Tudom nem ide tartozik de ezeket a rendszerből ki kellene venni ! /
(#) Hp41C válasza havranarpi hozzászólására (») Dec 28, 2012
Szia!
TO-226 toknak néz ki... Ha az, akkor jól van beültetve.
ICSP csatlakozó kiosztásam, a BS250 felé van az 1.láb:
1 - MCLR / Vpp, 2 - Vdd, 3 - Vss, 4 - PGD, 5 - PGC, 6 - AUX
(#) gordonfreemN válasza kaqkk hozzászólására (») Dec 25, 2012
Köszi, egyszer majd lehet kipróbálom, de egyelőre végtelenített forrásból kapom ingyen a 3M-es fóliát. Most van két dobozzal
Bővebben: Link
A hozzászólás módosítva: Dec 25, 2012
(#) aroxol hozzászólása Okt 15, 2012
Sziasztok!

Az Itt: találhato vevöt szeretném egy programba integrálni. Az lenne a problémám hogy C-ben van és asm-be szeretném illeszteni. Fordito ezt dobta, de sehogy nem tudom beilleszteni. Tudna valaki segiteni benne hogy lehetne megoldani? Még a konfig, sem kellene.
  1. _interrupt:
  2.      
  3.     ;vevo.c,42 :: void interrupt (){
  4.     ;vevo.c,43 :: if (INTCON.TMR0IF){                 // időtúllépés-figyelés
  5.     BTFSS       INTCON+0, 2
  6.     GOTO        L_interrupt0
  7.     ;vevo.c,44 :: key_cnt = 0;
  8.     CLRF        _key_cnt+0
  9.     ;vevo.c,45 :: INTCON.TMR0IF = 0;
  10.     BCF         INTCON+0, 2
  11.     ;vevo.c,46 :: }
  12.     L_interrupt0:
  13.     ;vevo.c,47 :: if (PIR1.RCIF){
  14.     BTFSS       PIR1+0, 5
  15.     GOTO        L_interrupt1
  16.     ;vevo.c,48 :: uart_buffer = RCREG;            // törli az RCIF-et, nem kell PIR1.RCIF=0
  17.     MOVF        RCREG+0, 0
  18.     MOVWF       _uart_buffer+0
  19.     ;vevo.c,49 :: rx_flag = 1;
  20.     MOVLW       1
  21.     MOVWF       _rx_flag+0
  22.     ;vevo.c,50 :: }
  23.     L_interrupt1:
  24.     ;vevo.c,51 :: }
  25.     L_end_interrupt:
  26.     L__interrupt11:
  27.     RETFIE      1
  28.     ; end of _interrupt
  29.      
  30.     _main:
  31.      
  32.     ;vevo.c,53 :: void main (){
  33.     ;vevo.c,54 :: OSCCON = 0x72;                      // pdf 32.
  34.     MOVLW       114
  35.     MOVWF       OSCCON+0
  36.     ;vevo.c,55 :: ADCON1 = 0x0F;                      // pdf 226.
  37.     MOVLW       15
  38.     MOVWF       ADCON1+0
  39.     ;vevo.c,56 :: CMCON = 0x07;                       // pdf 235.
  40.     MOVLW       7
  41.     MOVWF       CMCON+0
  42.     ;vevo.c,57 :: TRISA = 0;
  43.     CLRF        TRISA+0
  44.     ;vevo.c,58 :: LATA = 0;
  45.     CLRF        LATA+0
  46.     ;vevo.c,59 :: TRISB = 0;
  47.     CLRF        TRISB+0
  48.     ;vevo.c,60 :: LATB = 0;
  49.     CLRF        LATB+0
  50.     ;vevo.c,61 :: TRISC = 0b10000000;                 // Rx-Tx
  51.     MOVLW       128
  52.     MOVWF       TRISC+0
  53.     ;vevo.c,62 :: LATC = 0;
  54.     CLRF        LATC+0
  55.     ;vevo.c,63 :: PIE1.RCIE = 1;                      // pdf 100.
  56.     BSF         PIE1+0, 5
  57.     ;vevo.c,64 :: INTCON = 0b11100000;                // pdf 95.
  58.     MOVLW       224
  59.     MOVWF       INTCON+0
  60.     ;vevo.c,65 :: T0CON = 0b10001000;                 // pdf 125.
  61.     MOVLW       136
  62.     MOVWF       T0CON+0
  63.     ;vevo.c,67 :: UART1_Init(2400);
  64.     BSF         BAUDCON+0, 3, 0
  65.     MOVLW       3
  66.     MOVWF       SPBRGH+0
  67.     MOVLW       64
  68.     MOVWF       SPBRG+0
  69.     BSF         TXSTA+0, 2, 0
  70.     CALL        _UART1_Init+0, 0
  71.     ;vevo.c,68 :: delay_ms(100);
  72.     MOVLW       2
  73.     MOVWF       R11, 0
  74.     MOVLW       4
  75.     MOVWF       R12, 0
  76.     MOVLW       186
  77.     MOVWF       R13, 0
  78.     L_main2:
  79.     DECFSZ      R13, 1, 1
  80.     BRA         L_main2
  81.     DECFSZ      R12, 1, 1
  82.     BRA         L_main2
  83.     DECFSZ      R11, 1, 1
  84.     BRA         L_main2
  85.     NOP
  86.     ;vevo.c,70 :: while (1){
  87.     L_main3:
  88.     ;vevo.c,71 :: if (rx_flag == 1){
  89.     MOVF        _rx_flag+0, 0
  90.     XORLW       1
  91.     BTFSS       STATUS+0, 2
  92.     GOTO        L_main5
  93.     ;vevo.c,72 :: rx_flag = 0;
  94.     CLRF        _rx_flag+0
  95.     ;vevo.c,73 :: if (key[key_cnt] == uart_buffer){
  96.     MOVLW       _key+0
  97.     ADDWF       _key_cnt+0, 0
  98.     MOVWF       TBLPTRL
  99.     MOVLW       hi_addr(_key+0)
  100.     MOVWF       TBLPTRH
  101.     MOVLW       0
  102.     ADDWFC      TBLPTRH, 1
  103.     MOVLW       higher_addr(_key+0)
  104.     MOVWF       TBLPTRU
  105.     MOVLW       0
  106.     ADDWFC      TBLPTRU, 1
  107.     TBLRD*+
  108.     MOVFF       TABLAT+0, R1
  109.     MOVF        R1, 0
  110.     XORWF       _uart_buffer+0, 0
  111.     BTFSS       STATUS+0, 2
  112.     GOTO        L_main6
  113.     ;vevo.c,74 :: TMR0H = 0xDE;                     // 65535-8535=57000 (egy bájt plussz az időtúllépése, kb. 90us)
  114.     MOVLW       222
  115.     MOVWF       TMR0H+0
  116.     ;vevo.c,75 :: TMR0L = 0xA8;
  117.     MOVLW       168
  118.     MOVWF       TMR0L+0
  119.     ;vevo.c,76 :: key_cnt++;
  120.     INCF        _key_cnt+0, 1
  121.     ;vevo.c,77 :: }
  122.     GOTO        L_main7
  123.     L_main6:
  124.     ;vevo.c,78 :: else {key_cnt == 0;}
  125.     L_main7:
  126.     ;vevo.c,79 :: if (key_cnt == sizeof(key)-1){        // nyitás
  127.     MOVF        _key_cnt+0, 0
  128.     XORLW       14
  129.     BTFSS       STATUS+0, 2
  130.     GOTO        L_main8
  131.     ;vevo.c,80 :: LATB.B0 = 1;
  132.     BSF         LATB+0, 0
  133.     ;vevo.c,81 :: delay_ms(1000);
  134.     MOVLW       11
  135.     MOVWF       R11, 0
  136.     MOVLW       38
  137.     MOVWF       R12, 0
  138.     MOVLW       93
  139.     MOVWF       R13, 0
  140.     L_main9:
  141.     DECFSZ      R13, 1, 1
  142.     BRA         L_main9
  143.     DECFSZ      R12, 1, 1
  144.     BRA         L_main9
  145.     DECFSZ      R11, 1, 1
  146.     BRA         L_main9
  147.     NOP
  148.     NOP
  149.     ;vevo.c,82 :: LATB.B0 = 0;
  150.     BCF         LATB+0, 0
  151.     ;vevo.c,83 :: key_cnt = 0;
  152.     CLRF        _key_cnt+0
  153.     ;vevo.c,84 :: }
  154.     L_main8:
  155.     ;vevo.c,85 :: }
  156.     L_main5:
  157.     ;vevo.c,92 :: }
  158.     GOTO        L_main3
  159.     ;vevo.c,93 :: }
  160.     L_end_main:
  161.     GOTO        $+0
  162.     ; end of _main
(#) kadarist válasza oleg53 hozzászólására (») Okt 1, 2012
Mutatok egy teljesen hiszterézismentes megoldást. Leírás a weboldalon. Bővebben: Link
(#) Hp41C válasza Hp41C hozzászólására (») Szept 28, 2012
Még nyalánkságok:
XC8 / HighTech C:
  1. 2218                           ;main.c: 1846: Month = BCD2BIN(DCF_Month / 8);
  2.   2219  0A1C  0021                      movlb   1       ; select bank1
  3.   2220  0A1D  083E                      movf    _DCF_Month^(0+128),w
  4.   2221  0A1E  0020                      movlb   0       ; select bank0
  5.   2222  0A1F  00ED                      movwf   ??_main
  6.   2223  0A20  36ED                      lsrf    ??_main,f
  7.   2224  0A21  36ED                      lsrf    ??_main,f
  8.   2225  0A22  36ED                      lsrf    ??_main,f
  9.   2226  0A23  086D                      movf    ??_main,w
  10.   2227  0A24  2720  3188                fcall   _BCD2BIN
  11.   2228  0A26  00B3                      movwf   _Month

Ha már a fordító az lsrf utasítást használja, akkor tudhatná, hogy az advanced midrange kontrolleren a WREG címezhető. Nem kellene a ??_main- be menteni (az érték nem kell másutt), majd visszahozni onnan, ráadásul az utolsó léptetés lsrf ??_main,w formában is el lehet végezni.
  1. 843                           ;main.c: 792: Second2 = BCD2BIN(I2CBuffer.bytes.b[1]) << 1;
  2.    844  093E  0020                      movlb   0       ; select bank0
  3.    845  093F  0844                      movf    _I2CBuffer+1,w
  4.    846  0940  2720  3188                fcall   _BCD2BIN
  5.    847  0942  0709                      addwf   9,w
  6.    848  0943  00BC                      movwf   _Second2

Érdekes, itt eszébe jutott az addwf WREG,w megoldás.

A következő stikli viszont "megmagyarázhatatlan" hibás működéshez vezethet:
  1. 4158                           ;main.c: 2480: SoundCounter = Scratch & 0x0F;
  2.   4159  0EA5  087C                      movf    _Scratch,w
  3.   4160  0EA6  0020                      movlb   0       ; select bank0
  4.   4161  0EA7  00BD                      movwf   _SoundCounter
  5.   4162  0EA8  300F                      movlw   15
  6.   4163  0EA9  05BD                      andwf   _SoundCounter,f

A SoundCounter egy többértékű szemafor, amit a megszakítási rutin használ fel. A módosítását un. primitív művelettel kell végeni, aminek lefutását a megszakítás nem tudja elválasztani, felbeszakítani. Ha a nagyrabecsült fordító a következő - szerintem kézenfekvő - módon fordítaná rövidebb is, és primitív művelet is lenne.
  1. 4158                           ;main.c: 2480: SoundCounter = Scratch & 0x0F;
  2.   4159  0EA5  087C                      movf    _Scratch,w
  3.   4160  0EA6  0020                      movlb   0       ; select bank0
  4.                                         andlw   15
  5.   4161  0EA7  00BD                      movwf   _SoundCounter

Már csak 768 utasítás kellene rövidítenem, hogy a program beneférjen a 16F1827 -re. Az adatok már elférnek a 384 byte RAM -ben...
A hozzászólás módosítva: Szept 28, 2012
(#) fobq válasza gaspa hozzászólására (») Aug 27, 2012
Szia, gaspa!
Jelenleg én is építek egy napelemes forgatót. Megtennéd hogy átjössz ebbe a fórumba, lenne néhány kérdésem, mert én is csinálok jelenleg egyet.
(#) e-chipmunk válasza (Felhasználó 13571) hozzászólására (») Aug 3, 2012
Igazság szerint elég nagy kondik, ezért sztem lehet 22µF-os. Arra gyanakszom, hogy a 226-os és a 220-as ugyan az. Nem egy gyártótól van és szerintem a jelölés más, de az érték ugyan az, viszont mérni meg nem tudom. Szerinted??
(#) speed008 válasza e-chipmunk hozzászólására (») Aug 3, 2012
Üdv!
Nem egészen így van ahogyan írtad.
107J=100µF a többi karakter csak tűrés és egyéb fesz infót jelöl.
106D=10uF
226=22uF
220=22pF
100=10pF
Egyébként a Segédprogramok vagy egy nagyon jó számoló ilyen a feladathoz itt
(#) e-chipmunk hozzászólása Aug 3, 2012
Üdv!
Kicsit megakadtam Tantál elektrolit kondi ügyben! VAn egy pár smd tantál elko kondim és nem tudok rájönni, hogy mik a feliratok rajtuk! Az egyiken ez áll: 107J 22f02 Szerintem ez azt jelenti, hogy10*10 a -7.ed F, tehát 1uF, de mi a többi jel?
A másikon ez áll: A106D u13H, ez akkor egy 10µF lenne?
van még, az 226 25V, ez 22uF
és van olyan, hogy 220-10L AN, sztem ez is 22uF, meg van egy olyan, hogy 100-16L B5, sztem ez meg 10uF!?
Kérlek segítsetek! Kerestem már többfele is meg gugliztam is, ezt azt találtam, de nem tudok rájönni!
(#) zoliee hozzászólása Júl 11, 2012
Sziasztok!
Vettem egy ilyen szivattyút, és az lenne a kérdésem, hogy ez az áramláskapcsoló jó lenne-e hozzá? Az írja hogy kínai, de nagyon jó áron van.. Még kérdés: ha 9 méter vízoszlop van egy 160 átmérőjű csőkútban, elvileg amikor elkezdem szivatni, akkor csökken a vízszint 5-6 méter magasra, azt elvileg stabilan tartja, akkor is érdemes beépíteni szárazfutás elleni védelmet?? A csőkút 28.1 méter mély. Volt hogy 6 órát ment a kölcsön szivattyú, egyszer sem csökkent a vízhozama.. Köszi:Zoli
(#) havranarpi hozzászólása Júl 11, 2012
Sziasztok!
az lenne a kérdésem hogyha szeretném megépíteni ezt a kapcsolást: Bővebben: Link akkor kell-e a csőnek fűtés.Ha igen akkor hány volt.Hány mA?
ÉS még az ,hogy mekkorára méretezzem az 1 µF-es kondit.20V-os már elég?
(#) Haliapu válasza erikabanhidi hozzászólására (») Máj 21, 2012
Sziasztok, bocsi, hogy zavarom a vitát, ezt mind értem, amit itt leirtatok, de attól én még nem haladok előre. A dobozomba 2db 15?,os 300W Reflex 8Ohmos van párhuzamosan kötve és az MNC 33355 driver magas ezek előtt pedig egy 2utas 12dB Reflex hang váltó van és védelem semmi. És ebből a dobozból van 4db, és 2-2 db hangfalat, szoktam sorba kötni így lesz 8Ohm és ezeket hajtom az én általam épített 2x500W os N-mos erősítővel. Van a hang láncba egy limiter is de valami miatt a magasak csak ki melegednek a mélyek azok gond nélkül bírják. Szóval ha jól értem az eszme cseréteket akkor újra kell építenem a kereszt váltót is és ebbe a technikába be ültetni a védelmet ? Ha ez így van akkor ebben kérem a segítségeteket. A 300,as reflex adatai 50-2500Hz / Fs=34,8Hz /Vas=226,94 liter / SPL=98,7dB/1W/1m /Qts=0,25 / Qms=5,34 / Qes=0,26 / Pe=300W / Re=5,92 / R=8Ohm az MNC33355 driverröl csak ennyit találtam 8Ohm, 100/200W, 1kHz-16kHz, 100dB, akkor ehhez a párosításhoz kellene keresztváltó és védelem.
(#) rozsascs válasza Marcicerus hozzászólására (») Ápr 4, 2012
Vagy ez egy biztos megoldás és több is összeköthető Bővebben: Link

Vagy nagyobb távolságra kb 100 m-ig ez az extender Bővebben: Link
Persze az is kérdés, hogy mennyire zavarérzékeny a készülék, amit rá akarsz tenni.
(#) Adamyno válasza (Felhasználó 13571) hozzászólására (») Ápr 2, 2012
tehát hogyha 22M-t keresek, akkor 226-os jelölésű kell ?
(#) ZagorNoNF hozzászólása Márc 16, 2012
Udvozletem!

A kerdesem egyszeru es ugy erzem a valasz is. De sehol nem talalok normalis magyarazatot es leirast.

Eppen egy tervezett duplamembranos melyladat keszulok osszerakni. Jonehanyat csinaltam mar, de szakember nem vagyok. Tobbnyire ujraepitek szepitek javitok hangfalakat. Amolyan "szeretem csinalni hobbi".

Jelenleg ket TESLA ARN 226-03 (100%osak) hangsugarzot akarok egy zart dobozba tenni. Mertem is oket, teljesen megegyeznek.

A problema: kulon kulon gyonyoruen szolnak. Parhuzamosan kotve (ugyanolyan hosszu ugyanolyan tipusu vezetekkel), nagyobb hanghullamokra borzasztomod berecsegnek. Halkabban jol szolnak de nyilvan nem susogast akarok hallani majd beloluk.
Sorba kotve megintcsak szepen szolnak de ugy nem akkora a kilengesuk mintha parhuzamba/kulon-kulon neznem, hallgatnam oket. A fo problemam hogy miert recsegnek es mi erre a megoldas?
4Ohmosak. Erositonek egy Abit 5.1 mely kimenetet hasznalom. Wattban nemhinnem hogy sokat az ki.

Eles menetben kapnak egy szinten klasszikus batar meretu tesla hangvaltot.. a probak alatt nem kotottem be, de kizartnak tartok hogy az lenne a baj.

Napkozben elokaparok egy magnot amit anno tesztelesre hasznaltam, es ellenorzom, hogy azzal is recseg-e ha parhuzamba kotom. Addig meg ledolok pihenni. :]

A segitseget elore is nagyon-nagyon koszonom.
(#) Bonca hozzászólása Feb 8, 2012
Sziasztok!
Én már csináltam infra adatátvitelt, ami működik. Adó és vevő oldalon is PIC-et használok. A Sony SIRC protokollt koppintottam le más időzítésekkel.
Adó oldalon egy hatbites azonosítót lehet beállítani DIP kapcsolóval. A program minimális átalakításával jó lehet a helikopterhez.
Az adó kódja:
  1. /*******************************************************************************
  2.   18F2520
  3.  
  4.   RedLink adó TSAL6200
  5.   --------------------
  6.   6 bites azonosító minden eszköznek, melyet az RB2:RB7 porton levő DIP
  7.   kapcsolóval lehet kiválasztani
  8.  
  9.   a digitális jel vivője 40 kHz (25 us), ajánlott kitöltési tényezője 1/3...1/4
  10.  
  11.   saját protokoll a Sony SIRC mintájára:
  12.  
  13.   _|||||||||||||||_____|||||_____||||||||||_____...    ez az adó jele (digitális jel+40 kHz vivő)
  14.     _____________       ___       ________
  15.   _|             |_____|   |_____|        |_____...    ez a vevőből kijövő jel (digitális jel)
  16.  
  17.    |    Start          | 0       |    1         |      logikai jelek időzítései
  18.    |    750      | 250 |250| 250 |  500   | 250 |      us-ban
  19.  
  20.   RB0, RB1 fenntartva az infra adónak és a külső megszakításnak
  21.  
  22. *******************************************************************************/
  23.  
  24. char send_packet_flag;                  // megszakítás-jelző
  25. char car_id;
  26. char i, car_id_cnt;                     // általános változó
  27.  
  28. void interrupt() {
  29.     if(INTCON3.INT1IF) {                // ez indítja az azonosító küldését, amikor a kocsi célba ér
  30.         send_packet_flag = 1;           // megszakítás-jelzés, ezt kérdezgeti le a főfüggvény
  31.         INTCON3.INT1IF = 0;             // megszakítás flag törlése
  32.     }
  33. }
  34.  
  35. void carrier() {                        // ez a 40 kHz-es vivő 1/3...1/4 kitöltési tényezővel
  36.     LATB.B0 = 1;
  37.     delay_us(6);                        // kb. 1/4 kitöltési tényező
  38.     LATB.B0 = 0;
  39.     delay_us(8);                        // 19 us kellene a 25 us-hoz, de a for ciklus
  40. }                                       // miatt ennyire kell csökkenteni
  41.  
  42. void start_signal() {                   // 750 us-os Start jel
  43.     for(i=0; i<30; i++) {carrier();}
  44.     delay_us(250);                      // 250 us szünet
  45. //    delay_ms(300);                      // debug
  46. }
  47.  
  48. void carrier_zeros() {                  // 250 us-os logikai 0
  49.     for(i=0; i<10; i++) {carrier();}
  50.     delay_us(250);                      // 250 us szünet
  51. //    delay_ms(300);
  52. }
  53.  
  54. void carrier_ones() {                   // 500 us-os logikai 1
  55.     for(i=0; i<20; i++) {carrier();}
  56.     delay_us(250);                      // 250 us szünet
  57. //    delay_ms(300);
  58.  
  59. }
  60. void send_packet() {                    // MSB...LSB
  61.     for(car_id_cnt=2; car_id_cnt<8; car_id_cnt++) {
  62.         car_id = PORTB & 0b11111100;
  63.         car_id >>= car_id_cnt;
  64.         car_id &= 0b00000001;
  65.         if(car_id==1) {carrier_ones();}
  66.         else {carrier_zeros();}
  67.     }
  68. }
  69.  
  70. void main() {
  71.     OSCCON = 0x62;                      // pdf 32.
  72.     ADCON1 = 0x0F;                      // pdf 226.
  73.     CMCON = 0x07;                       // pdf 235.
  74.     TRISB = 0b11111110;
  75.     LATB = 0;
  76.     TRISC = 0;
  77.     LATC = 0;
  78.     INTCON = 0b11000000;                // pdf 95.
  79.     INTCON2 = 0b00000000;               // pdf 96.
  80.     INTCON3 = 0b00001000;               // pdf 97.
  81.    
  82.     while(1) {
  83.         if(send_packet_flag) {          // ha külső megszakítás érkezett,
  84.             start_signal();             // jöhet a Start jel és a
  85.             send_packet();              // RedLink csomag, majd
  86.             send_packet_flag = 0;       // a megszakítás-jelzés törlése
  87.         }
  88.     }
  89. }


A vevő kódja:
  1. /*******************************************************************************
  2.  18F2520
  3.  
  4.  RedLink vevő TSOP4840
  5.  ---------------------
  6.  a vevő kimenetén invertálva jelenik meg a tiszta digitális jel (Start jel,
  7.  adat bitek), ezért lefutó élre egy külső megszakítás elindítja TMR0, majd
  8.  felfutó élnél a TMR0 +100 érték alapján lehet eldönteni, hogy logikai 0 vagy 1
  9.  érkezett
  10.  
  11.  INT0 lábra jön az infra vevőről a jel
  12.  
  13.  4 MHz órajelnél a TMR0 értéke 1 us-onként nő eggyel
  14.  
  15.  egy lefutó él indítja a Timer0-t, aminek a tartalma a belső oszcillátor/4
  16.  frekvenciával nő, amíg a felfutó él meg nem állítja. Így detektálható a Start
  17.  jel, a logikai 0 és az 1
  18.     _____________       ___       ________
  19.   _|             |_____|   |_____|        |_____...     az adó oldali adat
  20.   _               _____     _____          _____...     a vevő oldali adat
  21.    |_____________|     |___|     |________|
  22.  
  23.    | itt indul a Timer0
  24.                  | itt áll meg
  25.                        | itt megint indul
  26.                            |itt megint megáll
  27.  
  28.  ha bejön a Start jel, megméri a következő 6 jelet, hogy logikai 0 vagy 1
  29.  
  30. *******************************************************************************/
  31.  
  32. char edge_type = 0;                         // 1=felfutó, 0=lefutó él
  33. char start_catched = 0;                     // a Start jel megérkezését mutatja
  34. char car_id = 0;                            // a kocsik hatbites azonosítója
  35. char car_id_cnt = 0;
  36. unsigned int TMR0_value = 0;                // a Timer0 értéke
  37. unsigned int TMR0L_value = 0, TMR0H_value = 0;
  38.  
  39. void interrupt() {
  40.     if(INTCON.INT0IF) {
  41.         if(edge_type == 0) {                   // ha lefutó él jött, ...
  42.             T0CON.TMR0ON = 1;                  // elindítja a Timer0-t
  43.             LATA.B0 = 1;
  44.             edge_type = 1;                     // fel-le futó élek megkülönboztetése
  45.             INTCON2.INTEDG0 = 1;               // élfigyelés átállítása felfutóra, pdf 96.
  46.         }
  47.         else {                                 // ha felfutó él jött, ...
  48.             T0CON.TMR0ON = 0;                  // megállítja a Timer0-t
  49.             TMR0L_value = TMR0L;               // fontos az olvasási sorrend: 1.TMR0H 2.TMR0L
  50.             TMR0H_value = TMR0H;
  51.             TMR0_value = (TMR0H_value << 8) + TMR0L_value; // két nyolcbites változó összefűzése 16 bitessé
  52.             TMR0H = 0;                         // kinullázza a Timer0 tartalmát
  53.             TMR0L = 0;                         // fontos az írás sorrend: 1.TMR0H 2.TMR0L
  54.             LATA.B1 = 1;
  55.             edge_type = 0;
  56.             INTCON2.INTEDG0 = 0;               // élfigyelés átállítása lefutóra, pdf 96.
  57.         }
  58.         INTCON.INT0IF = 0;
  59.     }
  60. }
  61.  
  62. void main() {
  63.     OSCCON = 0x62;                      // pdf 32.
  64.     ADCON1 = 0x0F;                      // pdf 226.
  65.     CMCON = 0x07;                       // pdf 235.
  66.     TRISA = 0;
  67.     LATA = 0;
  68.     TRISB = 0b00000001;                 // INT0-ra kötve az infra vevő adatlába
  69.     LATB = 0;
  70.     TRISC = 0;
  71.     LATC = 0;
  72.  
  73.     INTCON = 0b11010000;                // pdf 95.
  74.     INTCON2 = 0b00000100;               // INTO lefutó élre figyel, pdf 96.
  75.     T0CON = 0b00001000;                 // pdf 125.
  76.     TMR0H = 0;                          // kinullázza a Timer0 tartalmát
  77.     TMR0L = 0;                          // fontos a sorrend: 1.TMR0H 2.TMR0L
  78.  
  79.     while(1) {
  80.         if(TMR0_value>750 && TMR0_value<850) {      // 750 us-os Start jel jött?
  81.             start_catched = 1;                      // ha igen, akkor figyeli a többi jelet is
  82.             car_id = 0;
  83.             car_id_cnt = 0;
  84.             TMR0_value = 0;
  85.             LATA.B2 = 1;
  86.         }
  87.         if(start_catched) {
  88.             if(TMR0_value>250 && TMR0_value<350) {  // 250 us-os logikai 0 jel
  89.                 TMR0_value = 0;
  90.                 car_id <<= 1;
  91.                 car_id &= 0b11111110;
  92.                 car_id_cnt++;
  93.                 LATA.B6 = 1;
  94.             }
  95.             if(TMR0_value>500 && TMR0_value<600) {  // 500 us-os logikai 1 jel
  96.                 TMR0_value = 0;
  97.                 car_id <<= 1;
  98.                 car_id |= 0b00000001;
  99.                 car_id_cnt++;
  100.                 LATA.B7 = 1;
  101.             }
  102.             LATC = car_id;
  103.             if((TMR0_value>0&&TMR0_value<250)||(TMR0_value>350&&TMR0_value<500)||        // érvénytlen impulzus hossz
  104.                 (TMR0_value>600&&TMR0_value<750)||(TMR0_value>850&&TMR0_value<65535)){
  105.                 car_id = 0;
  106.                 car_id_cnt = 0;
  107.                 start_catched = 0;
  108.                 LATA.B3 = 1;
  109.             }
  110.             if(car_id_cnt==6) {       // ha mind a hat bit bejött, (azért hat, mert 1-től indul a számozás, nem 0-tól)
  111.                 LATC = car_id;        // fordított sorrendben jönnek a bitek
  112.                 car_id = 0;
  113.                 car_id_cnt = 0;
  114.                 start_catched = 0;
  115.                 LATA.B5 = 1;
  116.             }
  117.         }
  118.     }
  119. }


Bonca
(#) grobi75 hozzászólása Feb 3, 2012
Üdv !

A következő problémám lenne . Szerintem talán ebbe a témába tartozik a problémám , másra már nem tudok gondolni.
Van immár több mint 1,5 éve egy műholdas előfizetésem amit egy plazma tv-n használok. Eddig tökéletes volt minden.
Kb 1 hónapja a kép ?zajos? . A jelenség olyan , hogy halvány majdnem átlós csíkozás megy folyamatosan a háttérben. Ez a jelenség vagy nagyon sötét vagy nagyon világos képnél felettébb zavaró. Szinte mindent kicseréltem . Van még itthon 3 beltéri mindegyikkel ugyanaz a tünet. Scart és rca kábeleket is cseréltem és a teljes koaxot is akkor is csíkozik. A TV-t ha elkapcsolom a paraboláról más bemenetre HDMI vagy Analóg akkor tökéletes minden. A szerelő szerint valami villamos hálózati gondom van.
Átnéztem a villamos rendszerem , minden jó. A mérőtől egy biztosítékon keresztül jön a 1,5 ?es vezeték 1 kötés van rajt ami forrasztott. Ezen az áramkörön csak a tv és számítógép van használva és még 2 lámpa. Az oszlopon volt egy lazább kötés , de a szerelő megcsinálta .
Az érdekesség az , hogy ezek a zajok este 8 körül megszűnnek !!! Hétvégén is vannak időpontok amikor tökéletes.
Arra gondoltam , hogy megméregetem a feszültséget . Mikor csíkos akkor 226-234 voltot mérek abban a konnektorban. Este mikor tökéletes akkor 218-222 V. De hétvégén mértem 207 Voltot is amikor csíkozott.
Az még érdekes , de lehet hogy csak véletlen , hogy ebben az eltelt 1 hónapban tönkrement a mikro és a mosogatógép is .
Röviden ennyi lenne .
Várom a véleményeket és ötleteket , hogy mi lehet a probléma. Üdv grobi
(#) zolika60 válasza HA3GX hozzászólására (») Jan 21, 2012
A trafó egybe van öntve a gyújtás elektronikával. Nincs ott más.Bővebben: Link
(#) Tetye válasza Zs_21 hozzászólására (») Jan 14, 2012
Heló!
Vehetsz egy ilyet amit jól hűtesz. Ehhez nem nagyon kell rajz, max amit látsz az adatlapon.
Vagy csinálhatsz egy kapcsitápot Lm2576 -al. Ezt pedig így.
(#) Bonca válasza cottitomi hozzászólására (») Jan 12, 2012
Hello!
Kiindulásnak itt egy elgondolás:
  1. unsigned short int TMR0_overflow;
  2.  
  3. void interrupt() {
  4.     if(INTCON.INT0IF) {                 // gombnyomás érkezett
  5.         T0CON.TMR0ON = 1;               // TMR0 elindítása
  6.         TMR0_overflow += 5;             // hozzáadva 5 perc
  7.         LATC.B0 = 1;                    // kimenet bekapcsolása
  8.         INTCO.INT0IF = 0;               // jelzőbit nullázása
  9.     }
  10.     if(INTCON.TMR0IF) {                 // TMR0 FF-ből 00-ba fordult
  11.         TMR0_overflow--;                // letelt egy perc
  12.         INTCON.TMR0IF = 0;              // jelzőbit nullázása
  13.     }
  14. }
  15.  
  16. void main() {
  17.     OSCCON = 0x62;                      // pdf 32.
  18.     ADCON1 = 0x0F;                      // pdf 226.
  19.     CMCON = 0x07;                       // pdf 235.
  20.     TRISB = 0b10000000;                 // B port 0. lába kimenet
  21.     LATB = 0;                           // B port minden lába logikai 0
  22.     TRISC = 0;                          // C port minden lába kimenet
  23.     LATC = 0;                           // C port minden lába logikai 0
  24.     INTCON = 0b11010000;                // pdf 95.
  25.     INTCON2 = 0b00000100;               // INTO lefutó élre figyel, pdf 96.
  26.     T0CON = 0b00000111;                 // 256-os előosztó, felhúzóellenállás, pdf 125.
  27.     TMR0H = 0;                          // kinullázza a Timer0 tartalmát
  28.     TMR0L = 0;                          // fontos a sorrend: 1.TMR0H 2.TMR0L
  29.  
  30.     while(1) {
  31.         if(TMR0_overflow==0) {
  32.             LATC.B0 = 1;                // kimenet kikapcsolása
  33.             T0CON.TMR0ON = 0;           // TMR0 megállítása
  34.         }
  35.     }
  36. }


A lényege, hogy egy 18F2520-as mikrovezérlő 4 MHz-es órajellel megy. A Timer0 értéke 1 us-onként nő eggyel. Ha 16 bites módban számol a Timer0, és 256-os előosztója van, akkor kb. 67 másodpercig lehet vele elszámolni, majd FF-ből átfordul 00-ba. Ez megszakítást generál. Minden ilyen megszakítás csökkenti eggyel a TMR0_overflow változó értékét. Minden gombnyomás növeli a TMR_overflow értékét 5-tel.
Ha pontosan kell az egy perc, akkor a Timer0-t nem nulláról kell indítani, hanem 7 másodpercnyi órajellel fel kell tölteni (pontosan 67.107.840-60.000.000).

Bonca

venti.jpg
    
(#) Inhouse válasza zoltanbraun hozzászólására (») Jan 6, 2012
Ha jól rémlik ez a coder/decoder páros megegyezik a 2262/2272 párossal. Amire figyelni kell, hogy létezik többféle verzióban, van ahol impulzust ad a kimenete, van ahol egy kimenet (majdnem) mindig aktív és csak vaáltja őket.

Üdv
Inhouse
(#) Lamboo hozzászólása Dec 7, 2011
Sziasztok
Megépítettem Ezt a villogót, de akadt vele egy kis gondom. SMD alkatrészekből van, működik is rendesen, egyet kivéve, ha 3Vos gombelemről próbálom, akkor folyamatosan világít, nem pedig villog. Ha nagyobb feszt adok neki akkor megszűnik ez a gond. Valahogy le lehetne vinni ezt a küszöbfeszültséget egy ellenállás cseréjével? Mert mindenképpen szükségem lenne rá, hogy arról az elemről menjen.
Következő: »»   4 / 7
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