Sida 2 av 2

Postat: 28 december 2008, 03:43:37
av blueint
En idé är att koppla ingången till ASK sändaren, till parallellporten och sampla med minst 10 kHz. Använd dock timers för att sampla då moderna CPU är oberäknliga i utförande tid.

Postat: 28 december 2008, 15:03:19
av v-g
Har för mig att den "självlärande" har plats för 4 st koder i minnet och man "lär" dem genom att stoppa i kontakten och sen trycka på den sändarknapp vars kod man önskar lära in. Väldigt Lo-tec alltså.

Läste bakpå en på jula så jag kan minnas fel.

Postat: 29 december 2008, 22:51:43
av Fredrick
Nu har jag fått en 16F872 + en Parallax RF transmitter http://www.parallax.com/Store/Accessori ... roductName
Att fungera tillsammans med NEXAS brytare både självlärande och Code-Swich seriern, den fungerar kanon bra och har mycket längre räckvidd än originalfjärren.

Koden är skriven i PicBasic Pro som jag tyvärr inte kan ta åt mig äran av att ha skrivit på egen hand utan fick den av Bruce på www.renton.com.

Så ja Basic Stamp och parallax transmittern fungerar nog till NEXA dom med, PicBasic koden kanske tom går att köra rakt av i stampen så BasicStamp språket är väldigt likt PicBasic?

Postat: 29 december 2008, 22:54:17
av Icecap
Om programmet använder timer-interrupt (vilket det ganska troligt gör) fungerar det INTE på BS, använder det loop-timing fungerar det INTE på BS... osv.

Postat: 30 december 2008, 00:50:33
av Fredrick
Programmet använder inte timer-interrupt, vet inte exakt vad du menar med loop-timing men ja sändkoden består av en loop som som loopar 12 gånger där loopen sänder 1 bit per loop.

Antar att det är det du menar med loop timing?

Varför fungerar det inte i BS men i PBP?

Postat: 30 december 2008, 09:47:54
av Icecap
Fredrick: vet du ens hur BS fungerar? PBP kompilerar till maskinkod som sedan kör "full patte", BS kör med interpeterat kod vilket ger runt 50k instruktioner/sek som bäst, timingen är alltså under all kritik.

Postat: 30 december 2008, 10:00:54
av PHermansson
v-g skrev:Har för mig att den "självlärande" har plats för 4 st koder i minnet och man "lär" dem genom att stoppa i kontakten och sen trycka på den sändarknapp vars kod man önskar lära in. Väldigt Lo-tec alltså.

Läste bakpå en på jula så jag kan minnas fel.
Stämmer bra, har en självlärande här. I med den i väggen, tryck tre-fyra gånger på en sändarknapp och vips så har mottagaren lärt sig. Det borde inte ha nån betydelse för sändningen om det är en ny eller gammal mottagare, self-learn fungerar bra med mina gamla icke self-learn fjärrkontroller.

Postat: 30 december 2008, 10:02:57
av blueint
När glömmer den sin självlärda kod?

Postat: 30 december 2008, 12:44:39
av Fredrick
När man trycker på "Self Learn" knappen på mottagaren och därefter trycker på fjärrens OFF knapp, då försvinner den kanalens plats i mottagaren. (Gäller de nyare självlärda mottagare)


Annars finns mycket information tillgänglig här www.nexa.se

Postat: 30 december 2008, 22:39:25
av Fredrick
Här är källkoden till programmet iallafall, om någon är intresserad :)

Kod: Markera allt

Define OSC 20

T CON 350      ' T = 350uS
T3 CON 1050    ' 3T
T32 CON 11200  ' 32T (Stop/Synch)

' Note we're using 1 VS X as shown in text
A1_ON  CON %111000000000 ' 12-bit code for House/Unit A1 ON
A1_OFF CON %011000000000 ' 12-bit code for House/Unit A1 OFF 
'           ||||||||||||____ 4-bit House code
'           ||||||||________ 4-bit Unit code
'           ||||____________ 3-bit Unknown code
'           |_______________ 1-bit Activation code 1=ON 0=OFF 
'
'        House code  Unit Code 
'       ------------------------
'       | 0000 - A | 0000 - 1  |   
'       | X000 - B | X000 - 2  |
'       | 0X00 - C | 0X00 - 3  |
'       | XX00 - D | XX00 - 4  |
'       | 00X0 - E | 00X0 - 5  |
'       | X0X0 - F | X0X0 - 6  |
'       | 0XX0 - G | 0XX0 - 7  |
'       | XXX0 - H | XXX0 - 8  |
'       | 000X - I | 000X - 9  |
'       | X00X - J | X00X - 10 |
'       | 0X0X - K | 0X0X - 11 |
'       | XX0X - L | XX0X - 12 | 
'       | 00XX - M | 00XX - 13 |
'       | X0XX - N | X0XX - 14 |
'       | 0XXX - O | 0XXX - 15 |
'       | XXXX - P | XXXX - 16 |
'       ------------------------

D_PACKET VAR WORD ' Holds 12-bit data packet to send
INDEX VAR BYTE    ' Data packet bit index pointer
LOOPS VAR BYTE    ' Loop counter

TX VAR PORTB.0    ' Connects to RF transmitter data in

LOW TX            ' TX output idles low for RF carrier OFF

Main:
    D_PACKET = A1_ON
    GOSUB Send
    PAUSE 5000
    D_PACKET = A1_OFF
    GOSUB Send
    PAUSE 5000
    GOTO Main
    
Send:
    FOR LOOPS = 1 TO 4    ' send each packet 4 times
      FOR INDEX = 0 TO 11 ' sends 12 bits per pass LSB 1st
        
        HIGH TX           ' The 1st half of a 0 or X  bit period is the
        PAUSEUS T         ' same so no need to repeat this sequence inside
        LOW TX            ' the IF block
        PAUSEUS T3 
        
        IF D_PACKET.0[INDEX]=1 THEN
           HIGH TX        ' send a 1 bit (1=X here)
           PAUSEUS T3
           LOW TX
           PAUSEUS T
        ELSE
           HIGH TX        ' send a 0 bit
           PAUSEUS T
           LOW TX
           PAUSEUS T3
        ENDIF
      NEXT INDEX          ' loop until all 12-bits sent
      
      ' Start of Stop/Synch period after each 12-bit packet
      HIGH TX
      PAUSEUS T
      LOW TX
      PAUSEUS T32
      ' End of Stop/Synch period
      
    NEXT LOOPS        ' send 4 packets per pass
    RETURN
      
    END