Sida 3 av 3
Re: Arduino programmerings frågor.
Postat: 28 juni 2014, 15:22:56
av nifelheim
om du skriver ut "hela" displayen, så du skriver över allt gammalt, behöver du inte lcd.clear()
se till att gå igenom koden rad för rad , googla/fråga om det minsta är oklart.
Att någon annan skrivit lite bibliotek som man kan använda är ju bra för det går snabbt och enkelt att skriva program.
För att lära sig är det inte så dumt att kolla vad som händer, du borde ha en motsvarande sökväg på din dator:
E:\arduino\arduino-1.0.5-r2\libraries\LiquidCrystal
Där hittar du till exempel LiquidCrystal.cpp
kolla definitionerna av klassens (lcd) metoder (clear, home, cursor osv)
deklarationen av klassen hittar du i LiquidCrystal.h
Re: Arduino programmerings frågor.
Postat: 30 juni 2014, 09:10:03
av Xoffis
något jag har lärt mig av mitt arduino pillande med LCD är att man aldrig skall använda lcd.clear() då det bara skapar ett flimmer i displayen...
något som däremot funkar väldigt bra är att använda mellanslag...
tillexempel ifall du har texten
"Temp: 120°C Brännare: AV"
Kod: Markera allt
lcd.setCursor(0,1);
lcd.print("Temp: ");
lcd.print(120);
lcd.print((char)223);
lcd.print("C");
lcd.print(" Brännare:");
lcd.print(" AV");
Men om den ändras till
"Temp: 90°C Brännare: PÅ"
Kod: Markera allt
lcd.setCursor(0,1);
lcd.print("Temp: ");
lcd.print(" 90"); //notera mellanslag
lcd.print((char)223);
lcd.print(" Brännare:");
lcd.print(" AV");
BTW: denna raden
ger dig gradertecknet på displayen!
Mellanslaget implementerar du med if satser...
Re: Arduino programmerings frågor.
Postat: 30 juni 2014, 10:09:09
av Icecap
Och med lite vett skriver man:
const char* Text_OnOff[] = {"AV", "PÅ"};
char Buffer[20];
sprintf(Buffer, "Temp:%4u\xDF" "C Brännare: %s", Temperature, Text_OnOff[Burner_Status]);
lcd.setCursor(0,1);
lcd.print(Buffer);
Burner_Status är en bit som anger om brännaren kör (1) eller inte (0).
Re: Arduino programmerings frågor.
Postat: 30 juni 2014, 11:58:05
av orvar-e
Xoffis skrev:något jag har lärt mig av mitt arduino pillande med LCD är att man aldrig skall använda lcd.clear() då det bara skapar ett flimmer i displayen...
något som däremot funkar väldigt bra är att använda mellanslag...
Också vad jag tycker mig ha kommit framtill.
Kan man använda lcd.clear i en IF sats?
Om man vill blanka hela skärmen av nån anledning innan. Fast det verkar fortfarande onödigt.
Re: Arduino programmerings frågor.
Postat: 30 juni 2014, 12:12:54
av Icecap
Det är väl bara att räkna på tiden det tar att positionera cursorn och skriva blanksteg över hela displayen kontra en CLS.
Re: Arduino programmerings frågor.
Postat: 1 juli 2014, 21:33:18
av Xoffis
orvar-e skrev:Xoffis skrev:något jag har lärt mig av mitt arduino pillande med LCD är att man aldrig skall använda lcd.clear() då det bara skapar ett flimmer i displayen...
något som däremot funkar väldigt bra är att använda mellanslag...
Också vad jag tycker mig ha kommit framtill.
Kan man använda lcd.clear i en IF sats?
Om man vill blanka hela skärmen av nån anledning innan. Fast det verkar fortfarande onödigt.
ett bra ställe att ha lcd.clear() är i setup-delen, så displayen nollas om man resettar arduinot (den behåller annars texten sålänge den har ström)
Re: Arduino programmerings frågor.
Postat: 1 juli 2014, 22:08:51
av sodjan
Lite förvirrat här kring "clear" funktionen i HD44780 displayer.
Clear är en egen unik funktion i HD44780 gränssnittet. Det som
skiljer den från andra är att den tar mycket längre tid att utföra,
kan ta flera ms, medan en skrivning av ett tecken tar några
tiotal us. Så det kan vara snabbare att skriva blanktecken.
D.v.s att jag antar/utgår från att lcd.clear() använder clear
funktionen i HD44780, men den måste inte göra det rent tekniskt.
> då det bara skapar ett flimmer i displayen...
Det är bara om man gör det "onödigt" ofta.
> Kan man använda lcd.clear i en IF sats?
Varför inte?
Du kan väl använda vilken Arduino kod som helst var som helst?
Varför skulle det inte gå? D.v.s varför frågar du just det?
> Fast det verkar fortfarande onödigt [att blanka hela skärmen]
Det är ju helt omöjligt att säga något generellt om, det beror
helt på den specifika applikationen och hur den fungerar.
Det kan ju vara bra att rensa skärmen ibland, det kan ju uppstå
störningar som kan störa skrivningen till skärmen t.ex. Det beror
också lite på hur man har organiserat skrivningen för övrigt.
Re: Arduino programmerings frågor.
Postat: 7 november 2014, 15:18:27
av )ExecutoR(
Tänkte bara säga att jag också lärt mig en hel del när jag läst igenom tråden!
orvar-e, har du fortfarande kvar boken så tar jag den gärna, hänger inte heller med på all kod i tråden ännu.
Re: Arduino programmerings frågor.
Postat: 7 november 2014, 15:36:51
av Icecap
Satt med databladet i annan anledning och funderade lite över Clr-funktionen och den långa tid den tar. Och räknar man på det motsvarar tiden den tar exakt lika lång tid som att skriva 40 st mellanslag...
Alltså är det bara en intern sekvens som gör just detta.
Re: Arduino programmerings frågor.
Postat: 7 november 2014, 21:27:23
av orvar-e
Du får den bara min kollega är klar med den.
Re: Arduino programmerings frågor.
Postat: 26 november 2014, 06:58:46
av orvar-e
)ExecutoR( ..... Nu har jag fått hem boken, mot frakt så är den din.