Sida 1 av 2

Maxbegränsare tilltid

Postat: 21 april 2017, 14:59:00
av jpzon
Hej,
jag undrar om någon har en ritning på en enkel "till-tids-begränsare" (eller vad man ska kalla det).

Jag har en arduino som styr en liten pump som ska dosera en liten mängd vätska varje dygn. Jag vill försäkra mig om att ifall arduinon hänger sig under dosering så ska pumpen max kunna gå i 30s.
Pumpen styrs via en transistor.

Re: Maxbegränsare tilltid

Postat: 21 april 2017, 15:29:43
av H.O
Har ingen ritning jag kan ge dig på rak arm men det låter som ett job för en klassisk 555 eller ett RC-nät och SR-latch (företrädesvis med schmitt-trigger på ingången).
Utgången på endera driver ett relä/halvledarrelä/transistor.

Re: Maxbegränsare tilltid

Postat: 21 april 2017, 15:51:05
av Icecap
I grunden bör man i det läge använda watchdog och interruptstyrning.
I main-loop ställer man en variabel till ett känd mönster och i en timer-interrupt med lagom hastighet.

Om variabeln är "rätt" ställer man den till ett annat värde och nollställer watchdog'en.

Om main-loop hänger sig kommer watchdog'en att nollställa µC'n vilket såklart nollställer utgången.

Men om det ska säkra mot kortsluten transistor blir det strax svårare.

Re: Maxbegränsare tilltid

Postat: 21 april 2017, 16:28:29
av Nerre
Jag håller med H.O här, RC-länk, komparator, relä är den lösning som har högst integritet.

RC-länken sätts då parallellt med pumpen, d.v.s. så länge pumpen har spänning laddas kondensatorn upp. När kondensatorn når en viss spänning så triggar komparatorn och bryter relät.

Jag skulle sätta relät med självhållande koppling på matningen till hela kretsen, har pumpen spänning i mer än 30 sekunder så bryts alltså spänningen till hela systemet och kräver manuell återställning.

Re: Maxbegränsare tilltid

Postat: 21 april 2017, 16:33:11
av Jan Almqvist
Eller en kapacitanspump som ger en negativ spänning till pumpen och som drivs med pulser från Arduinon. Om Arduinon stoppar eller om det blir kortis i någon transistor stannar motorn nästan direkt. Med några få billiga komponenter får man en väldigt säker funktion.

Re: Maxbegränsare tilltid

Postat: 21 april 2017, 16:36:44
av TomasL
Enklaste borde väl i alla fall vara en 555 kopplad som One-Shot, med den valda pulstiden (30s) eller vad det nu var.

Up'n triggar 555an vid behov.
555an driver sedan trissan och pumpen.

Re: Maxbegränsare tilltid

Postat: 21 april 2017, 16:43:12
av Nerre
Om pumpen normalt ska gå mindre än 30 sekunder funkar ju inte en oneshot på 30 sekunder.

En lösning som kräver pulser för att driva är ganska bra också, men den är inte immun mot att mjukvaran buggar och hamnar i en loop där den fortsätter skicka pulser hela tiden.

Re: Maxbegränsare tilltid

Postat: 21 april 2017, 16:54:28
av TomasL
Jodå, man kan koppla resetpinnen 555an med en pullup till ytterligare en IO-pinne, så kan man släcka 555an när man vill

Re: Maxbegränsare tilltid

Postat: 21 april 2017, 19:11:30
av Nerre
Men vad gör man om 555:an pajar och hela tiden är "på"?

Det där är egentligen ett grundläggande problem med de flesta lösningarna: Hur vet man att skyddsfunktionen är hel när den ordinarie funktionen lägger av? Skyddsfunktionen kanske går sönder först, men det märker man kanske inte så länge den ordinarie funktionen funkar som den ska.

Även lösningen med RC-länk har samma brist: Vad händer om kondingen pajar så dess läckström blir så hög att den aldrig blir fulladdad? Eller om motståndet brinner till avbrott?

Regelbunden självtest eller föreskriven regelbunden manuell test brukar man behöva i såna lägen.

Re: Maxbegränsare tilltid

Postat: 21 april 2017, 19:15:20
av TomasL
Jo det är alltid så med redundans.
Någonstans är det tillräckligt, och det får riskanalysen tala om.

Re: Maxbegränsare tilltid

Postat: 21 april 2017, 19:24:05
av SeniorLemuren
Ska pumpen aldrig gå mer än max 30 sekunder kan man väl bara låta Arduinon dra ett tidrelä som är inställt på 30 sek. med en pinne och köra pumpen genom reläet via den pinne som styr hur länge pumpen skall gå.

När pumpen gått så länge den skall så bryter Arduinon som den skall och tidreläet går sina 30 sekunder utan att pumpen går. Om inte Arduinon bryter så bryter tidreläet allt efter 30 sekunder, eller har jag fattat problemet fel?

Re: Maxbegränsare tilltid

Postat: 21 april 2017, 19:29:11
av TomasL
Det var i princip det jag föreslog med en 555a.
Tidreläer brukar inte finnas för så låga matningsspänningar, utan de ligger normalt på från 24V.

Re: Maxbegränsare tilltid

Postat: 21 april 2017, 20:05:07
av SeniorLemuren
555 visst. Med tidtrelä menar jag ett färdigt tidrelä. inte en 555 som man måste bygga ihop till ett tidrelä. t.ex Delay Switch Timer
Men det är klart att har man ett 24 volts tidrelä så kostar en Step Up Regulator 8 spänn på ebay så det är heller inga problem.

Re: Maxbegränsare tilltid

Postat: 21 april 2017, 20:22:21
av TomasL
Men man kan ju köpa en 555a för typ noll och ingenting hos Swech eller någon annan här, ett eller två motstånd, en eller två kondingar så är man i hamn, total kostnad blir runt en tia eller två, plus eventuell frakt.

Re: Maxbegränsare tilltid

Postat: 21 april 2017, 20:29:54
av Micke_s
Kör två arduinos och två reläer, låt de kommunicera mellan med ex i2c. Här kan du även isolera i2c och köra separat matning.
Nu är det två olika kretsar som ska fallera...

Reläerna kör du serie så du har två som måste dra för att pumpen ska fungera...
Uart kan du även köra...

Edit: Gör du hårdvaran rätt så kan den ena checka funktionen på reläet på den andra utan att aktivera pumpen...