Leon van der Horst - Microcontrollers

LCD met menu

Arduino

Boarduino

Basic Stamp

JeeLink/Node

Projecten

Workshop

Links


T.b.v. de motorregelaar die als groep wordt ontwikkelt bij de S.M.G. IJmond te Heemskerk, is ook de behoefte voor een optionele LCD display aansturing met menu knoppen.
LCD aansturing is reeds behandeld, zie
LCD artikel. We gaan ook de LCD aansturing via een andere wijze doen, namelijk via de LCD-plug van JeeLabs, dan zijn er nog maar 2 I/O-poorten nodig. Deze LCD-plug maakt gebruik van een I2C™ aansluiting en wordt verderop behandeld op deze pagina, klik hier.

We ons op deze pagina alleen bezig houden met de mogelijkheden om diverse knoppen (buttons) of schakelaars uit te lezen en presenteren daarbij op een LCD welke toets is ingedrukt. Hierbij krijgt elke buttons zijn eigen functie welke we in het programma (sketch) dienen te verwerken. Denk daarbij aan de buttons: links, rechts, omhoog, omlaag, enter, cancel, menu etc.

Menu gestuurde apparatuur is bijna niet meer weg te denken in onze huidige samenleving en biedt een gebruiker het gemak om instellingen te wijzigen. Denk daarbij bijvoorbeeld aan het instellen van een maximale vooruit of achteruit snelheid voor een motor. Of instellingen voor diverse alarmfuncties.

 

Menu buttons/schakelaars 1: Ontwikkeld door Peter Hogenstijn.

Uitleg schema:

De schakeling is opgebouwd als een spanningsdeler. Door op een knop te drukken zal op de uitgang een spanning komen ergens tussen de 0 - 5V. Dit wordt gemeten via een analoge ingang van de Arduino.

 

Onderdelen:
R = 8x 500 Ohm en 1x 10k Ohm
C = 1uF/16V elco
6 Drukschakelaars
1 Dubbelpolige schakelaar

 

Bijbehorende sketch:

De sketch voor het uitlezen van de schakelaars kun je hier downloaden.

Uitleg sketch: volgt nog...

 

 

Menu buttons/schakelaars 2: Ontwikkeld door Léon van der Horst (hardware is afgeleid van bovenstaand schema van Peter Hogenstijn.

Onderdelen:
R = 7x 100k Ohm
6 Drukschakelaars

 

Uitleg schema:

De schakeling is opgebouwd als een spanningsdeler, zoals ook bij schema 1, echter zijn de schakelaars weggelaten. Ook is de 10k Ohm weerstand eruit gelaten en zit de bovenste drukknop direct aan de 5V. De schakelaars zijn als volgt verdeeld:

S1 = Menu
S2 = Links (Left)
S3 = Omhoog (Up)
S4 = Omlaag (Down)
S5 = Rechts (Right)
S6 = OK

Via een analoge meting met de Arduino wordt bepaald welke knop is ingedrukt. Voor elke knop kan daar een afwijking in komen en er is daarom voor elke knop een marge vastgelegd waarin bepaald wordt welke reeks overeenkomt met

een respectievelijke drukknop.

 

Bijbehorende sketch:

De sketch voor het uitlezen van de schakelaars kun je hier downloaden.

Uitleg sketch: volgt nog...

 

Hieronder enkele foto's van het prototype met resultaat op LCD:

De schakelaars zijn als volgt ingedeeld:

                UP                         MENU

LEFT       OK       RIGHT

             DOWN

     

 

De LCD-plug van JeeLabs kun je als volgt aansluiten:

De Port 0 optie is een uitstekende uitbreiding van de Ports library van JeeLabs, want deze maakt gebruik van de "echte" I2C™ interface zoals is bedoeld voor de Arduino en gebruikt twee analoge pinnen, analoog 4 en 5 (SDA en SCL). De IRQ (Digital 3) wordt niet gebruikt voor het aansturen van de LCD en hoeft dan niet aangesloten te worden.

 

Menu buttons/schakelaars 3: Ontwikkeld door Peter Zorgdrager (LCD en menu buttons via I²C met behulp van een 16-bit I/O expander MCP23017).

Onderdelen:
6 Drukschakelaars
IC1 = MCP230017
etc.

 

Uitleg schema:
De schakeling is opgebouwd rondom de I/O expander MCP23017 van MicroChip.
Deze chip wordt via een I²C interface aangesloten waarbij de I/O pinnen van deze chip zodanig worden aangestuurd dat daarmee de LCD kan worden bestuurd en tevens de menu buttons kunnen worden uitgelezen. Een voordeel daarbij is dat er voor de menu buttons uitlezen geen analoge ingang meer benodigd is. Wel moeten we nog een printje ontwerpen waarop de gehele schakeling op kan.

 

Bijbehorende sketch:

De sketch voor het uitlezen van de schakelaars kun je hier (nog niet) downloaden.

 

Uitleg sketch: volgt nog...

Naar elektronica          Naar micrcoontrollers          Naar hoofd pagina