Pages: [1]   Go Down
Author Topic: probleem met Powertip pc2004 lcd  (Read 1498 times)
0 Members and 1 Guest are viewing this topic.
Beneden Leeuwen
Offline Offline
Newbie
*
Karma: 1
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo mensen,

Het probleem wat ik heb is het volgende; de powertip heeft plaats voor 20 karakters.
Maar wat ik nu zie is dat als het aantal karakters op een regel de 12 overschrijdt, het teveel aan karakters op de volgende regel wordt weergegeven. Ik zal het even proberen weer te geven in een voorbeeld.
De tekst op regel 1 van de lcd is: aantal pulsen: 1. Deze tekst wordt juist weergegeven maar op regel 2 staat dan:
n:1.
De volgende tekst zou volgens mijn code op regel 2 moeten beginnen maar wordt op regel 3 weergegeven. Deze tekst is: pulstijd:3sec waarbij op regel 4 dan c wordt weergegeven. Dus kort gezegd, vanaf het dertiende karakter in een regel wordt de tekst herhaald op de volgende regel.
Volgens mij heb ik de juiste (standaard) lcd library om deze lcd aan te sturen en is de powertip hitachi compatible.
Misschien heeft iemand van jullie een idee wat er fout gaat want googelen op dit probleem levert niet veel resultaten op.
Hieronder mijn code
Code:
// invoegen bibliotheek
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

//instellen vaste variabelen voor tellen pulsjes

const int KwhPulse = 13;               // puls aangesloten op digitale ingang 13

// instellen variabelen voor bijhouden aantal pulsjes

int pulseState = 1;                     // huidige staat van kwh puls, deze is "actief laag" dus hier inverteren
unsigned long KwhpulseCounter = 0;      // teller voor aantal pulsen
int lastPulseState = 1;                 // vorige staat van Kwh puls

// instellen variabelen berekenen pulstijd

unsigned long pulseAan = 0; // pulse aan en uit maken gebruik van millis dus long gebruiken
unsigned long pulseUit = 1;
unsigned long verstrekenTijd = 0;       // en het verschil ook
unsigned int KWH_cijfer; // cijfers voor de komma
unsigned int KWH_decimaal; // cijfers achter de komma

//instellen variabelen berekenen Kwh en huidig vermogen

unsigned long currentWatts = 0; // we kunnen max 65536 Watts verwerken. Anders unsigned long gebruiken
unsigned long totalKwh = 0;

//setup
void setup() {
pinMode(KwhPulse, INPUT); // maak van (digitale)pin 13 een input
//Serial.begin(9600); // seriele communicatie op 9600 baud
lcd.begin(20,4); // lcd met 4 regels en 20 karakters per regel
}

void loop() {
char kwhStr[9];
pulseState = digitalRead(KwhPulse); // lees waarde digitale ingang en bewaar de waarde in "pulseState"

if (pulseState != lastPulseState) { // vergelijk de staat van de Kwhpulse met zij vorige staat
if (pulseState == LOW) { // als de huidige staat laag is ging de puls van uit naar aan
KwhpulseCounter++;         // als de staat is veranderd, verhoog de teller
                        lcd.setCursor(0,0);                     // zet cursor op de eerste regel en eerse karakter
lcd.print("aantal pulsen:");          // schrijf tekst naar lcd
lcd.print(KwhpulseCounter);          // schrijf inhoud van var "KwhulseCounter" naar lcd


pulseAan = millis();            //tijd in milliseconden vanaf start arduino
verstrekenTijd = (pulseAan - pulseUit) / 1000;          //gemeten tijd tussen twee pulsen
pulseUit = pulseAan;                                    //bewaren voor volgende ronde


                        lcd.setCursor(0,1);                   // zet cursor op tweede regel en eerste karakter
lcd.print("Pulstijd:");       // schrijf tekst naar lcd
lcd.print(verstrekenTijd);            // schrijf inhoud van var "verstrekenTijd" naar lcd
lcd.print("sec");                     // schrijf tekst naar lcd
Logged

Heemskerk, Netherlands
Offline Offline
Sr. Member
****
Karma: 10
Posts: 372
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Soms helpt het om eerst een test programmajte te maken en daar eerst gewoon die regels naar het display te sturen. Als het dan wel goed gaat, dan zit je verkeerd te zoeken en ligt het probleem elders....
Logged

Beneden Leeuwen
Offline Offline
Newbie
*
Karma: 1
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nico,

Dit had ik al geprobeerd. Gewoon een simpel sketchje met enkel een lcd.print. Heeft hetzelfde effect.

Groeten,
Johnny
Logged

The Netherlands
Offline Offline
Edison Member
*
Karma: 50
Posts: 1676
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Heb je ook een test gedaan waar je gewoon probeert elk beschikbare karakter op je scherm te beschrijven ?
Dan zet je gewoon de ASCII karakters van 33 tot en met 126 op je scherm, dat zijn alle normaal leesbare tekens, exclusief de spatie (omdat je niet weet of die wel of niet word afgebeeld).
Hiermee kun je een aardig eind komen om te zien welk karakter waar opduikt, en of wel het hele scherm beschikbaar is.
Als je dat weet en telkens het zelfde resultaat krijgt (plaats waar de karakters verschijnen), kun je er natuurlijk omheen werken maar dat maakt het er allemaal niet eenvoudiger op.
Logged

Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

Beneden Leeuwen
Offline Offline
Newbie
*
Karma: 1
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@ MAS3
Dat heb ik inderdaad nog niet geprobeerd. Zogauw ik weer tijd heb zal ik dat eens doen.
Bedankt voor de suggestie
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 81
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Volg anders deze link naar de libary LiquidCrystal440
en probeer die eens
http://forum.arduino.cc/index.php/topic,46845.0.html
Logged

Pages: [1]   Go Up
Jump to: