Fehler Im Arduino code

Gast #3427296
Lesenswert?
• ▲
▼
Habe einen Code geschrieben der eine Tastenkombi mit zwei tastern in ein 
Arrray schreiben soll, und dieses stück für stück wieder ausgibt. Aber 
irgendwie bekomme ich nur Ausgaben wie:
L



2
ö



2
1
 const int buttonPinRot = 4;
2
const int buttonPinBlau = 5;
3
int rot = 0;
4
int blau = 0;
5
int bpr = buttonPinRot;  //PinShorts
6
int bpb = buttonPinBlau;
7
int i= 0;  
8
char prv = rot;        //Pinvariablen
9
char pbv = blau;
10
char Muster1[5] = {
11
  rot, blau, blau, rot, rot};
12
char Muster1vgl[]={
13
};
14
//
15
//=========================================Setup===============================================================================
16
//
17
void setup() {
18
  pinMode(buttonPinRot, INPUT); //PinModeDeclarations
19
  pinMode(buttonPinBlau, INPUT);
20
  Serial.begin(9600); // debug
21

22
}
23
//
24
//=========================================Loop===============================================================================
25
//
26
void loop() {
27
 for (int i=1; i < 6; i++){
28
    do {
29
      delay(20);
30
    }
31
    while((digitalRead(bpr) == LOW) && (digitalRead(bpb) == LOW));
32

33
      if (digitalRead(bpr == HIGH)){
34
        Muster1vgl[i] =  prv;
35
        //blink rote LED
36
        delay(10);
37
      }
38
    if (digitalRead(bpr == HIGH)){
39
      Muster1vgl[i] =  pbv;
40
      //blink blaue LED
41
      delay(10);
42
    }
43
  }
44
Serial.println (Muster1vgl[0]);
45
Serial.println (Muster1vgl[1]);
46
Serial.println (Muster1vgl[2]);
47
Serial.println (Muster1vgl[3]);
48
Serial.println (Muster1vgl[4]);
49

50
}
An Pin 4 und 5 digital sind Taster angeschlossen die 5 Volt auf die Pins 
geben. Zusätzlich hängen die Pins mit PDwiderstand an 0V
#3427355
Lesenswert?
• ▲
▼
Es sind noch einige Verbesserungen möglich.

Stephan Cacher schrieb:
> An Pin 4 und 5 digital sind Taster angeschlossen die 5 Volt auf die Pins
> geben. Zusätzlich hängen die Pins mit PDwiderstand an 0V
Die würde ich mit Pullup betreiben. Schau mal bei 
File/Examples/02Digital/DigitalInputPullup

prv und prb sind beide gleich (0)

Du wirfst Zeichen und Zahlen durcheinander
1
Muster1vgl[i] =  prv;
setzt das Ausgabezeichen auf ASCII 0, d.h. da wird nichts angezeigt.

Verwende doch mal z.B. 'R' und 'B'
1
Muster1vgl[i] =  'R';
#3427887
Lesenswert?
• ▲
▼
Endlich klappt es so wie ich es ungefähr wollte. Vielen Dank erstmal 
dafür.
Will ich jetzt aber mein neues Array mit meinem Original Array 
vergleichen kommt folgende Fehlermeldung:
1
#include <Bounce.h>
2
const int buttonPinRot = 4;
3
const int buttonPinBlau = 5;
4
int rot = 0;
5
int blau = 0;
6
int bpr = buttonPinRot;  //PinShorts
7
int bpb = buttonPinBlau;
8
int i= 0;  
9
const char Muster1[5] = {
10
  rot, blau, blau, rot, rot};
11
char Muster1vgl[5]={
12
};
13
//
14
//=========================================Setup===============================================================================
15
//
16
void setup() {
17
  pinMode(buttonPinRot, INPUT); //PinModeDeclarations
18
  pinMode(buttonPinBlau, INPUT);
19
  Serial.begin(9600); // debug
20

21
}
22
//
23
//=========================================Loop===============================================================================
24
//
25
void loop() {
26

27
  EingabeCheck1();
28
  Serial.println("Fertig");
29
  if ((Muster1[0] = Muster1vgl[0]) && (Muster1[1] = Muster1vgl[1]) && (Muster1[2] = Muster1vgl[2]) && (Muster1[3] = Muster1vgl[3]) 
30
  &&  (Muster1[0] = Muster1vgl[0])) {
31
    Serial.println("SUCCESS");
32
  }
33

34
}
Cache_ArrayChange.ino: In function 'void loop()':
Cache_ArrayChange:29: error: assignment of read-only location 
'Muster1[0]'
Cache_ArrayChange:29: error: assignment of read-only location 
'Muster1[1]'
Cache_ArrayChange:29: error: assignment of read-only location 
'Muster1[2]'
Cache_ArrayChange:29: error: assignment of read-only location 
'Muster1[3]'
Cache_ArrayChange:30: error: assignment of read-only location 
'Muster1[4]'

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.