keypad input naar T.setTimer(h,m,s);
9 berichten
• Pagina 1 van 1
- christiaan
- Berichten: 86
- Geregistreerd: 31 Dec 2015, 14:11
keypad input naar T.setTimer(h,m,s);
Hallo,
Ik heb nog één vraag momenteel,
Is het mogelijk om een keypad input die in een string staat te converteren naar een h,m,s zodat T.setTimer deze kan begrijpen en gebruiken.
Ik wil hem dan dus de ingevoerde tijd geven die ik intyp.
cpp code
Ik heb nog één vraag momenteel,
Is het mogelijk om een keypad input die in een string staat te converteren naar een h,m,s zodat T.setTimer deze kan begrijpen en gebruiken.
Ik wil hem dan dus de ingevoerde tijd geven die ik intyp.
cpp code
#include <Keypad.h>
String userinput;
const byte ROWS = 4; // Four rows
const byte COLS = 4; // Four columns
//Define the keymap
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
//// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte rowPins[ROWS] = {21,20,19,18}; //connect to row pinouts (2,3,4,5)
// Connect keypad COL0, COL1, COL2 and COL3 to these Arduino pins.
byte colPins[COLS] = {17,16,15,14}; //connect to column pinouts (6,7,8,9)
// Create the Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup() {
T.SetTimer(h,m,s); // Timer voor de Escape room. Deze moet dus gevuld worden vanuit de keypad invoer nadat ik op C heb gedrukt
}
void loop() {
char key = keypad.getKey();
if (key != NO_KEY){
digitalWrite(23, HIGH);
digitalWrite(26, HIGH);
delay(60);
switch (key){
case 'A': resetGame(); break;
case 'B': break;
case 'C': setOwnTime();
case 'D': changePassword(); break;
case '#': checkPassword(); break;
case '*': resetPassword(); break;
default: processNumberKey(key);
}
void processNumberKey(char key) {
Serial.print(key);
userinput += key;
}
}
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: keypad input naar T.setTimer(h,m,s);
Tuurlijk:). zie String subString en String toInt.
Eerst haal je jouw H M en S uit de string vandaan en converteer ze naar een int. en je kan T setten
Eerst haal je jouw H M en S uit de string vandaan en converteer ze naar een int. en je kan T setten
- christiaan
- Berichten: 86
- Geregistreerd: 31 Dec 2015, 14:11
Re: keypad input naar T.setTimer(h,m,s);
denk dat er alleen een nadeel is,
H = uren = 1 cijfer maximaal
M = minuten = 2 cijfers maximaal
S = seconden = 2 cijfers maximaal.
Kan ik eerst opdelen in 1,2,2 digits en dan eventuele getallen van M en S dat met een 0 begint weer weg laten halen????
H = uren = 1 cijfer maximaal
M = minuten = 2 cijfers maximaal
S = seconden = 2 cijfers maximaal.
Kan ik eerst opdelen in 1,2,2 digits en dan eventuele getallen van M en S dat met een 0 begint weer weg laten halen????
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: keypad input naar T.setTimer(h,m,s);
Ofwel je maakt voor jezelf een harde afspraak dat je altijd 1-2-2 gebruikt ofwel je maakt onderscheid door een speciaal teken (bijvoorbeeld ":").
Wat jij redeneert, gaat volgens mij niet op:
cpp code
kan worden 1 uur 2 minuten 3 seconden of 1 uur 20 minuten 3 seconden. En zo zullen er legio voorbeelden kunnen voorkomen. Of je zorgt dat het altijd 5 tekens zijn en je moet altijd minuten en seconden als 2 cijfers inbrengen.
Als jij een String hebt met bijvoorbeeld "03" dan zal hij dat keurig vertalen in een int = 3. Overigens, soms leer je meer door gewoon eens met die functies te spelen.
Wat jij redeneert, gaat volgens mij niet op:
cpp code
1203
kan worden 1 uur 2 minuten 3 seconden of 1 uur 20 minuten 3 seconden. En zo zullen er legio voorbeelden kunnen voorkomen. Of je zorgt dat het altijd 5 tekens zijn en je moet altijd minuten en seconden als 2 cijfers inbrengen.
Als jij een String hebt met bijvoorbeeld "03" dan zal hij dat keurig vertalen in een int = 3. Overigens, soms leer je meer door gewoon eens met die functies te spelen.
- christiaan
- Berichten: 86
- Geregistreerd: 31 Dec 2015, 14:11
Re: keypad input naar T.setTimer(h,m,s);
Klopt nico over het leren van functies door te spelen, echter heb ik nu geen arduino voor de hand liggen. Maar wil wel graag beginnen met de code te schrijven.
Ik zal ten alle tijden zelf de input geven, dus dat zal altijd dezelfde opbouw geven.
Dus qua input wordt het dan: HMMSS. Maar is het zo dat als ik string to int gebruik, dat de eerste nul (0) nooit wordt getoond?????? Dus stel mijn input is: 10210 (1 uur, 2 minuten en 10 seconden) ook daadwerkelijk zo wordt uitgegeven als int? of wordt de output: 1 uur, 02 minuten en 10 seconden.
Ik kan dus nu nergens testen, dus heel lastig om het zelf nu te proberen. Vandaar mijn uitgebreide vraag en voorbeeld in deze post.
Ik zal ten alle tijden zelf de input geven, dus dat zal altijd dezelfde opbouw geven.
Dus qua input wordt het dan: HMMSS. Maar is het zo dat als ik string to int gebruik, dat de eerste nul (0) nooit wordt getoond?????? Dus stel mijn input is: 10210 (1 uur, 2 minuten en 10 seconden) ook daadwerkelijk zo wordt uitgegeven als int? of wordt de output: 1 uur, 02 minuten en 10 seconden.
Ik kan dus nu nergens testen, dus heel lastig om het zelf nu te proberen. Vandaar mijn uitgebreide vraag en voorbeeld in deze post.
- Gij Kieken
- Berichten: 631
- Geregistreerd: 15 Nov 2015, 11:54
Re: keypad input naar T.setTimer(h,m,s);
Los van de berekenings methode die je gebruikt,kun je met jou display TM1637 bepalen of je voorloop nullen wilt of niet en als je uiterst links dan wel van rechts wilt beginnen weergeven.
- christiaan
- Berichten: 86
- Geregistreerd: 31 Dec 2015, 14:11
Re: keypad input naar T.setTimer(h,m,s);
Positionering moet je niet naar kijken, dat wordt ergens anders opgevangen. Het gaat puur dat de notatie in T.setTimer goed komt te staan. Dus als er 2 minuten is dat er niet 02 komt te staan maar 2
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: keypad input naar T.setTimer(h,m,s);
Ik ben bang dat je het niet helemaal begrijpt wat je doorgeeft in setTimer. Dat zijn (neem ik nu voor het gemak ff aan) 3 x een int. En of je nu 03 of 3 in een int stopt, staat er gewoon 3 in.
Maar goed, ik lijk in herhaling te treden.
Maar goed, ik lijk in herhaling te treden.
9 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 23 gasten