Läsa av elmätaren mha en PIC

Berätta om dina pågående projekt.
Micke_xyz
Inlägg: 42
Blev medlem: 16 oktober 2006, 15:21:17
Ort: Farsta
Kontakt:

Re: Läsa av elmätaren mha en PIC

Inlägg av Micke_xyz »

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?
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Läsa av elmätaren mha en PIC

Inlägg av sodjan »

> 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).
Användarvisningsbild
AndLi
Inlägg: 18251
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Läsa av elmätaren mha en PIC

Inlägg av AndLi »

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 :)
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Läsa av elmätaren mha en PIC

Inlägg av v-g »

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.
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 15461
Blev medlem: 16 april 2006, 17:04:10

Re: Läsa av elmätaren mha en PIC

Inlägg av mrfrenzy »

Jag har tyvärr inte hunnit bygga min logger än men jag slängde ihop en mrtg åt en kompis med en likadan.
Bild

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
mot 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 ;)
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Läsa av elmätaren mha en PIC

Inlägg av v-g »

Tjusigt mrfrenzy tyvärr kör ju jag windows :roll: 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 :D

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 :humf:
hatt
Inlägg: 39
Blev medlem: 6 mars 2004, 16:50:31

Re: Läsa av elmätaren mha en PIC

Inlägg av hatt »

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 :humm: :-))
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Läsa av elmätaren mha en PIC

Inlägg av v-g »

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 8) 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 :humm: Finns inget AV på geniknappen säger de :mrgreen:

Fasen vad jag tramsar på :fransman:
hatt
Inlägg: 39
Blev medlem: 6 mars 2004, 16:50:31

Re: Läsa av elmätaren mha en PIC

Inlägg av hatt »

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.
Precis det skulle jag vilja se hur det ser ut i kod.

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.
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Läsa av elmätaren mha en PIC

Inlägg av v-g »

Nuru hatt!

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
Interupt:

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
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 :roll: )

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.
hatt
Inlägg: 39
Blev medlem: 6 mars 2004, 16:50:31

Re: Läsa av elmätaren mha en PIC

Inlägg av hatt »

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
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Läsa av elmätaren mha en PIC

Inlägg av v-g »

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å!
Borre
Inlägg: 4606
Blev medlem: 14 juni 2007, 15:43:50
Ort: Hälsingland

Re: Läsa av elmätaren mha en PIC

Inlägg av Borre »

Measure stavas med ett s, inte två. ;)
hatt
Inlägg: 39
Blev medlem: 6 mars 2004, 16:50:31

Re: Läsa av elmätaren mha en PIC

Inlägg av hatt »

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?
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Läsa av elmätaren mha en PIC

Inlägg av v-g »

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 :roll:

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
Såklart behöver man göar lite annat innan också men det får du lära dig ;)
Skriv svar