Mal Licht mal Ton

Ich habe ein Programm dass mal Licht erzeugt und mal Ton unswar durcheinander und vom erzeugen des Lichte oder Tones soll die Zeit gemessen werden und dann wenn man auf nem Taster drück soll die Zeit gestoppt werden. Danach nochmal das gleiche und insgesamt 6xsoll das passieren.

Ich brauche es für die Schule und bin sehr neu was Arduino angeht.

Das ist mein Programm ,da fehlt noch viel aber ich komm nicht weiter.

Könnt ihr helfen??

int i,a,s;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C Lcd(0x3f,16,2);
void setup() {
Lcd.init();
pinMode(4,INPUT_PULLUP);
Serial.begin(9600);{
for(int i=0; i<5; i=i+1 );
Serial.println("Hallo");
Serial.println(i);
a=228;
}
pinMode(13,OUTPUT);
randomSeed(analogRead(A1));
Serial.begin(9600);
//i=("stoppt Zeit");
pinMode(buttonPin, INPUT_PULLUP);

}

void loop() {
Lcd.clear();
Lcd.setCursor(3,0);
Lcd.print("Zeit:");
Lcd.print(millis());
delay(100);
Lcd.backlight();
i=digitalRead(4);
Serial.println(i);
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);
tone(11,a);
delay(1000);
noTone(11);
delay(1000);
s=random(1,7);
Serial.println(s);

}

NT21:
Könnt ihr helfen??

Fasse zunächst Dein Programm in „Code-Tags“. Dann ist es besser les- und „bedienbar“. Das kannst Du auch nachtrräglich tun.

Gruß

Gregor

Ist ja interessant....noch eine Hausaufgabe.

Du solltest dir angewöhnen, deine Sketch besser zu formatieren und zu dokumentieren.
Das mit den Code-Tags wurde ja schon geschrieben.
Wenn der Sketch besser lesbar ist, dann wird dir sicher auch geholfen.
Aber die Hausaufgabe musst du selbst machen.

 Serial.begin(9600);{
 for(int i=0; i<5; i=i+1 );
 Serial.println("Hallo");
 Serial.println(i);
 a=228;
}

Was ist das denn für ein Mampf?

Hi

Bei einer Hausaufgabe will ich einfach nicht glauben, daß der Lehrer überall INT benutzt hat beim Lehren des Stoff.
Auch die zusätzliche Klammerung macht nur Sinn, wenn man eine Variable mehrfach initialisieren will (gibt Da eine nette Fehlermeldung bei switch, wenn dort in einem case eine Variable deklariert wird).

Alles in Allem sehr verworren.

MfG

NT21:
Ich habe ein Programm dass mal Licht erzeugt und mal Ton unswar durcheinander und vom erzeugen des Lichte oder Tones soll die Zeit gemessen werden und dann wenn man auf nem Taster drück soll die Zeit gestoppt werden. Danach nochmal das gleiche und insgesamt 6xsoll das passieren.

Ich brauche es für die Schule und bin sehr neu was Arduino angeht.

Das ist mein Programm ,da fehlt noch viel aber ich komm nicht weiter.

Könnt ihr helfen??

Nun sehr neu waren wir alle mal - das ist aber zu erlernen.

int i,a,s;

Da würde ich dir raten zu schreiben:

int i; // Die Variable für ........
int a; // Die Variable für die Tonhöhe

Es ist für dich besser lesbar und vor allem für alle die helfen wollen

Da würde ich dir raten immer gleich den Link zur Lib schreiben. Es gibt oft für ein und die selbe Aufgabe verschiedene Libs die aber alle ihre Eigenheiten haben. Du wirst da am Anfang öfter nachlesen müssen bist du deine Liblings Lib auswendig kennst.

#include <LiquidCrystal_I2C.h> // Arduino-LiquidCrystal-I2C-library/LiquidCrystal_I2C.h at master · fdebrabander/Arduino-LiquidCrystal-I2C-library · GitHub

for(int i=0; i<5; i=i+1 );
Serial.println("Hallo");
Serial.println(i);
a=228;
}
So nun mal Vorsicht. Du hast die Variable "i" schon mal verwendet. Da ist das noch kein Problem aber das kann dich in die Teufels Küche führen. Lies mal was eine globale und eine lokale Variable ist.

In diese Schleife schreibst du 5 mal Hallo - ok das kann noch ganz witzig sein aber der Variable "a" 5 mal den Wert 228 zuweisen bringt nicht wirklich was. Und das mit den Klammern bei den Schleifen - nicht ganz unwichtig.

//i=("stoppt Zeit");
Ok jetzt steht da mal in einen Kommentar wofür "i" verwendet werden soll
liest sich so die Variable für eine Stopp Zeit zu verwenden. Da wirst mal überlegen müssen in welchen Datenformat soll die Zeit gespeichert werden und ist das der richtige Variablen Typ
Alles hinter // ist ein Kommentar und hat nicht mit den Programm Funktionen zu tun.

i=digitalRead(4);
Jetzt ist aber die Variable "i" plötzlich der Inhalt vom Digital Eingang 4 - das wird ein Problem

delay(1000);
ja das mit dem Delay - für den Anfang ist es ok aber Delay hat den fürchterlichen Nachteil das gar nix passiert. Es wird keine Taste erkannt, es wird nichts ausgegeben. Da ist möglichst bald lernen angesagt. Blink without delay oder die Nachtwärterschaltung

s=random(1,7);
Upps, jetzt gibt es eine neue Variable "s". Welcher Typ ist den das?

Ja da sind noch ein paar Fehler. Auch wenn du die Idee nicht so toll findest würde ich dir raten die Grundlagen Beispiele durchzuarbeiten. Ja das ist aber alles erlernbar und deine Aufgabe ist lösbar.

Viel Erfolg

In diese Schleife schreibst du 5 mal Hallo - ok das kann noch ganz witzig sein ... Und das mit den Klammern bei den Schleifen - nicht ganz unwichtig.

Der zweite Satz ist sehr richtig. Der erste zeigt, dass du sogar Victor reingelegt hast.
Dumme Frage: Was macht das Semikolon hinter dem

 for ( ... ) ;

michael_x:
Der zweite Satz ist sehr richtig. Der erste zeigt, dass du sogar Victor reingelegt hast.
Dumme Frage: Was macht das Semikolon hinter dem

 for ( ... ) ;

Danke für den Input .. ich muss genauer lesen