Hier snap ik dus echt niks van (ja ben al aan het uitzoeken geweest)
code is toch simpel (dacht ik)
telt van 1 tot 100
dan knippert het display 3x
(dit snap ik nog allemaal)
dan gaat ie van 09 19 29 39 49 59 69 79 89 99
11 12 13 en weer naar 100
(en dat snap ik dus niet!!!!)
ik ben al aan het aanpassen geweest.maar kom er niet achter.
waar zit dat laatste gedeelte van tellen in????

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
 
LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7,3, POSITIVE); // See above - same as DF Robot
 
void setup()
{
 lcd.begin (16,2);
 lcd.setBacklight(HIGH);
 lcd.print("I2C ");
}
 
void loop()
{
 for(int i = 0; i < 100; i++) {
 lcd.setCursor(0,1);
 lcd.print(i);
 delay(500); // 0.1 seconds
 }
 flashBacklight(3);
}
 
void flashBacklight(int repeat) {
 while(repeat-- > 0) {
 lcd.setBacklight(LOW);
 delay(250);
 lcd.setBacklight(HIGH);
 delay(250);
 }
}

is een lcd display met 2 regels ,en een i2c printje

[Bericht gewijzigd door Henry S. op (0%)]

Hij wist de tweede "9" van 99 niet zolang er slechts één cijfer is, dus van 0-9.

Clear LCD ? CLS ? : https://www.arduino.cc/en/Reference/LiquidCrystalClear

[Bericht gewijzigd door Shiptronic op (63%)]

sorry die 9 moet 09 zijn hebt het aangepast in topic

opgelost inderdaad met lcd.clear();
en een print regel want die wist hij dan ook.
maar werkt zo goed
hartelijk dank

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
 
LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7,3, POSITIVE); // See above - same as DF Robot
 
void setup()
{
 lcd.begin (16,2);
 lcd.setBacklight(HIGH);
 lcd.print("I2C ");
}
 
void loop()
{
 for(int i = 0; i < 100; i++) {
 lcd.setCursor(0,1);
 lcd.print(i);
 delay(500); // 0.1 seconds
 }
 flashBacklight(3);
}
 
void flashBacklight(int repeat) {
 while(repeat-- > 0) {
 lcd.setBacklight(LOW);
 delay(250);
 lcd.setBacklight(HIGH);
 delay(250);
 lcd.clear() ;
 lcd.print("I2C   ");
}
}

[Bericht gewijzigd door Henry S. op (0%)]

.
.
lcd.print(i);
lcd.print(" ");
.
.

ofwel zet er een spatie achter, heb je er ook geen last van..

inderdaad JvdBe:
jouw oplossing werkt ook prima ,net als wat ik gedaan had op advies.
hartelijk dank allen

Voordeel van een spatie is dat het veel sneller is als een clear. (40uS vs 1.6mS). Vooral bij veelvuldig updaten display belangrijk...

of de integer in een string gooien en die rechts uitlijnen ...

een tip voor als je verder gaat met TFT schermen.
als je daar telkens een clear doet, gaat het scherm knipperen en heel traag werken.
daar is de truck om eerst de oude data te overschrijven in backgroundcolor en dan pas de nieuwe data door te sturen.

beter dat je nu ook dergelijke aanleert en niet telkens een clear doet. de oude tekst overschrijven met spaties en dan pas het nieuwe karakter schrijven, dat gaat veel sneller.

ook kan je bv bepaalde tekst laten staan.

voorbeeld

je schrijft een programma dat volgende weergeeft

'Temperatuur:'
'    20°C    '

dan kan je telkens die 20 wissen door op de 2de lijn karakter 5 en 6 een spatie te schrijven.
de tekst temperatuur en °C mogen blijven staan. als je daar telkens een clear doet en alles herschrijft, gaat het fel gaan knipperen.

bij een tft ga je daar naar 5de karakter op 2de lijn gaan, en nog eens die 20 herschrijven in backgroundcolor. dan opnieuw naar 5de karakter gaan op de 2de lijn en de nieuwe tekst schrijven.

ik heb hiervoor een functie geschreven waar ik de "oldTekst, newtekst, X, Y, bgColor en tekstColor" doorgeef als variabelen. en daarin overschrijf ik dan het oude, keer terug en schrijf het nieuwe. bespaard je een hoop coderegels als je veel wil updaten

Als je gaat optimaliseren... Ik zou dan:

 lcd.setCursor(0,1);
 lcd.print("  ");

aan het begin van de loop functie zetten. De print 1 spatie truuk wordt nu 100x gedaan, terwijl er maar 1 moment is dat het echt moet.... (verdere optimalisatie: print "0 ", en laat de loop bij 1 beginnen....)

geweldig bedankt allemaal,zeer leerzaam.