Go Down

Topic: Programmcode funktioniert nicht, obwohl ich alles richtig gemacht hab (Read 258 times) previous topic - next topic

byMilii


Ich habe alles richtig gemacht (Der Code steht im Arduino Uno Projektbuch. Er sagt mir, dass "int buttons[0]" Probleme verursacht ich weiß aber nicht warum. Wenn ihr wisst, was da los ist, bitte schreibt mir! Danke im voraus

HotSystems


Ich habe alles richtig gemacht (Der Code steht im Arduino Uno Projektbuch. Er sagt mir, dass "int buttons[0]" Probleme verursacht ich weiß aber nicht warum. Wenn ihr wisst, was da los ist, bitte schreibt mir! Danke im voraus
Wie sollen wir erkenne, ob alles richtig ist.
Du solltest schon dienen Sketch posten, so wie du ihn in der IDE stehen hast.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

byMilii

file:///C:/Users/Emil/Pictures/Problem%20Arduino.PNG Das hier ist das Bild

HotSystems

file:///C:/Users/Emil/Pictures/Problem%20Arduino.PNG Das hier ist das Bild
Wie bitte sollen wir auf deinen PC sehen ??

Poste den Sketch hier in Code-Tags, damit wir den sehen.

Schaltfläche </> im Editorfenster oben links.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

byMilii

int buttons[3];
int buttons[0] = 2;
int notes[] = {262,294,330,349};
void setup() {
  Serial.begin(9600);

}

void loop() {
  int keyVal = analogRead(A0);
  Serial.println(keyVal);
  if(keyVal == 1023){
    tone(8, notes[0]);
  }
  else if(keyVal >= 5 && keyVal <= 10){
    tone(8, notes[2]);
  }
  else if(keyVal  >= 5 && keyVal <= 10){
    tone(8, notes[3]);
  }
  else{
    noTone(8);
  }

}

Das hier ist der Code, ist eigentlich nix falsch

byMilii

Sorry, da sollte kein Smiley sondern 8 ) stehen. (Ohne das Leerzeichen zwischen 8 und der Klammer)

HotSystems

Und was verstehst du unter "Code-Tags" nicht ?
Wenn du die verwendest, ist dein Sketch auch richtig lesbar.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

combie

Quote
ist eigentlich nix falsch
Wenn nix falsch wäre, dann würde der Compiler nicht mit dir schimpfen!

int buttons[3];
int buttons[0] = 2;

int notes[] = {262,294,330,349};

Du solltest dir ein schönes C++ Buch schnappen, und mal nachlesen, wie man Arrays definiert und initialisiert.
Bei notes kannst du es, und bei buttons nicht?
Das größte Problem, ist die Wahl der richtigen Gedanken.

Mickat1427

Code: [Select]


int buttons[3];
int buttons[0] = 2;
int notes[] = {262,294,330,349};
void setup() {
  Serial.begin(9600);

}

void loop() {
  int keyVal = analogRead(A0);
  Serial.println(keyVal);
  if(keyVal == 1023){
    tone(8, notes[0]);
  }
  else if(keyVal >= 5 && keyVal <= 10){
    tone(8, notes[2]);
  }
  else if(keyVal  >= 5 && keyVal <= 10){
    tone(8, notes[3]);
  }
  else{
    noTone(8);
  }

}




Ich hab ihn mal in Code Tags gepackt.

dony

Sorry, da sollte kein Smiley sondern 8 ) stehen. (Ohne das Leerzeichen zwischen 8 und der Klammer)
Deshalb solltest Du auch Code Tags verwenden, link oben </>. oder
[ code ] ... [ / code] <- ohne Abstand.
file:///C:/Users/Emil/Pictures/Problem%20Arduino.PNG <- Vielleicht hab ich nicht mal ein Laufwerk C, was dann? Das Forum bietet einen Image Upload an, einträge lassen sich editieren usw. (How to Use)

Aber das ist schon eine Verwirrende Geschichte, den der Code funktioniert wirklich nicht, zumindest nicht mit der aktuellen IDE. In der aktuellen IDE steht auch ein anderer Beispiel Code als in unseren Buch.   :o :smiley-confuse:
Code: [Select]
int buttons[3];
int buttons[0] = 2; // <- Das kann ja nicht funktionieren, steht aber so im Büchlein. :(
.....
int buttons[3]; // versuch das mal
buttons[0] = 2; // <- Das funktioniert auch nicht, warum eigentlich nciht?



Da ich zufällig das Buch griffbereit hab und vor Jahren alle Tutorials gemacht habe, konnte ich erraten welchen Code Du überhaupt meinst: Projekt 7 - Keyboard, Der Code in meinem Büchlein ist der selbe wie Dein Code, der Code funktioniert nicht. Der funktionierende, dazugehörige Code gibt es in der IDE unter Beispiele->10.StarterKit->07Keyboard
Code: [Select]
int notes[] = {262, 294, 330, 349};

void setup() {
  //start serial communication
  Serial.begin(9600);
}

void loop() {
  // create a local variable to hold the input on pin A0
  int keyVal = analogRead(A0);
  // send the value from A0 to the Serial Monitor
  Serial.println(keyVal);

  // play the note corresponding to each value on A0
  if (keyVal == 1023) {
    // play the first frequency in the array on pin 8
    tone(8, notes[0]);
  } else if (keyVal >= 990 && keyVal <= 1010) {
    // play the second frequency in the array on pin 8
    tone(8, notes[1]);
  } else if (keyVal >= 505 && keyVal <= 515) {
    // play the third frequency in the array on pin 8
    tone(8, notes[2]);
  } else if (keyVal >= 5 && keyVal <= 10) {
    // play the fourth frequency in the array on pin 8
    tone(8, notes[3]);
  } else {
    // if the value is out of range, play no tone
    noTone(8);
  }
}



Das ich das zufällig griffbereit hatte...  :smiley-confuse:
Newsticker:
Die Änderung meines Abschied Grußes ist Teil meiner Corporate Identity/Design Anpassung.

combie

Quote
buttons[0] = 2; // <- Das funktioniert auch nicht, warum eigentlich nciht?
In C und C++ gehören Anweisungen in einen Anweisungsblock{}.
Es gibt keine Anweisungen außerhalb von Anweisungsblöcken



Code: [Select]

int buttons[3];

void setup() {
  //start serial communication
  Serial.begin(9600);
  buttons[0] = 2;
}


Alternativ:

Code: [Select]

int buttons[3]{2};

void setup() {
  //start serial communication
  Serial.begin(9600);

}
Das größte Problem, ist die Wahl der richtigen Gedanken.

byMilii

@dony Danke! Hast recht, kann nich funktionieren, habs nicht richtig hinterfragtz, weil man von so nem Büchlein ja schon erwarten kann, dass das, was da drinsteht richtig ist :D

postmaster-ino

Hi

Ähnliches hatte ich vor bestimmt 30 Jahren - ein Buch über die Programmiersprache Basic von DataBecker - wenn man die dort abgedruckten Listings fehlerfrei zum Laufen bekommen hatte, hat man auch was gelernt.
So gesehen war das Buch das Geld wert!

MfG

HotSystems

....Hast recht, kann nich funktionieren,..... ja schon erwarten....
Und du solltest zukünftig auch auf unsere Antworten reagieren, das erwarten wir.....
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

dony

In C und C++ gehören Anweisungen in einen Anweisungsblock{}.
Es gibt keine Anweisungen außerhalb von Anweisungsblöcken
Danke!  :)
Hab mir stark eingebildet das man ein Element in einem Array ohne {} definieren kann. Jetzt ist alles klar. :)

@byMilii: Einerseits verstehe ich das man in so einer Situation frustriert ist und nicht an alles denkt aber potentielle Helfer können nichts dafür und ohne Code und ordentliche Frage bzw. Antworten kann man nicht helfen nur raten.  :)

Grüße,
Donny
Newsticker:
Die Änderung meines Abschied Grußes ist Teil meiner Corporate Identity/Design Anpassung.

Go Up