Läsa av elmätaren mha en PIC
Re: Läsa av elmätaren mha en PIC
Får jag också låna tråden..?
Har knåpat ihop något slags räknarprogram för elmätning i ett labkort för en FPGA. Det som återstår är i princip bara att få in pulserna från elmätaren till kortet. På elmätaren sitter en IR-diod som blinkar till varje Ws. Jag har en fotodiod från en gammal IR-modul från en video jag skulle kunna använda. Men hur kopplar jag? IR-dioden leder ju i backriktningen när det lyser på den, vilket i princip är allt jag vet om den... Räcker det att trycka in 5V i katoden och läsa av på anoden? Det känns lite väl simpelt. Behöver jag transistor? Pull-up-motstånd?
Har knåpat ihop något slags räknarprogram för elmätning i ett labkort för en FPGA. Det som återstår är i princip bara att få in pulserna från elmätaren till kortet. På elmätaren sitter en IR-diod som blinkar till varje Ws. Jag har en fotodiod från en gammal IR-modul från en video jag skulle kunna använda. Men hur kopplar jag? IR-dioden leder ju i backriktningen när det lyser på den, vilket i princip är allt jag vet om den... Räcker det att trycka in 5V i katoden och läsa av på anoden? Det känns lite väl simpelt. Behöver jag transistor? Pull-up-motstånd?
Re: Läsa av elmätaren mha en PIC
> Ursäkta min okunskap, men vad är en tariff?
En tariff är i princip detsamma som "avgift". Det har igentligen inget alls med el att göra.
Själva order "tariff" kommer från den arabiske härskare Al-Tarif som bl.a införde tullar för
genomsegling vid Gibraltar (berget vid Gibraltar heter bl.a Gibel-al-Tarif, Tarifs berg).
En tariff är i princip detsamma som "avgift". Det har igentligen inget alls med el att göra.
Själva order "tariff" kommer från den arabiske härskare Al-Tarif som bl.a införde tullar för
genomsegling vid Gibraltar (berget vid Gibraltar heter bl.a Gibel-al-Tarif, Tarifs berg).
Re: Läsa av elmätaren mha en PIC
Jag hade rätt i alla mina antagande i min förrförra post
,byggde ihop en idag och den funka inte alls. Mätte och konstatera att den gav +7V på RX vid ljus och +2V vid mörker. Inte så bra mtp att RS232 vill ha lite negativa signaler med 
Eftersom flera pratat om att deras motstånd var fel värde så började jag sänka, vid 1kOhm får jag ut ca -3.5V, tyvärr verkar jag lasta ner den lite, för den possitiva spänningen sjönk någa volt. Men med hyperterminalen på 110,8,N,1 kommer det ut ett tecken vid varje blink.
Nu blir det altså till att fixa till nätverk i pumphuset med, undra om det blir laFonen, eller en ny WRT54GL, har en +14dBi antenn till LaFonen så det borde ju bli den


Eftersom flera pratat om att deras motstånd var fel värde så började jag sänka, vid 1kOhm får jag ut ca -3.5V, tyvärr verkar jag lasta ner den lite, för den possitiva spänningen sjönk någa volt. Men med hyperterminalen på 110,8,N,1 kommer det ut ett tecken vid varje blink.
Nu blir det altså till att fixa till nätverk i pumphuset med, undra om det blir laFonen, eller en ny WRT54GL, har en +14dBi antenn till LaFonen så det borde ju bli den

Re: Läsa av elmätaren mha en PIC
Motståndet är helt galet ja men å andra sidan får man nog se deras lösning som just en nödlösning.
När jag testade så letade jag åt en lysdiod liknande den som sitter i elmätaren och testade med den (skönare inne i värmen
) och såg på så sätt vad som fungerade och inte.
Fototransistorer är ganska lynniga och extremt känsliga för ut vilken vinkel ljuset kommer. Omgivande ljus måste också skärmas av.
När jag testade så letade jag åt en lysdiod liknande den som sitter i elmätaren och testade med den (skönare inne i värmen

Fototransistorer är ganska lynniga och extremt känsliga för ut vilken vinkel ljuset kommer. Omgivande ljus måste också skärmas av.
Re: Läsa av elmätaren mha en PIC
Jag har tyvärr inte hunnit bygga min logger än men jag slängde ihop en mrtg åt en kompis med en likadan.

Det hela är mycket enkelt om man tex kör debian, aptitude install mrtg, lägg in denna mrtg.cfg men byt utmot det som ger räknarens värde i din installation.
Om du inte vill använda owfs går det förstås lika bra med tex digitemp. Sen är det bara vänta tio minuter och kolla på grafen

Det hela är mycket enkelt om man tex kör debian, aptitude install mrtg, lägg in denna mrtg.cfg men byt ut
Kod: Markera allt
cat /1wire2/1D.15900C000000/counters.A
Om du inte vill använda owfs går det förstås lika bra med tex digitemp. Sen är det bara vänta tio minuter och kolla på grafen

Re: Läsa av elmätaren mha en PIC
Tjusigt mrfrenzy tyvärr kör ju jag windows
Måste tyvärr också fortsätta med det tills jag sniffat klart trafiken till FS20 (strömbrytare) men just nu ligger det en bit ner på listan.
Sen hade jag också en dust med Linux där jag svor ve och förbannelse över denna skapelse, Dreamboxen fick helt plötsligt för sig att krascha. Tex blev alla mounts såsom /var skrivskyddade, samma med USB-minnet. Så fick göra en windows tillslut, dvs blåsa allt
Har själv filat på en lösning där jag loggar typ varje minut och ser hur många (eller helst hur få) kWh som har gått den perioden. Detta är väldigt enkelt iom att jag räknar pulserna rätt i PIC:en. Dock krävs nog att jag skickar ut ännu nogrannare data än vad jag gör nu. Det kommer som bäst ut 1/4 av en hundradels kWh (2,5Wh) som det är nu och även om detta kan tyckas exakt så är det ändå rätt dålig precision under lågförbrukning. Då 2,5 Wh motsvarar 0,15 kWh på en timme så får man stora hopp i en kurva på minuten i upplösning.
Undrar om någon fattar vad jag dillar om. Ont i huvudet så jag är inte 100 skärpt

Sen hade jag också en dust med Linux där jag svor ve och förbannelse över denna skapelse, Dreamboxen fick helt plötsligt för sig att krascha. Tex blev alla mounts såsom /var skrivskyddade, samma med USB-minnet. Så fick göra en windows tillslut, dvs blåsa allt

Har själv filat på en lösning där jag loggar typ varje minut och ser hur många (eller helst hur få) kWh som har gått den perioden. Detta är väldigt enkelt iom att jag räknar pulserna rätt i PIC:en. Dock krävs nog att jag skickar ut ännu nogrannare data än vad jag gör nu. Det kommer som bäst ut 1/4 av en hundradels kWh (2,5Wh) som det är nu och även om detta kan tyckas exakt så är det ändå rätt dålig precision under lågförbrukning. Då 2,5 Wh motsvarar 0,15 kWh på en timme så får man stora hopp i en kurva på minuten i upplösning.
Undrar om någon fattar vad jag dillar om. Ont i huvudet så jag är inte 100 skärpt

Re: Läsa av elmätaren mha en PIC
v-g: Det är inte så att du har lite (asm?) kod att visa?
Fattar vad du säger att pic:en gör, är dock intresserad av att se hur det ser ut i kod. (Vill lära mig ju
)
Fattar vad du säger att pic:en gör, är dock intresserad av att se hur det ser ut i kod. (Vill lära mig ju


Re: Läsa av elmätaren mha en PIC
Frågan är vilken del du vill se? Själva koden för att läsa av elmätaren är enkel:
Vänta på en hög puls.
Vänta tills den blir låg
Starta tag tid.
Vänta på hög puls
Vänta på låg puls
stoppa tidtagning.
Sen tar jag detta tal på två BYTEs och använder det som kvot i en division. Uträkningen blir alltså som följer: 900 000 / de två tidsBYTEn därefter genom en Binary to decimal-fuktion och sen ut med talen på skärmen ett efter ett.
Genom att köra "uppräkningen" i Interupt som triggas av ett lämpligt timerintervall så kan man både övervaka pulserna och räkna samtidigt.
Det jävligaste var att räkna ut hur man skulle räkna ut allt resten var en baggis vill jag minnas. Detta har med DIN elmätare att göra också har du tex en 1000imp/kW så är det andra förutsättningar som gäller (man måste tex sätta lägsta mätbara förbrukning högre för att någonsin få se ett värde eller så mäta av kontinuerligt).
Koden är väldigt svår att presentera annat än i lösryckta delar som garanterat inte fungerar om man inte kan sammanfoga dem. Jag kan dock klippa klistra lite delar om du försöker förklara vad det är du vill åstakomma/veta/se.
Jag ska dock kolla om jag inte har låtit bli att förstöra en del av prototykoden jag gjorde i början. Från första början gjorde jag bara en diod som blinkade i takt med den på stolpen
4 rader kod typ
Annat nu!
Problemet är som alltid att jag hinner bygga på en massa kod innan jag sätter stopp så allt blir liksom för specialicerat för att det ska vara användbart
Finns inget AV på geniknappen säger de 
Fasen vad jag tramsar på
Vänta på en hög puls.
Vänta tills den blir låg
Starta tag tid.
Vänta på hög puls
Vänta på låg puls
stoppa tidtagning.
Sen tar jag detta tal på två BYTEs och använder det som kvot i en division. Uträkningen blir alltså som följer: 900 000 / de två tidsBYTEn därefter genom en Binary to decimal-fuktion och sen ut med talen på skärmen ett efter ett.
Genom att köra "uppräkningen" i Interupt som triggas av ett lämpligt timerintervall så kan man både övervaka pulserna och räkna samtidigt.
Det jävligaste var att räkna ut hur man skulle räkna ut allt resten var en baggis vill jag minnas. Detta har med DIN elmätare att göra också har du tex en 1000imp/kW så är det andra förutsättningar som gäller (man måste tex sätta lägsta mätbara förbrukning högre för att någonsin få se ett värde eller så mäta av kontinuerligt).
Koden är väldigt svår att presentera annat än i lösryckta delar som garanterat inte fungerar om man inte kan sammanfoga dem. Jag kan dock klippa klistra lite delar om du försöker förklara vad det är du vill åstakomma/veta/se.
Jag ska dock kolla om jag inte har låtit bli att förstöra en del av prototykoden jag gjorde i början. Från första början gjorde jag bara en diod som blinkade i takt med den på stolpen


Problemet är som alltid att jag hinner bygga på en massa kod innan jag sätter stopp så allt blir liksom för specialicerat för att det ska vara användbart


Fasen vad jag tramsar på

Re: Läsa av elmätaren mha en PIC
Precis det skulle jag vilja se hur det ser ut i kod.v-g skrev:Frågan är vilken del du vill se? Själva koden för att läsa av elmätaren är enkel:
Vänta på en hög puls.
Vänta tills den blir låg
Starta tag tid.
Vänta på hög puls
Vänta på låg puls
stoppa tidtagning.
Sen tar jag detta tal på två BYTEs och använder det som kvot i en division. Uträkningen blir alltså som följer: 900 000 / de två tidsBYTEn därefter genom en Binary to decimal-fuktion och sen ut med talen på skärmen ett efter ett.
Jag vill bygga en "logger" som gör det din gör med skillnaden att jag vill att den skickar värdena in i en mysqldatabas i lämpliga intervall + visar värdena i realtid i en terminal on demand så att säga.
Ser detta som ett tillfälle att börja så smått med uC och elektronik i allmänhet.
Re: Läsa av elmätaren mha en PIC
Nuru hatt!
Mätningsrutinen:
Interupt:
Interupt har fler delar som är enligt mallen men detta är den del som berör just det du efterfrågar (finns ju såklart mer också men det blir väl mycket redan som det är
)
Fråga gärna.
Koden är rätt ur MPLAB och kommentarerna kan lämna övrigt att önska. En del BANKSEL är onödiga men eftersom koden kraschade så har jag tagit det säkra före det osäkra och säkrat upp koden lite. Lägger man variablerna i samma bank kan man skippa en hel del. Fast detta kanske är lite hög nivå för dig redan.
Mätningsrutinen:
Kod: Markera allt
Meassure_Consumption_CODE CODE
GLOBAL Meassure_Consumption
Meassure_Consumption
;Meassure CODE
BANKSEL PIE1
BSF PIE1, TMR1IE ;Enable timer interupt
BANKSEL Counts_1
CLRF Counts_1
CLRF Counts_2
BANKSEL T1CON ;Start timer to enable error checking
BSF T1CON, TMR1ON
Wait_Until_OFF
;error checking
BANKSEL Interupt_Ret_Var
BTFSC Interupt_Ret_Var, 1
GOTO Overflow_Occured
BANKSEL PORTA
BTFSC Matare_Input ; Wait until clear
GOTO Wait_Until_OFF
BANKSEL INTCON
BCF INTCON, TMR0IE ;Disable timer0 interupt
Wait_Until_ON
;error checking
BANKSEL Interupt_Ret_Var
BTFSC Interupt_Ret_Var, 1
GOTO Overflow_Occured
BANKSEL PORTA
BTFSS Matare_Input ; Wait until clear
GOTO Wait_Until_ON
BANKSEL TMR1H
MOVLW 0x30 ;Preload value
MOVWF TMR1L
MOVLW 0xFB ;Preload Value
MOVWF TMR1H
BANKSEL Counts_1
CLRF Counts_1
CLRF Counts_2
BANKSEL PORTA
Wait_Until_OFF_2
;error checking
BANKSEL Interupt_Ret_Var
BTFSC Interupt_Ret_Var, 1
GOTO Overflow_Occured
BANKSEL PORTA
BTFSC Matare_Input ; Wait until clear
GOTO Wait_Until_OFF_2
Wait_Until_ON_2
;error checking
BANKSEL Interupt_Ret_Var
BTFSC Interupt_Ret_Var, 1
GOTO Overflow_Occured
BANKSEL PORTA
BTFSS Matare_Input ; Wait until clear
GOTO Wait_Until_ON_2
Overflow_Occured
BANKSEL Interupt_Ret_Var
BCF Interupt_Ret_Var, 1
BANKSEL T1CON
BCF T1CON, TMR1ON ;Stops timer 1
BSF INTCON, TMR0IE ;Enable timer0 interupt
BANKSEL PIE1
BCF PIE1, TMR1IE ;Disable timer interupt
BANKSEL Counts_2
MOVF Counts_2, W
MOVWF BARGB0
MOVF Counts_1, W
MOVWF BARGB1
CALL FXD2416U
BANKSEL BARGB1
MOVF AARGB1, W
MOVWF NumH
MOVF AARGB2, W
MOVWF NumL
CALL Bin2Dec
RETURN
Kod: Markera allt
;Timer1 interupt
BANKSEL PIR1
BTFSS PIR1, TMR1IF
GOTO Not_TMR1IF
BANKSEL Counts_1
INCF Counts_1, F
SKPNZ
INCF Counts_2, F
BANKSEL Interupt_Ret_Var
SKPNZ
BSF Interupt_Ret_Var, 1 ; Indicate overflow
BANKSEL TMR1H
MOVLW 0xFB ;Preload Value
ADDWF TMR1H, F
MOVLW 0x1F
ADDWF TMR1L, F
BCF PIR1, TMR1IF
Not_TMR1IF

Fråga gärna.
Koden är rätt ur MPLAB och kommentarerna kan lämna övrigt att önska. En del BANKSEL är onödiga men eftersom koden kraschade så har jag tagit det säkra före det osäkra och säkrat upp koden lite. Lägger man variablerna i samma bank kan man skippa en hel del. Fast detta kanske är lite hög nivå för dig redan.
Re: Läsa av elmätaren mha en PIC
Tack du så länge.
Nu ska jag inhandla ett pickit 2 PIC starter kit och köra igång.
Är det ett bra alternativ?
Det känns som att jag ska köra igång praktiskt innan jag ställer följdfrågor.
Mvh Jag
Nu ska jag inhandla ett pickit 2 PIC starter kit och köra igång.
Är det ett bra alternativ?
Det känns som att jag ska köra igång praktiskt innan jag ställer följdfrågor.
Mvh Jag
Re: Läsa av elmätaren mha en PIC
Pickit har jag ingen erf. av men vad jag vet så är de bra. Sök på forumet och du hittar massor.
Sen behövs labbdäck och labbsladdar. Lite LEDs osv är också bra för felsökning men sen kommer man en bra bit på det. En enkelr 2x2 display är guld för felsökning och ser även lite trevligt ut
Motståndssats är nästan ett måste och kostar en 70 spänn på Kjell för 25 st/värde.
Mixtra på!
Sen behövs labbdäck och labbsladdar. Lite LEDs osv är också bra för felsökning men sen kommer man en bra bit på det. En enkelr 2x2 display är guld för felsökning och ser även lite trevligt ut

Motståndssats är nästan ett måste och kostar en 70 spänn på Kjell för 25 st/värde.
Mixtra på!
Re: Läsa av elmätaren mha en PIC
v-g: Nu har jag handlat lite saker. Bl.a en Pickit 2 med demo/exempelkort. På det sitter en pic16f690. Tänkte börja med den.
Tänkte börja med att få en diod på kortet att blinka i takt med leden på elmätaren.
Har byggt en "sensor" enl. emc. Går den att använda genom att ändra värde på motståndet?
Måste få en alt. flera kraftiga knuffar framåt...
På vilka pinnar kopplar jag sensorn och hur ser koden ut för att få leden på demokortet att blinka?
Tänkte börja med att få en diod på kortet att blinka i takt med leden på elmätaren.
Har byggt en "sensor" enl. emc. Går den att använda genom att ändra värde på motståndet?
Måste få en alt. flera kraftiga knuffar framåt...
På vilka pinnar kopplar jag sensorn och hur ser koden ut för att få leden på demokortet att blinka?
Re: Läsa av elmätaren mha en PIC
Du får nog börja med lite blink a led osv.
Som första början gjorde jag bara en enkel sak som visade samma blink som lysdioden på mätaren. 4 rader kod typ
Tex nåt liknande detta:
Såklart behöver man göar lite annat innan också men det får du lära dig 
Som första början gjorde jag bara en enkel sak som visade samma blink som lysdioden på mätaren. 4 rader kod typ

Tex nåt liknande detta:
Kod: Markera allt
Init
BSF TRISB, 0
Main
BTFSS PORTB, 0
BSF PORTB, 1
BTFSC PORTB, 0
BCF PORTB, 1
GOTO Main
