Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  70 11658
Interrupts er alternativet til polling. Polling er det du gjør nå, altså har en programløkke som hele tiden sjekker på en verdi. Med interrupts så er det et "stimuli" som er direkte koblet opp mot et stykke programkode, kan man vel på en måte si. I ditt tilfelle ville det blitt slik at du har en funksjon som kjøres hver gang du får en høy på inngangen, uten at du behøver å teste på den. Da kan du gjøre utregninger og den slags i normal programgjennomgang, også pauses den gjennomgangen for å kjøre interruptfunksjonen, for eksempel kode for å inkrementere en teller, hver gang inngangen skifter fra lav til høy. Avhengig av kontrolleren kan forskjellige ting fungere som interrupts, slik som timere, innganger o.l.

Men måten du gjør det på nå funker helt fint til det du skal bruke det til.
Sitat av andpe Vis innlegg
...
Men det er fullt mulig å få det til med photodiode, -transistor eller LDR..
...
Vis hele sitatet...
Kan du gi meg et skjema på dette? Jeg har tilgang på PIN-dioder og fototransistorer og et utall Arduinoer.

LDR er ikke interessant.

Men en velprøvd krets basert på fotodiode eller -transistor uten forsterker, direkte til analoginngang til Arduino, som er følsom nok til å detektere korte blink fra en vanlig LED på noen cm avstand mottas med takk.
Sitat av capidog Vis innlegg
Men en velprøvd krets basert på fotodiode eller -transistor uten forsterker, direkte til analoginngang til Arduino, som er følsom nok til å detektere korte blink fra en vanlig LED på noen cm avstand mottas med takk.
Vis hele sitatet...
Kan du velge referansespenning selv på Arduino? Et alternativ da er jo å koble på en veldig stabil og lav referansespenning for å øke oppløsningen. Godt mulig man kan få mer retningsbestemte photodioder/-transistorer også. I tillegg ville jeg hatt et analogt lavpassfilter med relativt lav båndbredde for å minske termisk støy, samt grundig digital filtrering på kontrolleren.
Sist endret av Provo; 23. november 2009 kl. 18:59.
Sitat av Provo Vis innlegg
Kan du velge referansespenning selv på Arduino?
...
Vis hele sitatet...
Ja. Man kan velge referanse, og på denne måten gi lavere spenningstrinn pr bit, men med mindre spennvidde.

En Arduino er ikke så veldig mye mer magi enn en Atmel AVR med bootloader, et høynivåspråk og serielt (USB) grensesnitt. Fantastisk til prototyping, hvis du ikke må ha noe som krever at du skriver rett på jernet.

Opensource, er det også.

www.arduino.cc
Hehe.. glemte jo helt av Vref..
Vi kan sette referansespenningen på arduinoen til enten 5v(intern), 1,1V(intern) eller ekstern.
Hvis vi setter referansespenningen til intern 1,1v så får du 1,1V / 1024 = 10,7mV følsomhet.

Å detektere et led-blink flere centimeter unna har det aldri vært snakk om her. Det er snakk om (slik jeg ser det) å tape sensoren rett på LED'en.

1,07mV mente jeg å skrive..

Eksempel på et program som leser analogport 0 og skriver det ut til pcen via serietilkobling:

int sensorpin = 0;
int terskelverdi = 300; // terskel = ca 322mV
int pulser = 0;

void setup()
{
analogReference(internal);
Serial.begin(9600);
}

void loop() {
if (analogRead(sensorpin) >= terskelverdi) {
pulser = pulser + 1;
Serial.print(pulser);
}

}
Sikkerhetsklarert
Trådstarter
Gårsdagens resultater ble at jeg fint leser dioden med en vanlig LDR, koblet med en 15k motstand mot jord.

Neste problem er hvordan å bruke dataene fra sensor.
Jeg vil oppnå to ting med dette.
-Ha en graf som viser forbruk i y akse, og tid i x, oppløst i 1min intervaller. (for å bruke bil-analogi, jeg vil ha et speedometer, som logger fart)
-Måle totalt forbruk pr døgn, slik jeg nå gjør manuelt ved å lese av måleren hver kveld. (bil analogi igjen, jeg vil ha en turtelle som logger km stand)

Tenkte å bruke ethernetshield for å sende data til server, men er usikker på om jeg skal sende hver enkelt puls til server, og la den gjøre utregninger, eller om jeg lar utregning skje på arduinoen, og kun sende f.eks oppdatering en gang i minuttet til server. Inspill?
Du kan jo ha to arduinoer, og sende dataene trådløst via en xbee fra skapet til den andre.
En boarduino koster jo ikke mange kronene, ikke xbee heller.

Så burde du ha en funksjon som sjekker at det kun blir telt et blink hver gang led'en blinker.

I den andre arduinoen så kan du behandle dataene og ha display med "speedometer" og "tripteller".

En annen måte er jo å sette opp xbee som signalbehandler i skapet, og ha den til å lese av LED'en..

Utallige muligheter..

boolean terskel_tilstand = LOW;

void loop() {
if ((analogRead(sensorpin) >= terskelverdi) && !terskel_tilstand) {
pulser = pulser + 1;
Serial.print(pulser);
terskel_tilstand = HIGH;
}
else terskel_tilstand = LOW;

}
Sikkerhetsklarert
Trådstarter
Sitat av andpe Vis innlegg
Du kan jo ha to arduinoer, og sende dataene trådløst via en xbee fra skapet til den andre.
En boarduino koster jo ikke mange kronene, ikke xbee heller.

Så burde du ha en funksjon som sjekker at det kun blir telt et blink hver gang led'en blinker.

I den andre arduinoen så kan du behandle dataene og ha display med "speedometer" og "tripteller".

En annen måte er jo å sette opp xbee som signalbehandler i skapet, og ha den til å lese av LED'en..

Utallige muligheter..

boolean terskel_tilstand = LOW;

void loop() {
if ((analogRead(sensorpin) >= terskelverdi) && !terskel_tilstand) {
pulser = pulser + 1;
Serial.print(pulser);
terskel_tilstand = HIGH;
}
else terskel_tilstand = LOW;

}
Vis hele sitatet...
Har ikke vært borti xbee, men ser det er nevnt i flere arduion prosjekter. Skal lese meg opp litt på det.

Koden min er helt lik din, bare at jeg ikke har med noen terskelverdi.
Teller kun en puls en gang, bortsett fra når jeg forsøker med en blitz fra kamera. Da teller den to. Mulig det er så kjapt/sterkt lys, at det tar litt tid før LDR stabiliserer seg?

I den andre arduinoen så kan du behandle dataene og ha display med "speedometer" og "tripteller".
Vis hele sitatet...
Tanken var å ha "speedometer" på en lcd kun for fun. Poenget er å få sendt dataene til en server, som igjen regner ut grafer etc.

Trippteller tanken slår jeg muligens fra meg, da det blir for vanskelig å ha den gåene med 100% oppetid. Det er for mye variabler inne i bildet. (linjer til lokalserver, linjer til webhotell, batteri, etc etc) Der tar jeg nok fortsatt den manuelle jobben med å lese av måleren daglig.
Det skjer kanskje aldri hos deg, men når forbruket er lavt så lyser LED'en lengre.
Så i slike tilfeller er det greit å kun telle hvis verdien på forrige avlesning var under terskelverdien.

En boarduino koster jo "ingenting", og med den så kan du sende data serielt fra skapet over to ledninger eller via xbee til en annen arduino som kan kobles til pc.

På arduino nr 2 kan du logge forbruk, dato/klokkeslett mm og skrive det til eepromen som er innebygget i kretsen. Så hvis du vil ha dataene til excel eller annet pc-program, så kobler du bare til og leser av eeprom.

Uendelige muligheter.

For å klare deg med kun en arduino, så må du nok sette opp kretsen slik at den trigger en interrupt, ja...
Sikkerhetsklarert
Trådstarter
Sitat av andpe Vis innlegg
Det skjer kanskje aldri hos deg, men når forbruket er lavt så lyser LED'en lengre.
Så i slike tilfeller er det greit å kun telle hvis verdien på forrige avlesning var under terskelverdien.

En boarduino koster jo "ingenting", og med den så kan du sende data serielt fra skapet over to ledninger eller via xbee til en annen arduino som kan kobles til pc.

På arduino nr 2 kan du logge forbruk, dato/klokkeslett mm og skrive det til eepromen som er innebygget i kretsen. Så hvis du vil ha dataene til excel eller annet pc-program, så kobler du bare til og leser av eeprom.

Uendelige muligheter.

For å klare deg med kun en arduino, så må du nok sette opp kretsen slik at den trigger en interrupt, ja...
Vis hele sitatet...
Men om led`n lyser lenger så vil jeg fortsatt bare telle den en gang, siden forrige value må være low(Ref kodesnutten du postet). Har testet med å peke en laserpenn mot LDR, og om jeg beveger den sakte frem og tilbake så registrerer den slik som den skal.

Kan jeg ikke klare meg med kun en arduino om jeg bruker et ethernet shield/wifi shield? Ser ikke helt behovet for enda en arduino. Har ethernet i 1m avstand fra sikringsskapet.

Tanken var da å f.eks kalle en url en gang i minuttet. f.eks 192.168.1.1/reg.php?value=xxx

For så å la php sette timestamps, og legge det i db.
Jo, klart.. jeg ser for meg mitt oppsett og mine avstander, så klart det går slik du sier..

Du må da resette variablen etter hver avlesning, men det har du sikkert fikset..
Sikkerhetsklarert
Trådstarter
Sitat av andpe Vis innlegg
Jo, klart.. jeg ser for meg mitt oppsett og mine avstander, så klart det går slik du sier..

Du må da resette variablen etter hver avlesning, men det har du sikkert fikset..
Vis hele sitatet...
Hvilken variabel?

Verdien endrer seg hele tiden, la oss si jeg tar å sampler pulser i 60 sekunder, regner det ut til watt. Sender så denne verdien til server via GET.
Neste gang loopen kjøres så settes jo verdien på nytt om det var det du mente.
Sitat av Pjukern Vis innlegg
Gårsdagens resultater ble at jeg fint leser dioden med en vanlig LDR, koblet med en 15k motstand mot jord.
...
Vis hele sitatet...
Bra. Det enkleste er ofte det beste. Forslaget fikk du allerede i post #2

Men da har du i det minste fått drøftet litt rundt alternativene, hvis du skulle ha behov for lysdeteksjon i en raskere applikasjon senere.

Hva heter LDRen du har brukt?
Sikkerhetsklarert
Trådstarter
Sitat av capidog Vis innlegg
Bra. Det enkleste er ofte det beste. Forslaget fikk du allerede i post #2

Men da har du i det minste fått drøftet litt rundt alternativene, hvis du skulle ha behov for lysdeteksjon i en raskere applikasjon senere.

Hva heter LDRen du har brukt?
Vis hele sitatet...
Ja har vel egentlig fått løst det som står i topic, men kunne kanskje renamet den til "hjelp til arduiono basert strøm-teller prosjekt"

LDR`n er denne http://www.sparkfun.com/commerce/pro...oducts_id=9088
Sitat av Pjukern Vis innlegg
Vis hele sitatet...
Takker. Sparkfun har forøvrig mye annet snacks for elektronikkinteresserte.
Er du i mål med prosjektet nå?
Sikkerhetsklarert
Trådstarter
Sitat av andpe Vis innlegg
Er du i mål med prosjektet nå?
Vis hele sitatet...
Tja det blir jeg vel aldri. Venter på å få ethernet shieldet, når det kommer så må jeg kode dette som skal pushe dataene opp i en mysql db.

Men ferdig med den delen som leser av forbruket og viser det på en lcd i sikringsskapet.
▼ ... over en måned senere ... ▼
last opp noen bilder av oppsettet. jeg har nettopp bestilt meg en arduino og er litt nysjerrig på hvordan ditt anlegg ser ut =P
Sist endret av haavardgj; 2. januar 2010 kl. 21:06.
Sikkerhetsklarert
Trådstarter
Ligger en del bilder og info på bloggen min.
Alle standard 3-fasemålere måler strømmen på 2 faser, men måler spenningen på alle tre. Så hvis du går for strømtrafo-løsningen, så klarer du deg med to. Unntaket er hvis du har 400V TN-nett i huset ditt, da må strømmen på alle tre fasene måles.
Koblingsskjema for måler burde ikke være altfor vanskelig å finne på nettet.De fleste målere, ihvertfall de eldre, har faktisk koblingsskjemaet synlig på utsiden.

Unntaket er hvis du har 400V TN-nett i huset ditt, da må strømmen på alle tre fasene måles.
En annen ting er at disse strømtrafoene oftest er utformet som en ring, dvs at du må koble fra lederne i en ende for å få tredd de på.

En annen løsning er å få en elektriker til å montere en modulær seriemåler i skapet ditt. Disse har også pulsutgang som du kan benytte deg av, i tillegg til at de ikke trenger plombering siden det ikke er kraftverkets egen måler, og du allerede har en plombert måler.

For eksempel en slik :http://www.abb.no/product/no/9AAC100486.aspx

Edit: ser ut som du har fått fiksa det allerede...
Sikkerhetsklarert
Trådstarter
Takk for forslaget, men har allerede dette oppe å går

Forbruk og temp pr nå:
http://gmx.no/strom/status.php