Dartscheibe Arduino

Gast #3659344
Lesenswert?

Hallo,

ich bin gerade dabei eine e-Dartscheibe mit einem Arduino Mini Pro zu 
verbinden. Die Dartscheibe hat eine 8x8er Kontaktmatrix. Das Auslesen 
klappt auch bei auch so weit ganz gut. Mein Problem ist jetzt 
allerdings, das eine genau eine Reihe nicht erkannt wird. Wenn ich den 
Widerstand messe reagiert diese Reihe aber wie erwartet und der 
Widerstandswert sinkt ab.

Folgenden Quellcode verwende ich bisher:
1
int Inputs[8] = { 2, 3, 4, 5, 6, 7, 8, 9};
2
int Outputs[8] = {A3, A2, A1, A0, A4, 13, 10, A5}; 
3

4
void setup(){
5
  int i;
6
  Serial.begin(19200);
7
  Serial.println("Start Config");
8
  for(i=0;i<8;i++){
9
    pinMode(Inputs[i], INPUT_PULLUP); 
10
    pinMode(Outputs[i], OUTPUT); 
11
    digitalWrite(Outputs[i], HIGH);
12
  }
13
  Serial.println("Start Reading");
14
  delay(2000);    
15
}
16

17
void loop() {
18
  int i,j;
19
  for(i=0;i<8;i++){
20
    digitalWrite(Outputs[i], LOW);
21
    for(j=0;j<8;j++){
22
      if(digitalRead(Inputs[j]) == LOW){
23
        Serial.print(i+1);
24
        Serial.println(j+1);
25
        delay(500);
26
        break;
27
      }
28
    }
29
    digitalWrite(Outputs[i], HIGH);
30
  }
31

32
}
Wenn bei den Outputs der 7. Eintrag (Pin 10) abgefragt werden soll, dann 
bekomme ich keine saubere Auswertung. Ich habe auch schon versucht die 
Reihe auf einen anderen Pin zu legen. Das hat aber nichts gebracht.

Habt Ihr noch eine Idee?
Gast #3659400
Lesenswert?

Dartscheibe schrieb:

> void loop() {
>   int i,j;
>   for(i=0;i<8;i++){
>     digitalWrite(Outputs[i], LOW);
>     for(j=0;j<8;j++){
>       if(digitalRead(Inputs[j]) == LOW){
>         Serial.print(i+1);
>         Serial.println(j+1);
>         delay(500);
>         break;
>       }
>     }
>     digitalWrite(Outputs[i], HIGH);
>   }
> }

> Wenn bei den Outputs der 7. Eintrag (Pin 10) abgefragt werden soll, dann
> bekomme ich keine saubere Auswertung. Ich habe auch schon versucht die
> Reihe auf einen anderen Pin zu legen. Das hat aber nichts gebracht.
>
> Habt Ihr noch eine Idee?

Tausche einfach mal zwei Anschlüsse der Scheibe, den, der Probleme macht 
mit einem von denen, die keine macht. Wandert das Problem mit, ist die 
Ursache in der Scheibe zu suchen. Wandert es nicht mit, ist die Ursache 
in deinem Programm.

Logisch, oder?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren