Hjälp med avstudsare.
Hjälp med avstudsare.
Jag har fått fart på tidmätningen av matningen av pellets. Det verkar som om min microbrytare studsar eftersom jag får värden ibland som ligger på 0ms. Alltså: Jag behöver få till en avstudsare. Tips och idéer mottages tacksamt!
- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56
- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56
- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56
Jag har testat "RC-avstudsning" en gång utan någon vidare framgång, hade 100nF och 100k pullups om jag minns rätt men det hjälpte ändå knappt.
Fixade det med mjukvara istället, som vanligt.
Fast, med tillräckligt stor RC-konstant i fårhållande till hur mycket studs det är i brytarna så borde det ju funka...
Fixade det med mjukvara istället, som vanligt.
Fast, med tillräckligt stor RC-konstant i fårhållande till hur mycket studs det är i brytarna så borde det ju funka...
Håller med Icecap
Studsande brytare fixar man med en konding på 1 uF drar jag till med.
Parallellporten håller inte 5 v nuförtiden ligger för det mesta på 3.8-4.5 v
Parallellporten håller inte 5 v nuförtiden ligger för det mesta på 3.8-4.5 v
100nF/100K är en lång tidskonstant när det rör avstutsning.
Pull-up/down vet du bäst själv: hur är mikrobrytarn kopplat?
Som växlande?
Som dragande till +? (behöver en pull-down)
Eller dragande till -? (behöver en pull-up)
Det är egentligen så himla enkelt: När brytaren "släpper" behövs ofta ett motstånd för att pinnen ska byta läge. Därav "pull-x" = "dra andra hållet".
Om brytaren matar med + när den är aktiv behövs ett motstånd till GND eller vice-versa.
Kondensatorn till avstutsning monteras sedan mellan GND och signalledaren.
Pull-up/down vet du bäst själv: hur är mikrobrytarn kopplat?
Som växlande?
Som dragande till +? (behöver en pull-down)
Eller dragande till -? (behöver en pull-up)
Det är egentligen så himla enkelt: När brytaren "släpper" behövs ofta ett motstånd för att pinnen ska byta läge. Därav "pull-x" = "dra andra hållet".
Om brytaren matar med + när den är aktiv behövs ett motstånd till GND eller vice-versa.
Kondensatorn till avstutsning monteras sedan mellan GND och signalledaren.
Är inte så glad åt att göra det i mjukvaran eftersom jag då får en fördöjning. Även om den bara är på, låt säga 5ms så ackumuleras den tiden i systemet och skapar ett felaktigt utvärde. Iofs kan man ju kompensera även detta i mjukvaran som lägger på 5ms på tiden ... Det hela är kopplat på så vis att när microbrytaren är TILL så startar en timer som stoppar när brytaren ställer sig i FRÅN. Det är vid tillslaget som problemet uppstår. En vanlig VB Timer pollar porten cirka 1000 ggr/sekund och när pinne 13 går hög börjar programmet räkna millisekunder via ett API-anrop. Värdet lagras och ackumuleras i 60 minuter då det skickas till en SQL server för permanent lagring, härifrån kan man sedan utföra beräkningar om förbrukning, effekt osv. Jag vill inte att tidsvärdet som är så kort som <800 ms och upp till 30 sekunder ska börja "driva". Hoppas jag förklarat vad jag är ute efter.
- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56
Jag har svårt att köpa att delayen skulle ackumuleras. Nu vet jag inte exakt hur ditt system ser ut, men antag att du ackumulerar mättider som varierar mellan 800ms och 30 sek som nämnde. I värsta fall kommer delayen på 5ms att utgöra 0,6% av den totala mätningen.
Detta fel kommer inte att ackumuleras om du summerar mätningarna, utan det totala summerade felet kommer att fortsätta vara maximalt 0,6% av den totala summerade mätta tiden.
Jag vet inte om jag förstått ditt system rätt, annars får du säga till.
Om du inte kan leva med delayen är det ju bara att addera 5ms till varje uppmätt tid för att kompensera för delayen.
Detta fel kommer inte att ackumuleras om du summerar mätningarna, utan det totala summerade felet kommer att fortsätta vara maximalt 0,6% av den totala summerade mätta tiden.
Jag vet inte om jag förstått ditt system rätt, annars får du säga till.
Om du inte kan leva med delayen är det ju bara att addera 5ms till varje uppmätt tid för att kompensera för delayen.
Nja, jag misstänker att du har rätt ... speciellt med tanke på att alltihop nollställs varje timme. Ska kolla lite hur systemet uppför sig. Sedan kommer jag till den delikata uppgiften att få fram hur mycket pellets det kommer ur skruven vid körning och då gäller det att köra skruven manuellt och släppa pelletsen i en hink och sedan väga den. Man får nog försöka köra skruven så "autentiskt" som möjligt eftersom jag tvivlar på att den går helt jämnt (fjädrar lite till exempel). På sikt kan man ju kallibrera om det hela genom att jämföra den faktiska förbrukningen med det som mitt system visar.
Du, om du vill kan jag göra ett ex. av den flispannastyrning jag har sedan länge. Den har LCD, knapper till att ställa alla tider, fläkthastighet osv och styrs av en termostat men kan programmeras om till att styras med NTC.
Man kan ställa:
Matningstid, 2 st, hög och låg temp.
Väntetid mellan matningerna, 2 st, hög och låg temp.
Fläkthastighet, 2 st, hög och låg temp.
Fläkttid, 2 st, hög och låg temp.
Samt får översikt på LCD-modulen vid normal drift.
Man kan ställa:
Matningstid, 2 st, hög och låg temp.
Väntetid mellan matningerna, 2 st, hög och låg temp.
Fläkthastighet, 2 st, hög och låg temp.
Fläkttid, 2 st, hög och låg temp.
Samt får översikt på LCD-modulen vid normal drift.