ESP8266 D1 mini met TM1638, knoppen werken niet

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 27-07 17:55
Ik heb een ESP8266 D1 mini waarop ik een TM1638 heb aangesloten. Ik heb al verschillende voorbeelden van het internet geplukt maar bij geen enkele van de voorbeelden krijg ik de knoppen aan de praat. Ik heb een andere TM1638 aangesloten: zelfde probleem.

Ziet iemand wat er mis is met onderstaande code? De display geeft "test 0" weer maar that's it. Hij gaat naar case0 en geraakt daar niet uit. De serial monitor geeft dit weer: (altijd 0, ook al druk ik op een knop en hou ik die ingedrukt)
code:
1
2
3
4
5
6
7
21:52:44.058 -> 0
21:52:44.058 -> 0
21:52:44.058 -> 0
21:52:44.058 -> 0
21:52:44.058 -> 0
21:52:44.058 -> 0
21:52:44.058 -> 0


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <TM1638.h>
int strobe = 14;
int clck = 12;
int data = 13;
int dots = 0x0; // display all decimal points, value in hexadecimal
int leds = 0xFF; // mask to display LEDS
byte keys; // key value
double number; // number to display
// define a module
TM1638 module(data, clck, strobe);

void setup() {
Serial.begin(9600);
module.clearDisplay(); // clear the display
}

void loop() {
// display a number
  switch(keys){
    case 0:
    module.setDisplayToString("test 0 ");
    break;

    case 1:
 module.setDisplayToString("test 1 ");
break;

case 2:
module.setDisplayToString("test 2 ");
break;

case 4:
module.setDisplayToString("test 3 ");
break;

case 8:
module.setDisplayToString("test 4 ");
break;

case 16:

break;

case 32:

break;

case 64:

break;

case 128:

break;

default:

break;
}

getKeyPressed();

}


void getKeyPressed(){
keys = module.getButtons();
Serial.println(keys);
// light the LED
module.setLEDs(keys & leds);
}

Acties:
  • +1 Henk 'm!

  • Raymond P
  • Registratie: September 2006
  • Laatst online: 19:55
Wat is je datatype van keys?

- knip -


Acties:
  • 0 Henk 'm!

  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 27-07 17:55
Ik vrees dat ik daar geen idee van heb. Ondertussen heb ik iets anders gevonden wat wel werkt: https://github.com/maxint.../TM16xxButtons_clicks.ino

Ik probeer ga eerst deze eens proberen te begrijpen want deze heeft wel leuke functionalitleit (1x click, lang klikken, dubbelklik)

Acties:
  • 0 Henk 'm!

  • Glewellyn
  • Registratie: Januari 2001
  • Laatst online: 24-09 23:04

Glewellyn

is er ook weer.

Het probleem dat ik zie met de code die je eerder postte is dat je de variabele "keys" vergelijkt met waarden in de case statements. Dit werkt niet goed omdat de variabele "keys" van het type byte is en de waarde in het case statement is een integer.

Om ze te kunnen vergelijken zal je de byte naar een integer moeten converteren.

*zucht*