int zeit1 = 0;
int zeitsolange = 1000;
void Unterprogramm1();
void Unterprogramm2();
void setup() {
pinMode( 2 , INPUT);
pinMode( 5 , OUTPUT);
pinMode( 6 , OUTPUT);
pinMode( 7 , OUTPUT);
zeit1 = 0;
zeitsolange = 1000;
}
void loop() {
zeitsolange = millis();
Unterprogramm1();
Unterprogramm2();
}
zeit1 = ( zeit1 + 1 );
while ( ( zeit1 == 5 ) )
zeit1 = 1;
}
//Dies ist Unterprogramm1
void Unterprogramm1() {
if (( digitalRead(2) && ( ( zeit1 == 2 ) || ( zeit1 == 4 ) ) )) {
tone(3, 800, 1000);
for (int i = 0; i < 5; i++){
digitalWrite( 6 , HIGH );
delay( 100 );
digitalWrite( 6 , LOW );
delay( 100 );
}
zeitsolange = ( zeitsolange - 50 );
if (( zeit1 == 0 )) {
zeitsolange = 1000;
for (int i = 0; i < 25; i++){
digitalWrite( 6 , HIGH );
delay( 100 );
digitalWrite( 6 , LOW );
delay( 100 );
}
}
}
if (( digitalRead(2) && ( ( zeit1 == 1 ) || ( zeit1 == 3 ) ) )) {
tone(3, 800, 1000);
for (int i = 0; i < 10; i++){
digitalWrite( 5 , HIGH );
digitalWrite( 7 , HIGH );
delay( 100 );
digitalWrite( 5 , LOW );
digitalWrite( 7 , LOW );
delay( 100 );
}
zeitsolange = 1000;
}
}
//Dies ist Unterprogramm2
void Unterprogramm2() {
if (( zeit1 == 1 )) {
digitalWrite( 5 , HIGH );
digitalWrite( 6 , LOW );
digitalWrite( 7 , LOW );
}
if (( zeit1 == 2 )) {
digitalWrite( 5 , LOW );
digitalWrite( 6 , HIGH );
digitalWrite( 7 , LOW );
}
if (( zeit1 == 3 )) {
digitalWrite( 5 , LOW );
digitalWrite( 6 , LOW );
digitalWrite( 7 , HIGH );
}
if (( zeit1 == 4 )) {
digitalWrite( 5 , LOW );
digitalWrite( 6 , HIGH );
digitalWrite( 7 , LOW );
}
}
in diesen fehler sagt mir das programm das ich ein nicht vorhanden befehl benutze namens zeit1. bei zeit 1 handelt es sich aber bei einer variable. kann mir bitte wer hier helfen ich sitze hier dran schon 5 stunden und muss es morgen fertig abgeben. danke im vorhinaus
phillino:
zeit1 = ( zeit1 + 1 );
der fehler is hier bei angeblich bei der 5 ten zeile bei void loop
noiasca
January 15, 2024, 10:32pm
3
phillino:
eine Zeile vor der Verwendung der Variable schließt du die funktion loop() schon wieder ab.
das
zeit1 = ( zeit1 + 1 );
steht somit wieder "außerhalb" im globalen Scope - was so nicht funktioniert.
Drück mal STRG-T in der IDE - dann wird der Sketch formatiert und du siehst deinen Klammer-Fehler
1 Like
wno158
January 15, 2024, 10:34pm
4
Da ist hinter dem Aufruf Unterprogramm2();
eine schließende Klammer zu viel.
Damit rutscht Deine Zuweisung an zeit1
nach außerhalb der loop()
-Funktion.
Nimm die weg und es kompiliert!
STRG-T zum Auto-Formatieren wirkt manchmal Wunder.
Oops - ich war zu langsam, bitte um Entschuldigung.
1 Like
WOW danke es funktioniert ich weiß nicht wie ich euch danken könnte :DDDDDDDDDDDDDD
Ich freu mich so sehr wie ein kind was für eine nicht gelernte arbeit ne 1 bekommt. nur das es hier nicht der fall ist
wno158
January 15, 2024, 10:37pm
7
Ich hätte da eine Idee: Mach diesen Fehler einfach nicht nochmal
1 Like
das ist ne super idee und werde ich mir gleich in notizen aufschreiben
ich danke euch beiden von herzen und wünche euch noch ne schöne nacht/tag was auch immer
muss ich den beitrag löchen oder kann ich den stehen lassen?
ist meine erste frage hier deswegen kenne ich mich noch nicht so gut aus
Franz54
January 15, 2024, 10:41pm
12
Ja, mit falschen Klammern kann man sich viele Fallstricke legen. Und sie sind oft bischen schwer zu finden.
1 Like
noiasca
January 15, 2024, 10:43pm
13
stehen lassen.
EINE Antwort als Lösung markieren (gespeichert wird immer die letzte Markierung ... )
Antworten die geholfen haben liken.
1 Like
wno158
January 15, 2024, 10:44pm
14
Kein Problem. Jeder hier hat mal mit einer ersten Frage angefangen.
Ehre wem Ehre gebührt:
Bitte markiere Beitrag #3 als Lösung, nicht meinen - denn der enthält schon den entscheidenden Hinweis und war früher.
2 Likes
ok danke Leute. noiasca hier mit bist du nun meine erste lösung in Arduino forum
combie
January 15, 2024, 10:49pm
16
Ja, wenn man nicht zählen kann, oder nicht mit der Maus drauf zeigt(dann, nämlich hilft einem die IDE)
Auch der Allmann Formatierstil kann helfen.
Oder überhaupt Autoformat
1 Like
Wenn du noch mehr lernen willst, schau dir an, was das while bewirkt, und lass dir gesagt sein, dass es auch ein if gibt.
Generell ist ein if besser als ein while . (warum ?)
In deinem Fall ist es wurscht.
1 Like
combie
January 16, 2024, 11:50am
18
Hmm...
Ich vermute, dass in der Frage mehr Gehalt wohnt, als in den möglichen Antworten.
1 Like