Ny ide vattenbyte

Robot, CNC, Pneumatik, Hydraulik, mm
E Kafeman
Inlägg: 3238
Blev medlem: 29 april 2012, 18:06:22

Re: Ny ide vattenbyte

Inlägg av E Kafeman »

Flödesschema är en utmärkt ingång för den ovana programmeraren att komma in i vilken typ av tänk som kan genomföras på programmerings-nivå, oavsett programmerings-språk.
Flödes-schema kan dessutom vara något som TS redan har erfarenhet av då det förekommer inom många yrkes-områden som inte har något alls med dator-programmering att göra, såsom bemanningslistor, beslutsprocesser mm. Inom industrin är det ett vanligt kvalitets-säkringsverktyg.
Vad somliga kanske inte känner till är att man kan köra in ett fungerande flödes-diagram direkt in i Arduinon utan att lära sej någon programkod alls. Här kan man läsa mer om den biten. Tveksamt om man vill göra så, men det går.
För programstruktur på industrinivå krävs ofta att den definieras i någon branch-standardiserad flödesstruktur, t.ex. UML som främst drivs av IBM, NEC och några fler.
Även här finns kompilatorer som översätter UML flödes-scheman direkt till C++ m.fl. språk.

Ett någorlunda genomtänkt uppritat program-flöde, kan relativt enkelt översättas till några satser "if..then..else" och någon loop på ett sätt som även nybörjaren inom programmering snabbt kan få grepp om.
Att börja med att skriva "if" direkt i källkoden utan att ha någon nedskriven planering på fortsättningen är inte bästa starten som nybörjare.

Normalt är nybörjar-gången för Arduino att man modifierar koden för att blinka en lysdiod i olika blinkmönster och sedan bygger på ytterligare erfarenhet i små steg.
I detta fallet är det lite mer direkt från kunskapsnivå noll till pang på rödbetan att styra och reglera sekvenser av händelser som kan ge många olika utfall.
Ska en nybörjare ha en chans till att åstadkomma något vettigt i en sådan situation är en planering som ger en grund-förståelse och fungerande stomme närmast ett krav och definitivt underlättande för TS. Möjligen underlättar det om någon godhjärtat plitar ihop hela koden åt TS så slipper han det helt.
OBS att det inte på något sätt menas nedsättande med "nybörjare" utan är mera att man ännu inte är mottaglig för det lite speciella program-tänket. Lite som att lära sej cykla, när det väl sitter är det enkelt. Har man väl fått förståelsen för det kantiga tänket "if..else" även måste hanterar fallen när man vill ha "lagom" av något så blir det lättare att förstå grunderna i program-flöden oavsett vilket språk det sedan ska skrivas i. Funktionsflöden med symboliska block ger nybörjaren en mjukstart samtidigt som flödes-scheman nästan är viktigare än själva programkoden i större projekt eller kodning med höga funktionalitetskrav, så det är ett bra verktyg för amatörer som vill få till bra kod och ett nödvändigt villkor för somliga yrkes-programmerare.

Att hantera även de lite oväntade händelserna som kan uppstå i ett datorprogram, kan man lära sej behovet av den hårda vägen.
Alternativt, det är ofta simpelt att för varje sensor-input analysera om värdet är rimligt, innan det används för att styra händelser. Sådant slarvas det med mycket på "amatör-sidan" men är inom andra områden en viktig bit av programmeringen.
Steget ovan, två helt skilda obetydliga sensor-avvikelser, kan tillsammans tyda på ett allvarligt problem som lätt missas om man inte i förväg förutsett scenariot i flödes-schemat.

Ingen mjukvara är perfekt eller löser alla problem-scenarion. Att komplettera mjukvarufunktion med funktion i hårdvara såsom bräddavlopp och pump-begränsningar är helt i sin ordning och är precis så man gör med apparater för att skapa säkerhet utöver den säkerhet man kan få "gratis" utfört i datorprogrammet i allt från enkla processorstyrda batteriladdare till stora NC-verktyg genom mekaniska berörings-skydd, eller mekaniskt utföra laddaren så att det inte går ansluta felvända batterier, trots att datorprogrammet kanske också analyserar polaritet innan laddning påbörjas.
Om yttre omständighet tillför funktion, så ska den också dokumenteras i flödes-schemat. Kan verka lite märkligt, men det finns åtskilliga händelser som visar hur fel det kan gå om den inte finns med.

Att nybörjaren lyckas till fullo nyttja ingående data för att höja drift och funktions-säkerhet och göra logiken 100% förutsedd är inte troligt, men medvetenhet om att man kan gå tillbaka till flödesdiagrammet för att se varför saker inte blev 100% vattentät logik från början är till stor hjälp att i efterhand fixa problem, om man fått det inbankat från början, att det är en väsentlig del av programmets dokumentation som bör utföras så väl att det verkligen överensstämmer med den kod man skrev. Det är omöjligt att skapa samma inblick i programmets funktion eller evt. brister genom att bara titta på källkoden, även om den är bra kommenterad direkt i koden.
Att god planering ger totalt den kortaste utvecklingstiden och tydligt dokumenterade och väl förutsedda flöden minskar buggar är knappast nytt och bör tilltala både erfarna programmerare såväl som andra mindre erfarna.

Skulle jag ge råd till TS, så är det att börja med att köpa ett Arduino-kit och köra första program-exemplet, att få en lysdiod att blinka. Det är en aha-upplevelse om man aldrig gjort det förr och behöver ingen planering eller ytterligare hårdvara, förutom en dator med USB-port. Lysdioden sitter troligen redan på kretskortet.
Fortsätt med t.ex. programkod för tidsstyrd multifärg lysdiods-belysning till akvariet som knappast har några större följder om man missar lite i programfunktionen, men ger insikt i behovet av planering för att kunna åstadkomma driftsäker tydlig och välfungerande program-struktur, som dessutom underlättar när man vill bygga ut med fler funktioner efterhand.

Somliga säjer att planering är överflödigt, man löser problemen allt eftersom. Ja det går ta sej fram den vägen om man nöjer sej med enklare självskrivna funktioner, har tid med svår-debuggad tveksam logik och undviker ge sej på att programmera något drifts-kritiskt. Kanske får en och annan svårspårad programkrasch också accepteras, då det är allt för komplicerat att leta efter buggar som visserligen kan vara rätt sett ur ren program-syntax men har tveksam logik, såsom "if kettle level == 0" som troligen oftast kommer fungera men ibland, när det bara finns en minimal mängd vatten i kannan, kan få förödande konsekvenser.

Vill man rita flödesdiagram direkt i datorn, se denna intron till ett gratis-program som hanterar bl.a. UML och som är ytterst enkelt att använda.
Det är mest om jobbet kräver det som jag själv skriver flödesscheman i datorn, men väldigt ofta på vanligt rutat papper, då man alltid hittar saker man annars missat även för relativt enkla program. Huvudflödena är lätta men det är det oväntade som kan vara svårt att förutse fulla effekten av utan analys av flödes-schema.

På grund av olika motbud är kanske TS villrådig, ska han sätta sej med penna och papper och skriva i klartext vilka funktioner och beslut datorprogrammet ska utföra på ett sådant sätt att det sedan kan översättas till tydlig och entydig datorkod, eller ska han hoppa direkt in i skrivandet av Arduino-koden och se om akvariestyrningen blir som han tänkt, utan föregående programmeringserfarenhet?
Skriva flödes-schema för några givare, en manöverpanel, en ventil och en pump, och kolla om logiken håller, det är kanske förlegat och overkill i Arduino-mljö som man hanterar snabbt och enkelt utan bekymmer om struktur?
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Ny ide vattenbyte

Inlägg av Icecap »

Lasp: när TS anger att bytet ska ske på ett givet tidpunkt på dagen/veckan ska det till någon form av tidräkning. Hade det varit et system som körde på no-break power ville en simpel körtidsräknare vara OK men inte i den nuvarande konfiguration.

solvindvatten: Det finns system till detta - men de gör inte helt som du vill. Detta är ett helt OK tänk, jag gör det själv mycket.

Men just nu ser jag inget som de inte kan ge, du har alltså några funktionskrav som inte är specificerat. Och detta är just vad du ska definiera i din projektbeskrivning. Igen: inte för MIN skull men för att DU vet vad du ska göra och inte missar något.

Men klura ut hur du vill göra med sensorer, ventiler osv. först, sedan löser resten sig ganska säkert.

Om vi tar exemplet med en hävert-pump: hur säkrar man sig att det inte är någon blockering så att vattnet inte strömmar ut? Eller strömmar långsammare?
Utan blockering kan utloppet ta X sekunder - så man väntar i t.ex. 1,2 * X sekunder, då ska saken ju vara biff och det kan fyllas på vatten - men om det strömmar långsammare blir detta ju fel. Hur ska det upptäckas? Hur ska det larmas/varnas?

Om det t.ex. strömmar långsammare men ändå strömmar är det ju läge ett sätta en varning: "något rör ska rengöras men det är ingen panik - än".

Jag vill inte måla upp ett skräckscenario men med rätt övervakning och kontroll kan man få et mycket stabilt system som kör utan ingrepp (vilket jag förstår är ditt mål) och bara varnar/larmar om något går fel.

När detta är tänkt ut kommer allt detta med meny-system och där finns det mycket att lära - fast det är mycket enkelt i grunden.

Min "standard" är 4 knappar: 'Meny', '+', '-' och 'OK'. Man kan minska bort en knapp vid att göra "långt tryck" på 'Meny' till 'OK'.

Varje tryck på 'Meny' går till nästa värde som ska kollas/ställas, såklart i en cirkel: kommer man till toppen är nästa steg det första.
Man kan sedan ändra värdet man är vid med '+' hhv. '-' och spara det i minnet med 'OK'. Jag använder EEPROM till att spara i, jag vill ju alltid att det ska vara "permanent".

Varje tryck på 'Meny' kommer att återställa de värde man lämnar med det som är sparat "permanent", man kan alltså flippra med ett värde för att testa något men om man INTE trycker på 'OK' innan man trycker på 'Meny' kommer det ursprungliga värdet att återställas - man kan alltså ångra sig enkelt.

I den styrning du vill bygga lär du bara behöva ställa värden som styrningen ska jobba med och evt. ha en punkt med "kör/kör inte". Detta kan göras on-the-fly om du säkrar att det inte kan vara helt knasiga värden i inställningarna, sedan kan du fintrimma dom.

Jag föredrar att ha regleringsdelen i en timer-interrupt, då kan jag låta main-loop ta hand om menysystem osv. medan regleringen kör på utan avbrott i bakgrunden. Skulle main-loop låsa sig lite är det utan betydelse för regleringen.

Sedan - om det är många styrningar som ska jobba - kan det vara värd att koppla på en seriell port och ställa in parameter den vägen. Då kan systemet kolla för varningar och larm centralt också. Kanske lite överkurs till en början - men en RS485 drivkrets är en del billigare än 4 knappar + LCD och har man 3+ styrningar betalar de nog en USB-RS485 dongel.
Senast redigerad av Icecap 28 maj 2017, 10:56:21, redigerad totalt 1 gång.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45174
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Ny ide vattenbyte

Inlägg av TomasL »

solvindvatten skrev:TomasL: om du läser längre upp i tråden så skriver jag just det att det finns enkla och billiga helt mekaniska system som löser problemet
men inte på det sättet som jag vill.

Kan vi sluta diskutera det som inte har med tråden att göra?
Så kan jag försöka fokusera på det i stället.
Nja, det ingår ju sas.
Jag har personligen en aversion mot att överkomplicera det hela KISS och OCCAMS rakblad är det bästa man kan jobba med.
Överkomplicerade saker tenderar alltid att gå åt helsike.
O'Tooles lag beskriver det hela mycket väl "Murphy was too optimistic"

Oavsett vilket.
Ta ett papper, skriv ned alla funktioner du vill ha, och hur de skall bete sig.

Därefter skall du skriva ned alla fel som kan hända, även sådana som är synnerligen otänkbara eller osannolika.
Därefter bearbetar du varje enskillt fel med en fungerande lösning/åtgärd (fortfarande med papper och penna).
Därefter upprepar du processen ett par gånger.

Först därefter kan du börja fundera på att realisera det fysiskt och i kod.
Användarvisningsbild
hawkan
Inlägg: 2585
Blev medlem: 14 augusti 2011, 10:27:40

Re: Ny ide vattenbyte

Inlägg av hawkan »

solvindvatten skrev:6 st knappar ska även vara med

Tror ni att detta projekt är lämpligt/möjligt att göra med en arduino?
Om man ska svara på just denna frågan så är svaret: Ja.
Du har ju visat logiken du vill ha, bara att programmera upp det.

Sen blir säkert rätt mycket jobb med givare, display och tidhållning och sånt. Enklast där är väl att hitta en tutorial eller referenskod, finns massor av sånt för arduino, och utgå från det. Börja smått och bygg vidare. Du lär dej massor på vägen.

Om jag skulle gjort en sån grejja hade jag nog fått lägga krutet på
- givarna, hur koppla in de och få in hantera värden till koden
- knapparnas input och hur lägga upp programmeringen för dessa. Finns det olika lägen så knapparna betyder olika beroende på tidigare knapptryck. Sånt här brukar alltid ta en massa tid.
- displayen om det skulle vara en, hur lägga upp informationen och ska innehållet matchas med knapprtyckningar, inte svårt men tid tar det
- tidhållning, finns skitbilliga gps-moduler som ger rätt tid och har inbyggt batteri som håller tiden bra i flera månader. Men har du inte gps-mottagning t ex djupt ner i källaren får du hitta på annat.

Typiskt arduino-projekt skulle jag säga. Räkna igenom hur många inputs och outputs du behöver och köp hårdvara som ger dej det, alltså troligen inte den allra minsta arduinon.
Glattnos
Inlägg: 2972
Blev medlem: 29 oktober 2009, 20:01:18

Re: Ny ide vattenbyte

Inlägg av Glattnos »

Jag känner igen mig lite i TS, jag är amatör men när jag var total nybörjare så hade jag idéer som jag ville göra för att lära mig programmera. Jag hoppade glatt in på forumet och frågade saker, blev dock lite besviken ibland när folk sa att jag ställde fel frågor och inte talade om vad jag ville göra, när jag tyckte att jag precis ställt frågan jag ville ha svar på och visste precis vad jag ville göra. Jag gnetade på och följde(ibland motvilligt) råden jag fick samtidigt som jag försökte ta genvägar på egen hand. Det jag lärde mig av den tiden var att i förmodligen 95% av fallen där folk påstod att jag ställde fel frågor eller inte konkret kunde specificera vad jag ville göra, så hade dom rätt och den bästa genvägen är att fort komma in på rätt spår eftersom alla andra genvägar är en stor chansning som man riskerar att falla på längre fram.

I denna tråd verkar vissa tro att TS vill lösa ett problem(regelbundet byta vatten i akvariet) och vissa verkar tro att TS vill lära sig något(genom att göra ett projekt). Eftersom projektet inte nödvändigtvis är bästa lösningen på problemet så måste TS ta ställning till vilket som är viktigast innan folk kan ge bra råd.
När jag började med elektronik så var nog mitt störta problem just detta att jag trodde att jag skulle lösa problem på ett specifikt sätt redan innan jag tänkt igenom det hela i detalj. Numera ser jag ofta två vägar när jag vill göra något projekt. Lösa problem eller lära mig nått nytt - dessa har oftast två helt olika arbetsspår.

Om jag var i TS läge idag och ville lära mig något samtidigt som jag bara kände mig motiverad om det involverade nått jag var intresserad av(tex. mitt akvarium). Då skulle jag ta det i mindre steg och börja med att försöka styra en pump med en Arduino och få den att pumpa bestämda mängder vatten t.ex. mellan två hinkar ev. med hjälp av en flödesmätare. Då hade jag fått en känsla för hur det fungerar och skaffat mig kunskaper som jag har nytta av när jag ska göra det riktiga systemet.
solvindvatten
Inlägg: 86
Blev medlem: 18 november 2013, 22:54:34
Ort: Göteborg

Re: Ny ide vattenbyte

Inlägg av solvindvatten »

Nu blir jag lite gladare :) massa konstruktiv kritik och hjälp från E Kafeman, Icecap, TomasL, hawkan och Glattnos.

Jag försöker suga in alla tips och råd ni ger mig tack.

Först tänkte jag förklara lite saker som kommit upp i tråden.

Det Glattnos tar upp om det är primärt att lösa problem eller lära mig något så svarar jag definitivt att jag vill lära mig, men det känns betydligt mer motiverande att göra ett projekt som kommer bli använt.

En annan sak är att jag vill förklara vad jag menar med automatiskt vattenbyte. Jag menar inte att jag startar systemet går därifrån och kommer tillbaka om ett år, de allra flesta vattenbyten kommer antagligen ske när jag är hemma och antagligen sitter i närheten vid datan, tv eller kollar i akvariumet. Men det ska även fungera för de gånger jag är på semester 2 veckor eller inte är hemma för den delen. Akvariumet står i källarplan med klinker och stenväggar men jag vill ändå ha ett stabilt system som jag kan lita på. Naturligtvis kommer jag vilja övervaka att det fungerar ganska lång tid innan jag vågar lämna det själv.

Magnus_K du har helt rätt det är även ett ganska vanligt system, kräver dock avlopp i närheten och har även det vissa risker men en trycksänkare och droppmunstycke plus avrinning får man för under 500 kr. tyvärr ingen utmaning och fyller inte riktigt den funktionen jag vill ha.

E Kafeman har jag förstått det rätt att det jag gjort i paint är ett flödesshema men inte tillräckligt detaljerat och saknar om något går fel?

Icecap jag ska försöka göra en projektbeskrivning i veckan

TomasL du har rätt men funktionen blir inte riktigt den jag är ute efter

hawkan förstår jag dig rätt att du i stället råder mig att försöka programmera utifrån den paint förloppet jag postade?

Glattnos du förstår mig exakt verkar det som väl skrivet och tipset att börja med en del av projektet kanske inte är så dumt ?


Hummn massa goda råd och tips svårt att följa alla på en gång men jag ska se om jag 1 kan göra en projektbeskrivning (om någon har ett exempel vore jag glad o se) 2 fundera på att skala ner det och kanske få min arduino att endast fylla x antal liter vatten när jag trycker på en knapp. Vad tycker ni om det?

Jag har en arduino (tack Lasp) , labbplatta knappar display flödesmätare och två ventiler NC kommer i veckan från ebay.
Användarvisningsbild
hawkan
Inlägg: 2585
Blev medlem: 14 augusti 2011, 10:27:40

Re: Ny ide vattenbyte

Inlägg av hawkan »

Ja varför inte? Om du känner att det är tillräckligt för att systemet ska göra det du vill så go ahead. Men det är olika på folk, en del klarar sej med övergripande planer, andra behöver mer detaljerade planer inget är mer rätt än det andra tycker jag utan man väljer den nivå som passar. Man kommer oavsett att behöva grottas med en massa detaljer när man kommer till programmeringen. Den övergripande funktionen verkar inte jättekrånglig, men jag tror det kommer att bli mer utmanande att få till programmeringen och eventuell hårdvara så att flödesmätare, pumpar mm går att läsa av och manövrera. När det går så du nästan in hamn. Ja, ska du ha ett användargränssnitt med menyer och sådant tar detta lätt en hel del tid, har kanske mer med programmeringsteknik för användargränssnitt att göra än själva funktionen du är ute efter. Då behövs det en del eftertanke innan man kör igång med den programmeringen.
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Ny ide vattenbyte

Inlägg av Lennart Aspenryd »

Det kanske blir en del signaler som skall ut och in!
Så en Arduino Mega ligger här för transport i veckan.
Då har du möjlighet att ha en kör miljö och en labmiljö.
E Kafeman
Inlägg: 3238
Blev medlem: 29 april 2012, 18:06:22

Re: Ny ide vattenbyte

Inlägg av E Kafeman »

solvindvatten skrev:E Kafeman har jag förstått det rätt att det jag gjort i paint är ett flödesshema men inte tillräckligt detaljerat och saknar om något går fel?
Nej det fanns inget flödesschema.
Ett flödes-schema är i sin enklaste form en serie med besluts-rutor och funktions-rutor där något utförs.
Från besluts-rutan värderas de värden som kommer in till denna rutan så att datorn kan fatta exakt beslut baserat på denna informationen.
En funktions-ruta kan aktivera annan programkod eller starta inhämtning av data typ givare/knapptryck.
"Inget knapptryck", är också data, då programmet endast vet om du tryckt in knappen genom att ständigt avläsa denna, samtidigt som den gör allt annat.
Finns andra lösningar, typ interrupt, men det är överkurs än så länge.
Hur flödesschemat ser ut vet endast den som vet vad som ska utföras och vad som finns i form av in och utfunktioner.
Infunktioner är typ knappar och givare. Utfunktioner är typ pumpar och lysdioder.
Jag kan inte ge dej flödes-schemat men gissar att något sådant här kan vara en del av det du vill utföra:
akvarium-demo.jpg
Denna har bara enkla ja eller nej ut från beslutsrutorna samt endast två funktioner. Flödet blir enkelt att senare översätta till programkod.
I verkligheten finns kanske en massa andra saker som du också vill ska utföras, och för det är det bara att bygga på med nya rutor och nya flöden.
Håll logiken strikt, gör tydliga besluts-vägar och funktionsrutor.

Då jag nu själv tittar på flödet ser jag att det finns en allvarlig miss. Det är att funktion för att stoppa pumpen innan den går till påfyllningen saknas. Pumpen kommer fortsätta gå i all evinnerlighet. Det är lätt fixat genom att skapa en ruta [Stoppa pumpen] och är fördelen av att studera flöden på detta sätt, att man lätt ser logiska missar.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Ny ide vattenbyte

Inlägg av Icecap »

Sedan får jag inflika att flödesscheman är guld värda, just för att kunde fånga dessa dumheter som SKER då det ju är människor inblandat.

Men man MÅSTE inte rita dom! Det viktiga är att bena upp vilka funktioner som ska finnas och sedan beskriva dom tydligt.

När jag gör ett nytt projekt skriver jag en beskrivning i källkoden (nästan alltid programmering inblandad) för det övergripande.

Sedan lägger jag in skelettet till de viktiga rutiner och skriver där vad de ska göra, vilka data de får och hur de ska svara tillbaka - om de ska. På det vis ser jag snabbt om vissa värden ska överföras, hur de ska sparas osv.

När alla dessa delar är klar kan jag börja skriva programmet.

Är det en "ny" sensor man inte har jobbat med innan och kan ut och in: TESTA! Lek, se att man får de värden som behövs.
Är det en "ny" utgångsstyrning man inte är väl förtrogen med: TESTA!

Gör detta för alla ingående delar, när man har den delen klar har man ett system som stabilt kommunicerar med sensorer och styr utgångar - resten är enkelt.

Sedan kan man påstå att detta projekt är enkelt eller avancerat, det är i grunden utan betydelse, det viktiga är att du kan lita på input och output och att du sedan gör rätt sekvens.

Det har ju hänt att någon har skrivit här och rivit sig i håret för att ett system är instabilt/gör fel utan någon vettig anledning. Efter schemagranskning och kort visar det sig att det t.ex. inte är någon avkoppling som helst, efter att det blir kastat på blir allt stabilt till tusan.

Att skapa ett stabilt program är inte helt enkelt - men att lägga till instabila/tveksamma data pga. kommunikationsfel med sensorer osv. är definitivt ingen hjälp!

Så bygg upp i steg, testa de olika saker och snart får du ett väl genomtestat system som du kan lita på.

Och ja, visst kommer du att övervaka det mycket och väl, du kommer ganska säkert också att hitta buggar/oväntade features - men efter ett tag har du ett system som fungerar tillförlitligt på ett sätt som ger dig möjlighet att lämna det ensamt ett tag.
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Ny ide vattenbyte

Inlägg av Lennart Aspenryd »

Skönt, efter ett par bra inlägg känns det som om TS kan få en hint om utstakad väg.
Bryt ut i block, testa, verifiera! Gå vidare.
solvindvatten
Inlägg: 86
Blev medlem: 18 november 2013, 22:54:34
Ort: Göteborg

Re: Ny ide vattenbyte

Inlägg av solvindvatten »

Nu ska vi se om jag fattat något eller inte :)

Projektbeskrivning:

Pumpa 10 Liter
När en knapp trycks ner ska en pump pumpa 10 liter vatten från en tank till en annan. När detta skett ska pumpen stanna och vara beredd på att göra samma sak igen.
Hårdvara:
Arduino uno
flödesmätare yf-s201
pump akvariepump ca 300L/h 230V
tryckknapp återfjädrande NO
någon form av 230v relä
plus slangar kopplingar och tankar

Flödesschema:
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
kodar-holger
EF Sponsor
Inlägg: 916
Blev medlem: 26 maj 2014, 12:54:35
Ort: Karlskoga

Re: Ny ide vattenbyte

Inlägg av kodar-holger »

Kontrollfråga:

Vad händer om knappen fortfarande är intryckt när du är färdig med "stoppa pump". Är det vad du vill skall hända?
E Kafeman
Inlägg: 3238
Blev medlem: 29 april 2012, 18:06:22

Re: Ny ide vattenbyte

Inlägg av E Kafeman »

Jodå, du har nog fattat detta.

Det saknas ett formellt avslut på funktionen, men det är bagatell i sammanhanget.
Ett avslut är nödvändigt för att kunna släppa datorn fri för andra program-flöden.
Som kodar-holger påpekar kan logiken ändras allt eftersom vad du vill ska hända.

Förmodligen är flödesmätaren i praktiken något man lägger i en egen funktionsruta eftersom den inte ger något absolut räknevärde utan bara pulser.
Därför behövs en funktion som läser in om ny puls inträffar, och då uppdaterar internt räknevärde.

För att inte fastna i evighetsloop bör man kolla om flödesmätarens räknevärde ökar i förväntad takt.
Det är ju möjligt att det bara fanns totalt 9 liter att pumpa och man riskerar bränna pumpen på evig tom-körning, men det är funktionalitet som du lätt nu kan lägga till.

En van programmerare som får detta flödes-schema översätter det till Arduino-kod på några minuter.
Räkna dock med lite grå hår innan Arduinon svalt din första kodning då den är petig på att saker skrivs in på ett specifikt sätt.

I princip är det du ritat ett fullt fungerade program-flöde som lätt kan kodas för valfritt datorspråk och som kan köras på vilken dator som helst, så det är bara att gratulera till ditt första dator-program, även om det bara är torrsim än så länge.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Ny ide vattenbyte

Inlägg av Magnus_K »

solvindvatten skrev:Magnus_K du har helt rätt det är även ett ganska vanligt system, kräver dock avlopp i närheten och har även det vissa risker men en trycksänkare och droppmunstycke plus avrinning får man för under 500 kr. tyvärr ingen utmaning och fyller inte riktigt den funktionen jag vill ha.
Då är jag helt med :tumupp:

Som precis urkass på att programmera så vill jag ändå nog säga att du är på rätt spår. Vad jag märkt (den hårda vägen) är att ju bättre "underlag" jag har inför programmeringen, ju lättare går det. Ett flödesschema är en mycket bra start!
Skriv svar