Heey allemaal,

Ik heb een project op batterijen met een LCD scherm 4x20. Als ik me chip in SLEEP modes zet is het de bedoeling dat mijn apparaat bijna geen stroom verbruikt omdat het op een batterij werkt.

Maar als de chip in Sleep gaat dan blijven de blokjes van me LCD nog gewoon oplichten. Ik wou gewoon de + van de LCD gaan schakelen om de display uit te zetten maar dan krijg ik hem niet meer in normale werking aan. Krijg dan alleen maar rare tekens en blokken te zien.

Is het mogelijk om de LCD een command te sturen zodat die uit gaat en na de SLEEP weer een command om hem weer aan te zetten? of wat is anders een goede oplossing?

Ik werk in PICBASIC en gebruik Proton. Huidige chip is de PIC16F628A, maar het uiteindelijke project gaat draaien op een PIC18F2520 i.v.m. ik meer geheugen en ports nodig heb..

Eigenlijk heb ik geen poort over om de LCD via een port te laten schakelen maar ik heb wel een port die een RFID module aan en uit zet dus met een beetje aanpassing in het programma kan ik wel die port ook gebruiken om eventueel de LCD uit en aan te zetten samen met de RFID. dan staat de RFID maar iets langer aan dan nodig..

Hopelijk is er iemand die weet wat ik het best kan doen.

Als je de voedingsspanning van het display haalt en daarna weer erop zet, moet je het display opnieuw initialiseren, anders doet 'ie niets meer...
Of het display een sleep mode heeft moet je in de datasheet van het betreffende display nakijken. Meestal blijven ze wel een halve mA ofzo gebruiken.

Oke, ja had al wat gevonden over een command om hem uit te zetten maar wat ik daar uit haal is dat ik me display dan met 8 data lijnen moet aansluiten i.p.v. 4 data lijnen, en ik heb geen port over..

weet jij toevallig hoe ik de display moet initialiseren? want daar heb ik tot nu toe ook nog niks over gevonden. maar ben ook nog aan het zoeken.

Initialiseren doet Picbasic volgens mij zelf zodra je het display gebruikt. Maar houdt er natuurlijk geen rekening mee dat je de spanning eraf haalt.
Ik weet niet of er een apart init commando is in Picbasic.

Proton gebruikt "Cls"

Clears the alphanumeric or graphic LCD and places the cursor at the home position i.e. line 1,
position 1 (line 0, position 0 for graphic LCDs).

Clearen is niet hetzelfde als initialiseren. ;)

Clear is bij HD44780 controllertjes een directe instructie en heeft op zich niets te maken met het initialiseren van het display.

Ik weet niet hoe spannend die sleep is. Ik weet niet of pic-ding-basic het kan. Maar de makkelijkste manier zou kunnen zijn het ding zichzelf laten resetten. Als pic-ding-basic daar niks mee kan, kun je het altijd nog in hardware oplossen. Vooropgesteld natuurlijk dat je software het toe laat.

Je kunt in Proton wel het display uit en aan zetten, ik weet niet hoeveel stroom het bespaard.

 Print At 1,1, "Hallo"
DelayMS 1000
Print $FE, %0000001000      ; Display uit
DelayMS 1000
Print $FE, %0000001100      ; Display aan

Je kan ook overwegen om het display aan te laten. Dat kost weinig stroom. De backlight kost wel veel. Die moet uit. :-)
Mijn fiets-computer heeft ook een display. Nu in een jaar of 8 1x de batterij vervangen. Maar hij BLIJFT de tijd weergeven in het display.... En dat is dus zo'n 200mAh 3V batterij. Heel wat kleiner dan een 2000mAh 18650 of NiMh.

Het stroomverbruik van zo'n statisch LCD uit een fietscomputer is niet te vergelijken met dat van een standaard alfanumeriek dotmatrix display.
Het verbruik van zo'n 'kaal' LCD display is veel en veel lager.

Op 6 februari 2013 07:51:39 schreef Djenn:
Je kunt in Proton wel het display uit en aan zetten, ik weet niet hoeveel stroom het bespaard.

 Print At 1,1, "Hallo"
DelayMS 1000
Print $FE, %0000001000      ; Display uit
DelayMS 1000
Print $FE, %0000001100      ; Display aan

Maar met deze opdracht moet ik de display dus in 8 of 4 data lijnen aansluiten..

Ik heb wat op internet gevonden om commando's te sturen naar de LCD waaronder die uit kan. Alleen dan moet ik de RS port laag maken. Als ik de RS port laag maak dan gaat deze vanzelf weer hoog en staat de display dus weer in tekst modes. Dus ik kan de commando's niet verzenden..

Wat met 8 bits kan, gaat ook in 4 bits mode. (je moet alleen 2x4 bits sturen i.p.v. 8 bits)
Ik twijfel er wel aan of dit veel (of uberhaupt) stroom spaart...

Als ik nou de contrast verbreek geeft de display niks meer weer. alle pixels zijn dan volledig leeg. Ik neem aan dat de draad van het contrast dan ook de stroom verbruikt..

Of is dit ook onzin? want dan laat ik de display gewoon aan staan.

Trouwens de display uitzetten werkt met de bovenstaande code. Ik kan in de datasheet alleen niet vinden wat die doet met het eerste HEX getal. Kan ik daar nog een uitleg van krijgen?

Op 6 februari 2013 11:11:51 schreef Arco:
Het stroomverbruik van zo'n statisch LCD uit een fietscomputer is niet te vergelijken met dat van een standaard alfanumeriek dotmatrix display.
Het verbruik van zo'n 'kaal' LCD display is veel en veel lager.

Je hebt gelijk.. Zou zomaar een factor duizend kunnen schelen. 1mA versus 1µA. Maar met 1mA en een 2000mAh accu kan je al een paar weken vooruit...

Op 6 februari 2013 15:59:01 schreef beuk1989:Ik kan in de datasheet alleen niet vinden wat die doet met het eerste HEX getal.

Die FE code is iets van de proton compiler, ik neem aan dat die code tegen de lcd zegt dat het nu ipv display data een opdracht krijgt.
Kijk maar eens in de help van proton bij de Print opdracht.