Hallo liebes Forum,
kurz zu mir ich heise Patrick bin 26 und derzeit Student und Hobbybastler.
Nun zu meinem Problem ich möchte mit einem Arduino Nano und einem Trct5000(IR-Sensor) die Drehzahl eines Puch Maxi(Mofa) Motors auslesen und diese über den Serialmonitor an einen Raspberry Pi übergeben.
Also die Verbindung zwischen Arduino und Raspberry funktioniert, nur möchte ich nur alle 100ms einen Wert an den Raspberry übergeben und da hänge ich gerade mit meinem code den mit der millis() funktion bekomme ich gar keinen Wert mehr.
Vielleicht könnt ihr mir da helfen
mfg
phantomixx
//Bibliotheken
#include <Wire.h>
//Variablen
unsigned long time = 0;
int Umdrehungen;
int Intervallzeit;
long Altezeit = 0;
unsigned long startMillis;
unsigned long aktuellMillis;
const unsigned long periode = 100;
void setup() {
Serial.begin(115200); //Serielleverbindung aufbauen
while(!Serial); //warten bis Serielleverbindung steht
startMillis = millis(); //Zeit für Pausenzeit Speichern
attachInterrupt(digitalPinToInterrupt(2), Intervall, RISING); //Interrupt Event
}
void Intervall() {
time = millis(); //Bei Interrupt Zeitspeichern in ms-Wert
}
void loop() {
aktuellMillis=millis();
if(aktuellMillis - startMillis >= periode) {
Intervallzeit = ( Altezeit - time ); //Berechnet die Zeitr einer Umdrehung
if( Intervallzeit <= 60000L) { //kontrolliert ob die Intervallzeit plausibel ist
Umdrehungen = (1/Intervallzeit)*60000L; //Berechnet die Umdrehungen pro Minute
Altezeit = time; //Speichert den ms-Wert als Altezeit
Serial.println(Umdrehungen,DEC); //gibt die Umdrehungen pro Minute im Serialmonitor aus
}
else {
Serial.println(0,DEC); //Wenn die Intervallzeit unplausibel ist Ausgabe 0
}
startMillis = aktuellMillis;
}
}