Varför "kontaktstuds" när jag tittar på elmätardiod?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
ie
EF Sponsor
Inlägg: 1375
Blev medlem: 23 oktober 2006, 13:12:57
Ort: Tyresö

Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av ie »

Hej.

Jag försöker läsa av elmätarens diod. Konstigt nog läser jag ofta flera pulser fastän det bara ska vara en. Jag förstår inte varför. Det borde inte fungera som en knapp där man får kontaktstuds.

Jag har en fototransistor i en darlingtonkoppling och använder AVRmega'ns komparator för att generera ett interrupt på lysdiodens uppgående flank (läses på nedåtgående flank då transistorkopplingen inverterar signalen). OBS! Fel symbol för fototransistorn.
Fotokoppling.JPG
Nu har jag byggt upp en exprimentkoppling på labbplattan, där jag genererar blinkande pulser från AVR'en, så jag vet när de kommer och att de är rena. Jag får dock fortfarande fler pulser än en. (Alltså samma resultat i två helt separata uppkopplingar.) Nedan ses antalet registrerade interrupts per puls. (Jag har eliminerat ev störade bakgrundsljus.)

Kod: Markera allt

1, 2, 2, 1, 2, 1, 2, 2, 3, 2
2, 4, 2, 1, 2, 1, 2, 2, 3, 2
1, 2, 1, 2, 4, 2, 4, 2, 3, 3
2, 4, 4, 2, 2, 2, 2, 2, 2, 2
4, 2, 3, 3, 1, 2, 4, 3, 1, 3
1, 1, 1, 2, 1, 2, 4, 3, 2, 1
2, 1, 3, 2, 1, 1, 1, 3, 3, 3
2, 2, 2, 1, 1, 1, 2, 2, 3, 3
3, 1, 2, 3, 2, 1, 1, 3, 3, 1
Nedan är relevant kod för initiering och interruptrutin.

Kod: Markera allt

<Initiering>

	//Set Analog comparator to issue interrupt on negative flank
	ADCSRB = 0;											// Use AIN1 for negative input
	ACSR = (1 << ACIE) | (1 << ACIS1) | (0 << ACIS0);	// Enable interrupt on falling edge
	DIDR1 = (1 << AIN1D) | (1 << AIN0D);				// Disable digital input

<Interruptrutin>
ISR(ANALOG_COMP_vect,ISR_BLOCK)	//Analog comparator IRQ
{
	count++;
}
Fn genererar jag en 100ms lång puls var 800'e ms. 500 ms efter pulsen kollar jag värdet på Count. Efter tio pulser skriver jag ut de tio senaste resultaten.

Pulserna är tyvärr för korta för att ge en bra bild på oscilloskopet, men jag har svårt att se varför jag får multipla läsningar även om flankerna inte är så branta.

Förslag på vad som kan vara "fel"? Vill helst slippa "fula" lösningar som att bara läsa första pulsen inom en vis tid, vill hellre förstå varför det blir så här.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av Swech »

Koppla pulsen till komparatorn direkt för
att felsöka om felet är i fototransistorn eller i mjukvaran.

kanske 50Hz från någon belysning spökar för dig

Swech
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av sodjan »

Är alltså den optiska kopplingen helt isolerad från eventuellt
ljus som kommer från 50Hz matningen? Är den valda pinnen
på AVR'en av typ "Schmitt-trigger". Du kanske ska sätta ett
extra steg mellan fototransistorn och AVR'en för att buffra
och "städa" signalen? T.ex en buffer av schmitt-trigger typ.
ie
EF Sponsor
Inlägg: 1375
Blev medlem: 23 oktober 2006, 13:12:57
Ort: Tyresö

Re: Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av ie »

Koppla pulsen till komparatorn direkt
Bra tips, det ska jag kolla.

Nej, inte 50Hz från belysning, då det blir samma i mörker. Däremot kanske 50Hz kan tas upp från något annat.
ie
EF Sponsor
Inlägg: 1375
Blev medlem: 23 oktober 2006, 13:12:57
Ort: Tyresö

Re: Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av ie »

Är den valda pinnen
på AVR'en av typ "Schmitt-trigger".
Nej, och det kan/ska den inte vara då den är kopplad till en komparator i AVR'en.

Jag har kört uppkoppling i elskåpet på natten, så inget ljus som stör. (I lab-kopplingen har jag tejpat ihop lysdiod/fototransistor med eltape, så minimalt med ljus som kan störa. Ingen skillnad om jag släcker omkring heller.)

Om jag ska ha extern buffring, så kan jag lika väl "avkoda" externt, i stället för med den inbyggda komparatorn. Hoppas slippa det :) .
ie
EF Sponsor
Inlägg: 1375
Blev medlem: 23 oktober 2006, 13:12:57
Ort: Tyresö

Re: Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av ie »

Testade att koppla ihop lysdiodspulsen med komparatoringången. Då blir läsningen rätt, dvs en läsning per puls.

Alltså ligger problemet i den externa signalen.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av sodjan »

Är alltså ingången på AVR'en uppsatt som komparator?
I så fall blir den ju väldigt känslig för brum på signalen.
Även den andra ingången (hur är den konfigurerad?) blir
känslig för brum på t.ex matningsspännigen, om det är
den som är referens till komparatorn. Man kan inte
konfigurera komparatorn med hysteres?

Du har ingen digital ingång som är schmitt-trigger?

> Alltså ligger problemet i den externa signalen.

Ja, om den bara är "tillräckligt" snabb så spelar ju
brum mindre roll.
ie
EF Sponsor
Inlägg: 1375
Blev medlem: 23 oktober 2006, 13:12:57
Ort: Tyresö

Re: Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av ie »

Ingångarna går till komparatorn och de digitala delarna är bortkopplade. Som ses på schemat i första inlägget går signalen in på AIN0. På AIN1 kopplas referenssignalen, från pot'en, som komparatorn slår om vid.

Jag har inte sett något i databladet om hysteres för komparatorn.

Tyvärr är signalen för långsam för att fångas på oscilloskopet, så jag kan inte se om det finns ev brum. Vad jag kan ana är att signalen är tämligen brant i början och ganska flack mot slutet.

Som du säger, så hade jag inte räknat med att "lite" brum skulle störa då flanken borde vara tillräckligt brant. Men det tycks tyvärr inte vara så.

EDIT: Verkar som digital input har schmittriggerfunktion. Vet dock inte om mina signaler är tillräckliga för att köra digitalt. Får testa det.
Användarvisningsbild
grym
EF Sponsor
Inlägg: 17610
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Re: Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av grym »

sådant här förutsätter man inte massa saker, man mäter med skop, rättar till det efterhand som man ser felen, svårare än så är det inte

ex lågpassfilter och liknande detta fallet
ie
EF Sponsor
Inlägg: 1375
Blev medlem: 23 oktober 2006, 13:12:57
Ort: Tyresö

Re: Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av ie »

Har som sagt inget minnesskop, så det är svårt att mäta.

Testade med digital ingång i stället för komparator och det verkar funka. Några hundra korrekta läsningar i följd nu.

Det som stör mig med denna lösning är att jag slösat bort en pot helt i onödan :)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av sodjan »

Jag noterar att komparatorerna i XMega serien har programmerbar
hysteres i två steg. Man kanske inte den AVR du har just nu.
ie
EF Sponsor
Inlägg: 1375
Blev medlem: 23 oktober 2006, 13:12:57
Ort: Tyresö

Re: Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av ie »

Kör med AVRmega328p och den har inte det vad jag kan se. Signal verkar dock tillräckligt "stark" för att kunna köra digitalt. Annars är ju fördelen med komparatorn att det är lätt att justera "arbetspunkten" för att kunna klara sig med mindre (svagare) signaler, t ex 2.5-3.3 istf 0-3.3 V (med fast omslagspunkt på ca 1.65V).

EDIT: Över 1000 korrekta mätningar i följd nu.
Användarvisningsbild
MiaM
Inlägg: 12941
Blev medlem: 6 maj 2009, 22:19:19

Re: Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av MiaM »

Brum kan finnas i det utstrålade ljuset från lysdioden. Eftersom du inte lär slakta elmätaren för att kolla hur den är byggd så kan man inte lita på något mer än att "det kommer ett blink".

I princip kanske du kan undvika en del störningar med ett RC-filter.

Enklast är väl att fixa det hela i mjukvara, en puls ska inte kunna komma tidigare än ett visst ögonblick efter senaste puls detekterats.
ie
EF Sponsor
Inlägg: 1375
Blev medlem: 23 oktober 2006, 13:12:57
Ort: Tyresö

Re: Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av ie »

Ja, RC-filter hade kanske också fungerat. Nu kan jag som tidigare nämnt utesluta elmätaren, då jag i min testuppsättning själv blinkade dioden (från AVR). Vet mao att det var "rena" pulser på dioden.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Varför "kontaktstuds" när jag tittar på elmätardiod?

Inlägg av Icecap »

Mitt förslag är samma som MiaM: Diskriminera pulserna med tid.

Är det avkänd en puls accepteras nästa inte om inte det går en viss tid innan.
Skriv svar