Hallo,
ich experimentiere gerade mit einem Ultraschallsensor.
Wenn der Befehl pulseIn in diesem Hauptprogramm ist, funktioniert alles gut.
Code:double Ent; void setup() { Serial.begin(250000); while (!Serial); pinMode (13, OUTPUT); // Ausgang für das US-Triggersignal } void loop() { delay (20); digitalWrite (13, LOW); //negative Flanke für Triggersignal Ent = pulseIn(4, HIGH); Serial.print ("Ent = "); Serial.println(Ent); delay (20); digitalWrite (13, HIGH); // Triggersignal zurück auf High setzen }
Versuche ich die US Bearbeitung aber in einem eigenen TAB laufen zu lassen, klappt das nicht:
Das Unterprogramm wird durchlaufen, aber die Variable Ent ist immer nur 0.00Code:double Entfernung () { static double Ent; Serial.println ("ich bin im UP"); delay (20); digitalWrite (13, LOW); //negative Flanke für Triggersignal Ent = pulseIn(4, HIGH); Serial.print ("Ent = "); Serial.println(Ent); return Ent; // gibt die Pulslänge in Mikrosekunden zurück // während der Messung geht der Programmlauf **** nicht ***** weiter // sondern wird real für 15, theoretisch für 20 ms angehalten delay (20); digitalWrite (13, HIGH); // Triggersignal zurück auf High setzen } // >>>>> ENDE int Entfernung
Kann es sein, dass der pulseIn in einem Tab nicht funktioniert?
Gruß
fredyxx







 
			
			 
					
					
					
						 Zitieren
Zitieren

Lesezeichen