Hallo Mike,
ich habe mir auch alles aus dem Netz zusammen gegoogelt.
Zitat:
Ach so, ich hatte gelesen dass der Raspi keine schnellen Impulse lesen kann
Na ja, der Raspi hat da da schon so seine schwächen z.B. bei der Schallgeschwindigkeit!!!!
Das liegt aber am Multitask , was der Arduino nicht hat.
A/DC kann der Arduino auch besser.
Da gibt es dann schon mal +- 3-4 mm div. hängt aber auch dann mit python zusammen.
Ich lese z.B Lüfter-Drehzahlen von: bis 5000 U/min mit C aus das geht.
Dateianhang:
lüfter.jpg
Kannst du das was Du bisher gemacht hast Skizzieren.
Hier mal so ein C. Code für z.B Lüfter
//
tacho-c// Kompiliert wird das ganze folgendermaßen:
sudo cc -o tacho tacho.c -lwiringPi// Benoetigte Bibliotheken einbinden
#include <stdio.h>
#include <wiringPi.h>
#include <stdlib.h>
#include <unistd.h>
// Anzahl der Tacho-Signale
int tacho_counter = 0;
int zaehler = 0; //Anzahl Impulse zählen
// Funktion Tacho-Signale zaehlen
void raise_tacho_counter()
{
tacho_counter++;
}
int main(int argc, char *argv[])
{
// Initialisierung
wiringPiSetup();
// Von GPIO Port 23 die Tacho-Signale auslesen
wiringPiISR( 4, INT_EDGE_RISING, raise_tacho_counter);
// Warten bis zwei Sekunden lang gezaehlt wurde
usleep(1000*1000);
if( tacho_counter > 0 )
printf("RPM = %d U/min von 5000\n",(tacho_counter/
9) *
30); //
durch 9 da pro Umdrehung 9 Impulse gegeben werden // Wenn tacho_counter == 0 dann uebergebe 0, sonst 1
if( tacho_counter == 0 )
printf("Lüfter Aus RPM = %d U/min\n",(tacho_counter/9) * 30); //durch 9 da pro Umdrehung 9 Impulse gegeben werden
// return 0;
else
return 1;
}
Da brauchst Du dann nur das Volumen pro z.B. L/min. anpassen.