Sida 1 av 2
Styra Nexa med PIC-controller
Postat: 22 augusti 2010, 12:32:44
av star_figge
Hej..
Jag vill bygga en PIC baserad sändare till Nexas produkter. Sändaren ska tex via plint kunna kopplas till mitt Teletec PC4020 (larm) för att stänga av oönskade förbrukare när jag larmar huset och går hemifrån.
Jag vill också kunna bygga mina egna strömbrytare då jag tycker Nexas sortiment är fruktansvärt fult. Tex genom att lägga kretskortet med PIC,433Mhz modul,mm bakom befintlig vägg-brytare där jag redan gjort mitt designval.
Förutsättningar:
Jag är kunnig i PIC-Assambler, kan etsa kretskort, har hittat Nexa-protokollet här på sajten. Jag har tidigare gjort en mottagare för RC5 (IR) för att styra min DIY-förstärkare via standard "köpt" fjärrkontroll.
Jag kan naturligtvis skriva koden från början, men det kommer säkert att ta några timmar med "try and fail", är det någon som sitter med en kodsnutt (assambler) som stödjer Nexa-protokollet som jag kan utgå från så får ni gära dela med er.
/Fredrik
Re: Styra Nexa med PIC-controller
Postat: 22 augusti 2010, 14:11:40
av v-g
Välkommen till EF!
Uppe till höger mellan FAQ och Medlemmar finns en
sökfunktion som fungerar rätt bra emellanåt. Använder man då den så hittar man vid sök på
"nexa" tex denna tråd:
http://elektronikforumet.com/forum/view ... =3&t=11720
Re: Styra Nexa med PIC-controller
Postat: 22 augusti 2010, 18:07:50
av danielr112
Koppla in en nexa sändare direkt till din larmsignal? Det måste vara det enklaste. Men jo annars finns det trådar med folk som gjort sändare av pic.
Re: Styra Nexa med PIC-controller
Postat: 22 augusti 2010, 20:28:12
av star_figge
Tack för snabb respons!
Jag har plöjt igenom det mesta på EF rörande Nexa, även om jag fått ut mycket information så har jag inte hittat riktigt det jag söker. Jag hittade ett projekt som är snarlikt men koden är skriven i Basic och det saknar jag kompilator för.
/Fredrik
Re: Styra Nexa med PIC-controller
Postat: 22 augusti 2010, 20:44:16
av star_figge
danielr112 skrev:Koppla in en nexa sändare direkt till din larmsignal? Det måste vara det enklaste. Men jo annars finns det trådar med folk som gjort sändare av pic.
Så kan man säkert göra i många fall även om det är en lite "quick and dirty" lösning, men och andra sidan har man levt på det många gånger. I det här fallet kommer den inte att fungera eftersom att fjärrkontrollen använder olika knappar för on/off. Jag har tillgång till två programmerbara utgångar (en är redan upptagen) på mitt larm, dessa kan kopplas till att ge fast signal eller puls (+12V) vid larmining/avlarming av olika ZON-er mm.
Jag slängde nyss ihop lite kod med det var inte så framgångsrikt, jag ska testa lite till ikväll. Postar koden här så snart jag kompletterat med lite kommentarer.
Re: Styra Nexa med PIC-controller
Postat: 22 augusti 2010, 21:04:42
av Pajn
Jag drog upp en gammal tråd om detta igår och fick lite kod av victor_passe i C
http://elektronikforumet.com/forum/view ... =4&t=40793
Det är svårt att veta men jag tror att nån som inte kan C i alla fall kan förstå koden så bra att du får lite hjälp.
Re: Styra Nexa med PIC-controller
Postat: 22 augusti 2010, 21:06:47
av victor_passe
Och skulle något vara oklart i koden så PM:a mig så ska jag förklara bäst jag kan!
Lycka till.
Re: Styra Nexa med PIC-controller
Postat: 22 augusti 2010, 23:24:16
av star_figge
Tusen tack victor_passe!! Nu bar det ju sig inte bättre än att sambon tvingade ner mig i soffan framför någon svensk kriminalserie på 5:an, så det har inte blivit något vettigt gjort ikväll. Men jag har i alla fall hittat ett fel i min egen kod, jag hade glömt att man måste skicka allt fyra gånger.
Re: Styra Nexa med PIC-controller
Postat: 22 augusti 2010, 23:30:01
av victor_passe
Min orginal-fjärr skickar datan 5gånger.
Räcker säkert med 4 iof.
Re: Styra Nexa med PIC-controller
Postat: 23 augusti 2010, 22:59:33
av star_figge
Lägger ut min assamblerkod som inte fungerar, men det är kanske någon här som har idér.
Kod: Markera allt
list p=12F629
radix dec
include "p12f629.inc"
__CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT ;Internal osc.
; equ 20h ;this is the first available file
; equ 21h
; equ 22h
; equ 23h
; equ 24h
; equ 25h
FILEA equ 26h
FILEB equ 27h
FILEC equ 28h
pin7 equ 0 ;GP0 pin7
pin6 equ 1 ;GP1 pin6
led equ 2 ;GP2 pin5
sw equ 3 ;GP3 pin4
pin3 equ 4 ;GP4 pin3
R433 equ 5 ;GP5 pin2
Start org 0x0000 ;program starts at location 000
nop
nop
nop
nop ;NOPs to get past reset vector address
nop
nop
SetUp bsf STATUS, RP0 ;Bank 1
movlw b'10000110' ;Turn off T0CKI, prescale for TMR0 = 1:128
movwf OPTION_REG
movlw b'00000000' ;Set GP0x as output
movwf TRISIO
; ============================================================
;calibrating the internal oscillator
call 0x3ff ;get the calibration value
movwf OSCCAL ;calibrate oscillator
bcf STATUS, RP0 ;bank 0
clrf GPIO ;Clear GPIO of junk
; ============================================================
Init bcf GPIO,R433
bsf GPIO,led
; ============================================================
Main call send ;Send to Nexa five times
call send
call send
call send
call send
bsf GPIO,led ;blipp running led
call sec
bcf GPIO,led
call sec
goto Main
; ============================================================
send call etta ; b0 House address
call nolla ; ..
call nolla ; ..
call nolla ; b3 House address
call etta ; b4 Unit id
call nolla ; ..
call etta ; ..
call nolla ; b7 Unit id
call nolla ; b8 Fill out
call etta ; ..
call etta ; b10
call etta ; ON
call stop
return
; ============================================================
etta nop
bsf GPIO,R433
call micro
bcf GPIO,R433
call micro
call micro
call micro
bsf GPIO,R433
call micro
bcf GPIO,R433
call micro
call micro
call micro
return
; ============================================================
nolla nop
bsf GPIO,R433
call micro
call micro
call micro
bcf GPIO,R433
call micro
bsf GPIO,R433
call micro
call micro
call micro
bcf GPIO,R433
call micro
return
; ============================================================
stop nop
bsf GPIO,R433
call micro
bcf GPIO,R433
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
call micro
return
; ============================================================
sec movlw 5h
movwf FILEC
secX
decfsz FILEA,1
goto secX
decfsz FILEB,1
goto secX
decfsz FILEC,1
goto secX
retlw 00
; ============================================================
micro movlw 32h ;350us
MOVWF FILEA
microx DECFSZ FILEA , f
GOTO microx
RETURN
; ============================================================
;OSCCAL calibration value
org 0x3ff
movlw 0x20
; ============================================================
end
Re: Styra Nexa med PIC-controller
Postat: 23 augusti 2010, 23:48:36
av sodjan
> Lägger ut min assamblerkod som inte fungerar...
Vad betyder "inte fungerar" mer exakt ?
Vad förväntar du dig ska hända ?
Vad är det som inte händer ?
Några andra observationer ?
Har du kört det i MPLAB/SIM ?
Re: Styra Nexa med PIC-controller
Postat: 26 augusti 2010, 21:03:10
av Pajn
Jag drar upp den här tråden med två frågor:
http://elektronikforumet.com/wiki/index ... C3%A4rande
Hur gör man för att lära mottagaren koden? det nämns inte där
Måste sändarens ID följa nått spec. mönster?
Re: Styra Nexa med PIC-controller
Postat: 26 augusti 2010, 22:13:48
av victor_passe
Du skickar "group Off", drar ut mottagaren och sätter in den efter typ 10sek och skickar direkt tex "Unit 1 ON" så blir den enhet nr 1.
Re: Styra Nexa med PIC-controller
Postat: 27 augusti 2010, 07:11:36
av Pajn
För att skicka "group Off" använder jag mig av det sista exemplet men ändrar 54-55 till 11?
och för "Unit 1 ON" så skickar jag bara en vanlig on (sista exemplet men 56-57 som 01)?
Behöver jag nånsin bry mig om kanalväljare/knappens kod?
Re: Styra Nexa med PIC-controller
Postat: 27 augusti 2010, 12:01:18
av lond
Hej!
Här är resultatet som min PIC-mottagare lämnar ifrån sig när jag testade mina NEXA-2000 enheter som jag har hemma som referenser.
Man kan tex se att den totala summan av alla bitar i varje sändning skall vara 66.
// Marcus