Pages: [1]   Go Down
Author Topic: Sleutelschakelaar gebruik  (Read 1922 times)
0 Members and 1 Guest are viewing this topic.
Netherlands
Offline Offline
Newbie
*
Karma: 1
Posts: 41
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Voor mijn project heb ik een sleutelschakelaar gekocht met drie standen (links, midden, rechts) die ik wil integreren.

De bedoeling is dat het "hoofd" programma draait als de sleutel in het midden staat en dat ik in dit geval een menu wil openen als ik de sleutel naar links draai en een ander menu als de sleutel naar rechts gaat.

Ik heb mijn hoofd hierover gebroken en ik dacht zelf aan een switch case constructie maar ik ben er nog niet uit.
Logged

Global Moderator
Netherlands
Offline Offline
Shannon Member
*****
Karma: 211
Posts: 13477
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

heb je een electrisch schema van de schakelaar?

waarschijnlijk moet je 3 digitale pinnen checken of je maakt een resistor ladder op een analoge poort.

5V ---[ R1 ] ----L  ----[R2] ----M----[R3] -----R-----[R4] ---ArduinoAnalog ----[R5]-------0V

Common van de schakelaar aan 5V, alle weerstanden 10Kohm en je moet de verschillende standen kunnen onderscheiden.

Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Netherlands
Offline Offline
Newbie
*
Karma: 1
Posts: 41
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oh sorry ik was blijkbaar niet duidelijk! Het aansluiten is geen probleem, ik heb 3 digitale pinnen en ik kan checken op welke stand hij staat (100,010,001)

Ik heb echter drie functies die moeten draaien Func1(), Func2(), Func3(). Dmv een state case machine kan ik dat al doen.

Quote
State(mode)
case 1:
Func1();
break;
case 2:
Func2();
enz

Maar wat ik wil dat bij een verandering van de state, eenmalig een bericht op mn lcd scherm komt (of een Serial.print(mode))).
Logged

The Netherlands
Online Online
Edison Member
*
Karma: 43
Posts: 1500
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hoi.

Niet te ingewikkeld denken.
Je kunt de State waarin je zit bijhouden in een extra variabele (oldState misschien ?).
Als je verandert van state, is er nog een andere state opgeslagen in die variabele.
In dat geval zet je een vlag, die aangeeft dat de boodschap weergegeven moet worden.
Direct na het zetten van die vlag, doe je een update van die variabele naar de zojuist geconstateerde state.
Verder start je dan eventueel een teller.
Zolang de teller nog niet verlopen is en de vlag niet is gereset, laat je de boodschap dan zien.
Het verlopen van de teller zal dan ook de vlag resetten.
Dit stukje van je code zit in de loop, maar wel buiten je switch ... case (¿ is er ook een State ... case, of is dat een vergipsing  ?).
Ik hoop dat dit duidelijk is.

Verder gebruik je 3 bits voor 3 mogelijkheden, en gooi je dus 4 à 5 mogelijkheden overboord (afhankelijk van of nul, nul, nul ook een mogelijkheid is).
Met twee diodes kun je ook die drie standen in twee bits kwijt en spaar je je een ingang uit.
Nul, nul, nul gebruik je dan dus niet maar als je een vierde keus nodig zou hebben is dat 'm.
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

Offline Offline
Newbie
*
Karma: 1
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ik heb mijn hoofd hierover gebroken en ik dacht zelf aan een switch case constructie maar ik ben er nog niet uit.
Ik zou gewoon een switch gebruiken, ja.
Logged

Pages: [1]   Go Up
Jump to: