Wieso funktioniert dieses Skript nicht -.-

 float sensorPin1 = A0;   
float sensorPin2 = A5;  //Pin, an den der LDR angeschlossen ist
float sensorWert1 = 0;    
float sensorWert2 = 0; //in dieser Variable wird der ausgelesene
int MausKlick = 13;                           //Wert zwischen gespeichert.
int time = 0;
void setup() {  
  Serial.begin(9600);      //Serielle Verbindung initialisieren
  pinMode (MausKlick,OUTPUT);
}

void loop() {
  sensorWert1 = analogRead(sensorPin2);
  sensorWert2 = analogRead(sensorPin1);  // Wert auslesen
  Serial.println(sensorWert1);
  Serial.println(sensorWert2);  // Über Serial senden
 delay(50);       // delay() bestimmt wie oft in der Sekunde

digitalWrite (MausKlick,LOW);
while (analogRead(sensorPin1)==45) ; 
Serial.println("Warten-1");

unsigned long time=micros();
Serial.println("Warten-2");

while (analogRead(sensorPin2)==44) ;

Serial.println("Warten-3");
time=(micros()-time)/2; 
Serial.println("Warten-zeit gerechnet");

Serial.println("Wieder Warten-1");

while (analogRead(sensorPin1)==45) ; 

delayMicroseconds(time);
digitalWrite (MausKlick,HIGH);

Serial.println("MausKlick");
}

Hallo alle zusammen =)

Wieso Funktioniert dieses Skript nicht ?

egal was ich eingebe ob < , > ,== oder was auch immer … er überspringt es und macht IMMER mit dem “MausKlick” weiter …

WIESO ?

für ein wenig Hilfe wär ich sehr Dankbar =)

Gruß Fabio

Hallo Fabio,

evtl. solltest Du Di doch mal die Grundlagen antun.

Grüße, Jürgen

Soviel falsch :D ?

Sehr viel. und zwar Basis-Grundlagen. Du kannst keine float-Variable für die Pin Nummer der analoge Pins verwenden. Gleichwenig ist es sinnvoll die ausgelesenen analogen Werte in float Variablen zu speichern.

while (analogRead(sensorPin1)==45) ; wird nie genau 45 ausgeben. Grüße Uwe

also schon mal so ja --->

int sensorPin1 = A0;   
int sensorPin2 = A1;  //Pin, an den der LDR angeschlossen ist
int sensorWert1 = 0;    
int sensorWert2 = 0; //in dieser Variable wird der ausgelesene
int MausKlick = 13;                           //Wert zwischen gespeichert.

void setup() {  
  Serial.begin(9600);      //Serielle Verbindung initialisieren
  pinMode (MausKlick,OUTPUT);
}

void loop() {

  sensorWert1 = analogRead(sensorPin1);  // Wert auslesen
  Serial.println(sensorWert1);          // Über Serial senden
  delay(1);                          // delay() bestimmt wie oft in der Sekunde


while (analogRead(sensorPin1)) ; 
Serial.println("Warten-1");

unsigned long time=micros();
Serial.println("Warten-2");

while (analogRead(sensorPin2)>=18) ;


time=(micros()-time)/2; 


Serial.println("Wieder Warten-1");

while (analogRead(sensorPin1)>=18) ; 

delayMicroseconds(time);
digitalWrite (MausKlick,HIGH);

Serial.println(MausKlick);
}

hab ich da iwo geschweifte Klammern vergessen ?

uwefed: Sehr viel. und zwar Basis-Grundlagen.

Dein Mausklick wird auch nie wieder zurückgesetzt. Nächstes mal auch endlich mal andere Threadtitel!

Dein Mausklick wird auch nie wieder zurückgesetzt. Nächstes mal auch endlich mal andere Threadtitel!

ja hab ich schon geändert

int sensorPin1 = A0;   
int sensorPin2 = A1;  //Pin, an den der LDR angeschlossen ist
int sensorWert1 = 0;    
int sensorWert2 = 0; //in dieser Variable wird der ausgelesene
int MausKlick = 13;                           //Wert zwischen gespeichert.

void setup() {  
  Serial.begin(9600);      //Serielle Verbindung initialisieren
  pinMode (MausKlick,OUTPUT);
}

void loop() {

  sensorWert1 = analogRead(sensorPin1);  // Wert auslesen
  Serial.println(sensorWert1);          // Über Serial senden
  delay(1);                          // delay() bestimmt wie oft in der Sekunde

digitalWrite (MausKlick,LOW);
while (analogRead(sensorPin1)<47) ; 
Serial.println("Warten-1");

unsigned long time=micros();
Serial.println("Warten-2");

while (analogRead(sensorPin2)<46) ;


time=(micros()-time)/2; 


Serial.println("Wieder Warten-1");

while (analogRead(sensorPin1)<47) ; 

delayMicroseconds(time);
digitalWrite (MausKlick,HIGH);

Serial.println(MausKlick);
}

Dann sag doch mal wie du den Thread genannt hättest ^^

Wenn du in einer while-Schleife nichts machen willst ist es meiner Meinung nach am leserlichsten so:

while(Bedingung)
{}

HÄ! aber ich will doch was machen ^^

ich bin mir grade nichtmal sicher ob "while" das richtige ist

weil ich WILL ja das wenn der wert unter zum beispiel 46 fällt das dann die "stoppuhr" startet

und fällt der wert von S2 unter 46 dann soll die zeit gestoppt werden ... das kann dich iwi nich so kompliziert sein das man sich da 2 Wochen dran aufhält oder ?!?!?! =(

Wenn du die while-Anweeisung mit einem Semikolon abschließt, passiert eben nicht das, was man sich eigentlich erhoffte. Und dann unbedingt Einrückungen machen, so ist der Code doch zu unleserlich.

Du hast da glaube ich den Code von jemandem kopiert ohne ihn zu verstehen. Wo das kopiert hast war das als Blockierung gedacht, im Sinne "Warte hier bis diese Bedingung nicht mehr" zutrifft. Deshalb das Semi-Kolon am Ende.

Wenn man nur eine Anweisung ausführen will, braucht man keine Klammern, aber bis du das sicher beherrscht solltest du so deutlich wie möglich schreiben und immer Klammern setzen:

while(Bedingung)
{
    blah 
    blah
}

Serenifly: Du hast da glaube ich den Code von jemandem kopiert ohne ihn zu verstehen. Wo das kopiert hast war das als Blockierung gedacht, im Sinne "Warte hier bis diese Bedingung nicht mehr" zutrifft. Deshalb das Semi-Kolon am Ende.

Nein habe ich nicht, ein User hier aus dem Forum war so nett und hat mir seine idee in form eines freischnauzte geschriebenen ... ich nenne es mal Satzes gepostet ... ohne klammern, semi-kolon oder sonstigen Zeichen .....

und ich mit meinem gefährlichem Halbwissen habe ihn dann zum Code geschrieben ^^ was mir nicht besonders gelungen ist wie man jetzt sieht :D

Da hilft nur Ärmel aufstürzen und Dein Halbwissen zu einem Ganzwissen zu bringen. Fang mal mit einem Tutorial über C an. Grüße Uwe

uwefed: Da hilft nur Ärmel aufstürzen und Dein Halbwissen zu einem Ganzwissen zu bringen. Fang mal mit einem Tutorial über C an. Grüße Uwe

Wo ist der "Gefällt mir" Button ;)

sschultewolter:

uwefed: Da hilft nur Ärmel aufstürzen und Dein Halbwissen zu einem Ganzwissen zu bringen. Fang mal mit einem Tutorial über C an. Grüße Uwe

Wo ist der "Gefällt mir" Button ;)

Das grüne links unter dem Karma ;) ;) ;) ;) Grüße Uwe

Du hast ja wohl genug Karma-Punkte. ;)

sth77: Du hast ja wohl genug Karma-Punkte. ;)

DU hast gefragt wie's geht und nicht ich um Punkte gebeten :roll_eyes: :roll_eyes: :roll_eyes: :D XD Du hast schon gesehen, ich antworte auf fast alles Viele Grüße Uwe