Immer nach 32700 ms hält es einfach an.
Hab den Sketch schon von vorne nach hinten über Kopf gedreht.
Es geht immer.
Und es stoppt immer nach 32 s…
int rpm;
int vel;
int t;
int onTime =2;
int offTime = 200;
#define rpmIn A0
#define rpmOut 13
#define velIn A1
#define velOut 11
void setup() {
// put your setup code here, to run once:
pinMode(rpmIn,INPUT);
pinMode(rpmOut,OUTPUT);
pinMode(velIn,INPUT);
pinMode(velOut,OUTPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if (t + offTime < millis()){
digitalWrite(rpmOut,HIGH);
t=millis();
Serial.println(t);
}
if (t + onTime < millis()){
digitalWrite(rpmOut,LOW);
// t=millis();
Serial.println(t);
}
}
Vielleicht seh ich ja grad den Wald vor lauter Bäumen nicht…
Werde mal 5 min. das gute Wetter genießen
Das ist eine gute Idee! Ich gehe zum Rauchen auch immer an die frische Luft (was sonst soll ich dort?!)
Mir ist aufgefallen, dass t nicht initialisiert wird.
Ich habe zwar mal gelesen, dass lokale Variablen automatisch initialisiert werden und globale nicht (oder umgekehrt) - weil ich aber keine Lust habe mir das zu merken, initialisiere ich einfach immer.
Und ich würde überlegen, statt Precompilerdefinitionen Konstanten zu nehmen. Das erzeugt üblicherweise erheblich einfacher zu verstehende Fehlermeldungen. Precompiler benutze ich eigentlich nur, wenn ich String zusammensetzen will (z.B. die Basis für einen MQTT-Channel), weil der Precompiler direkt benachbarte String literals zusammenfasst und man dementsprechend im code nicht konkatenieren muss. ("fu""bar" -> "fubar")
On the Arduino Uno (and other ATMega based boards) an int stores a 16-bit (2-byte) value. This yields a range of -32,768 to 32,767 (minimum value of -2^15 and a maximum value of (2^15) - 1).
Danke für den Denkanstoß !!
Die Reihenfolge der Abfrage hatte ich zu dem Zeitpunkt schon 5 mal hin und her gewendet.