Go Down

Topic: Lcd keyboard shield werkt niet? (Read 235 times) previous topic - next topic

ultimate20

Goeden dag, ik krijg iets niet voor elkaar.

Ik heb helaas geen compleet setje lcd met buttons erbij op dus heb ik deze los gemaakt.

mijn vraag is, hoe nauwkeurig moeten de weerstanden zijn?

Ik heb het volgende gemaakt zie bijlage.

De weerstanden die ik heb gebruikt zijn redelijk nauwkeurig alleen had ik 1 weerstand niet op voorraad, deze heb ik door 2 in serie de waarde kunnen geven.

Ik heb de knoppen getest met een test code voor arduino.

De knoppen werken ,maar op het moment van de code te gebruiken die ik nodig heb om een menu te scrollen gaat het mis, ik kan wel scrollen maar kan niet enteren of back.

Het stukje uit de code :

// This function is called whenever a button press is evaluated. The LCD shield works by observing a voltage drop across the buttons all hooked up to A0.
int evaluateButton(int x) {
  int result = 0;
  if (x < 50) {
    result = 1; // right
  } else if (x < 195) {
    result = 2; // up
  } else if (x < 380) {
    result = 3; // down
  } else if (x < 790) {
    result = 4; // left
  }
  return result;
}


nu ben ik geen expert op dit gebied maar misschien dat iemand enig idee heeft waarom dit verkeerd gaat of hoe aan te passen dat het wel functioneert ?

MAS3

Hoi ultimate20, welkom !

Toen ik net begonnen was met Arduino, vond ik zo'n LCD Keyboard shield ook wel heel interessant, en was het een van de eerste zaken die ik aanschafte.
Meteen nadat ik dat ding binnen had, ben ik er mee gaan spelen.
Ik merkte al dat de voorbeeld sketch die ik gevonden had, nou niet bepaald goed werkte.
Dus ben ik maar eens gaan uitzoeken hoe dat ding eigenlijk werkt en wat er uit komt als je op de knopjes drukt.
Daar kwam ik er achter dat sommige van de waardes die per knopje binnen komen, niet helemaal was wat er verwacht werd.
En dus dat je niet naar een harde waarde moet kijken, maar naar een bepaald bereik om vast te stellen of een knopje ingedrukt is.
Het korte stukje code dat je hebt laten zien, toont in ieder geval aan dat dat bij jou ook gebeurt, dus da's alvast goed.

Het testje dat ik had gemaakt, gebruikt de eigen LCD om het resultaat weer te geven.
Daarmee ontdekte ik dat zo´n LCD een perfect debug tooltje kan zijn, en daarvoor heb ik die dingen inmiddels al veelvuldig gebruikt.
Ik raad jou dus aan om de waarde die uit A0 gelezen word, te tonen op het LCD´tje.
Zo kun je er achter komen wat je moet verwachten als er op enter of back gedrukt word.

Want je probleem is dus dat je het knopje wel hebt, maar jouw sketch daar helemaal niet naar kijkt:

Quote
maar ..ik kan wel scrollen maar kan niet enteren of back.

Het stukje uit de code :

Code: [Select]
// This function is called whenever a button press is evaluated. The LCD shield works by observing a voltage drop across the buttons all hooked up to A0.
int evaluateButton(int x) {
  int result = 0;
  if (x < 50) {
    result = 1; // right
  } else if (x < 195) {
    result = 2; // up
  } else if (x < 380) {
    result = 3; // down
  } else if (x < 790) {
    result = 4; // left
  }
  return result;
}


Oplossing is dus op te zoeken welke range enter en back hebben, en dat toevoegen aan je sketch als result 5 (en 6, als je dat knopje ook hebt toegevoegd).
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

ultimate20

Kijk dit is top uitleg!

Ik ben ermee aan de slag gegaan en heb het voorbeeld Analog read serial erin geladen.

Met opstarten begint die te lopen 1017.

Op het moment van het knopje indrukken komt er een waarde uit maar deze is niet stabiel..

Bijvoorbeeld tussen de 140 en 200, is dat normaal of moet dat stabiel zijn?

nicoverduin

#3
Jun 03, 2018, 02:12 pm Last Edit: Jun 03, 2018, 02:13 pm by nicoverduin
Dat riekt naar slechte verbindingen. Of je voeding rammelt zodra deze belast wordt
Met vriendelijke groet / kindest regards
Nico Verduin
www.verelec.nl
Do not PM me for personal consultancy unless you are willing to pay for it.

ultimate20

#4
Jun 03, 2018, 02:16 pm Last Edit: Jun 03, 2018, 02:19 pm by ultimate20
Alles zit momenteel aan de voeding van de arduino zelf via de usb.. zal dat het probleem wezen?

De rest staat tijdelijk op een breadboardje met niet de beste schakelaars(goedkoop) geef ik toe


MAS3

Ja dat kan er wel mee te maken hebben.
Dat was in ieder geval mijn conclusie toen ik er mee aan het spelen was.
Aangezien je de weerstanden aan de 5 volt hebt hangen, heeft de belasting van die 5 volt ook een doorwerking op de resultaten.
Dat is waarom ik destijds dus gekeken had wat ik zag variëren, en er toen nog een beetje extra ruimte bij heb genomen om te bepalen op welk knopje er gedrukt word.
Maar wanneer je geen knopje indrukt, zou je eigenlijk 1023 moeten zien.
De door jou aangegeven waarde bij gedrukte knop, komt overeen met het bereik voor de UP knop.
Wanneer de 2 extra knoppen binnen de al gedefinieerde waardes gaan vallen, zul je andere weerstandswaardes moeten gaan gebruiken.

Uiteraard moet je ook Nico's tip over slechte verbindingen even nagaan.
Breadboards zijn niet gebouwd om de meest stabiele verbindingen te maken zal ik maar zeggen.
Die zijn meer om even te testen of wat je bedacht hebt, ook zal werken.
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

ultimate20

Top! Voor elkaar, het was inderdaad de voltage die het probleem gaf.

Ik heb een externe voltage erbij aangehangen en de - doorgespeeld het werkt(waardes zo goed als stabiel en de 1023 klopt).

Nu verder gaan verdiepen in het menu gedeelte om het project werkend te krijgen op deze manier.


Bedankt voor de snelle reacties beide

F8VOA

Ik ben vermoedelijk de domste thuis en mijn vraag hoort hier niet maar ..... hoe kan ik een nieuwe topic plaatsen ? Ik vind geen " new topic " button wel een previous en een next .

Marco .

F8VOA

Sorry , na het versturen vond ik het natuurlijk , bewijs dat ik de domste thuis ben . Sorry voor mijn flater
Marco

ultimate20

Marco Geen probleem, we moeten het allemaal leren toch?

Door proberen kom je achter veel dingen,ook dit ;)

Fijn dat je er achter gekomen bent en succes.

MAS3

En weer on topic:

Toen ik hier op het forum een paar maanden aanwezig was, kwam er iemand met een vergelijkbare vraag over LCD keypad shield en een menu.
Dat leverde uiteindelijk deze thread (klik !)  met open einde op.
Wie weet kun je daar nog wat inspiratie opdoen..
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

ultimate20

#11
Jun 11, 2018, 10:22 pm Last Edit: Jun 11, 2018, 10:23 pm by ultimate20
Sorry voor mijn late reactie mas3,ik had niet eerder tijd.

Ik zal het eens door gaan spitten wie weet kom ik daar een heel stuk verder mee.

Bedankt voor het mee denken

Go Up