Ik ben met een projektje bezig om een "lopende" grafiek te maken op een 128x64 glcd. Nu weet ik niet echt wat de beste manier is om dit aan te pakken in picbasic.

Het is de bedoeling dat ik middels een optocoupler de draaischijf van de kwh/meter uitlees en dit "realtime" weergeef in een puntengrafiek die langzaam (zeg om de 10 seconden) verschuift.

Heeft iemand al eens eerder zo'n grafiek in picbasic geprogrammeerd en hoe kan ik het beste te werk gaan?

Maak daar dan ook een flow diagram van voordat je probeert om een programma te schrijven.
In principe is het als volgt.
Tel de pulzen van de kWh meter per seconde of per 10 seconden. Een hogere tijd geeft een nauwkeuriger uitlezen. Zeker in de nacht als de schijf nog maar langzaam draait.
Ze deze waarde om naar een kWh waarde met de gegevens op de kWh meter.
Sla die op in een array of geheugen locatie op plaats nr 1.
De volgende waarde komt dan op 2 enz.
Op gewenst interval roep je alle geheugen loacaties op en schrijft deze naar het display.

Als je aan het einde van je geheugenlocaties bent ben je ook aan het einde van je display. Je kan maar op 2 manieren verder
1
Door alle geheugen locaties 1 omlaag te scuiven zodat je op de laats weer een waarde kan schrijven.
2
Door er een ring geheugen van te maken en je start adres met 1 te verhogen. De nieuwe gemeten waarde komt dan op plek 1 en je begint met uitlezen naar het display vanaf 2.

Simpel toch

ik heb dat een keer gemaakt. Kijk maar wat je hiermee kan:


For x = 0 To 127    ;vorige grafiek weghalen
        UnPlot nieuw[x], x
    Next x   
    For x = 1 To 127    ;nieuw plaats naar links shiften
       nieuw[x-1] = nieuw[x]
    Next x              
    
    ;nieuwe waarde in laatste plaats van nieuw zetten
    nieuw[127] = ((waardebuffer - 10) * 13)   ;op het display een bereik van 10 tot 15V
    nieuw[127] = 64 - nieuw[127]    ;omdraaien  omdat pixel 1 boven zit
 
    For x = 0 To 127    ;nieuwe tekenen
       Plot nieuw[x], x
    Next x

Het idee is een array die getekend wordt op het scherm. Als er nieuwe data binnen is scuift alles een plaatsje op. Bij het tekenen duurt het bij hoge snelheden te lang voor een cls. Daarom wordt eerst de oude grafiek pixel per pixel gewist. Daarna komt de nieuwe.

Om je display/array routines te testen kan je de meetwaardes simuleren dmv random getallen.

Ok bedankt voor jullie suggesties. Ik denk dat ik hiermee wel uit de voeten kan..

Hoi
Welke type graphic LCD gebruiken jullie?
En waar kan ik zoiets kopen?

Groetjes Lowa1

In de winkel/webshop en even zoeken?

Aub niet dit topic kapen.