Hallo,

Ik heb een probleem en het lukt me nog steeds niet om het voor elkaar te krijgen.
De bedoeling is dat ik een watertank heb met een magneet klep eraan, dat vult dan een fles of bekertje.

Nu meet ik bijv dat er per seconden 2cl water uit komt en aan de hand van de grootte van de emmer wil ik kunnen berekenen hoelang de klep open moet.

Op mijn rekenmachine die ik dat door de beker 25cl te delen voor de 2cl per sec. dat is 7.5 sec.
Als ik in picbasic doe 25/2 krijg ik 255 te zien.
gebruik ik dec2 dan zie ik 6..., 35

Hoe kan ik dit fatsoenlijk bereken en dit op het lcd schermpje zetten?

Het lukt me maar niet.

Mvg Lithium

ZOu 25/2 = 12 (twee shifts right) moeten worden, niet 7.5 sec.

Oh ja sorry zat met een verkeerde berekening dacht dat het 15cl was...

is inderdaad 12 maar als ik dit bereken in picbasic krijg ik een foute uitkomst...

Dit omdat je met halfe getallen werkt.
Probeer eerst maal tien te doen, dus 25 wordt 250.
Dat delen door twee, krijg je 125.
Dan X = 125 / 10, Y = 125 // 10

Print X , "," , Y
als het goed is krijg je op je scherm "12,5"

Ik kan de hoeveelheid van de emmer of beker zelf in stellen met stappen van 5 cl van min 0 tot max 100

Doe ik dat dan zie ik alleen een comma op het scherm dat komt omdat die er altijd staat de uitkomst van de berekening zie ik niet verschijnen.

Mijn code:


teller4 = teller1 * 10
            teller5 = teller4 / 2
            
            vol = teller5 / 10, half = teller5 // 10
            
            Print 1, 1, vol , "," , half

[Bericht gewijzigd door Lithium op (31%)]

De variabele eerst vermenigvuldigen met 10

 Variabele = Variabele * 10

Als de maximale waarde 25,5 of lager is dan volstaat een BYTE variabele.
Je plaatst dit als volgt op het LCD:

PRINT AT 1, 1, DEC2 Variabele / 10, ",", DEC1 Variabele, " liter"

(maximaal 25,5 liter)

=========================

Bij hoger een WORD variabele nemen.

PRINT AT 1, 1, DEC4 Variabele / 10, ",", DEC1 Variabele, " liter"

(maximaal 6553,5 liter)

=========================

Met 2 cijfers achter de komma (en dus ook een WORD variabele):

PRINT AT 1, 1, DEC3 Variabele / 100, ",", DEC2 Variabele, " liter"

(maximaal 655,35 liter)

Het lukt me nog steeds niet, ik weet niet watik fout doe...


teller4 = (teller1 / snelheidvullen)
            teller5 = (teller4 * 10)
            
            PRINT AT 1, 1, DEC3 teller5 / 100, ",", DEC2 teller5, " liter"

[Bericht gewijzigd door Lithium op (61%)]

Print dan gewoon eens alle tussenstappen afzonderlijk. Dan kun je simpel nagaan waar het fout gaat.

Geef eens aan wat de waarde zijn van de variabelen. Volgens mij gaat het fout bij

teller4 = (teller1 / snelheidvullen)

Hier komt geen heel getal uit denk ik

wat ZX6RR zegt, maak van je print regel eens:

PRINT AT 1, 1, DEC3 teller4, " ", DEC3 teller1, " ", DEC3 enz enz enz

teller1 kan verschillen van 0 tot 100
en snelheidvullen is 2

Je kan met knoppen de stand van 0 tot 100 instellen met stapjes van 5.

Dat deel je door die snelheid en dat getal zegt dan hoelang de magneet klep open moet blijven.

heb je 'teller5' wel als WORD. Want als 'teller1' > 52 dan is 'teller5' > 250
Je moet eerst 'teller1' maal 10 doen en niet 'teller4'

Het makkelijkste is, om alle variabelen op je display te zetten en dan kijken welke niet klopt.

[Bericht gewijzigd door marcob op (15%)]

Ik heb ze inderdaad als word gezet.
Ik zal maandag even kijken want dan zie ik mijn programmeer spullen weer