Motordrehzahl am Arduino auswerten (primär Elektronik Frage)

guten Abend,

aha :wink: (zu oben)

Weis nicht ob Gunther das meinte, aber mittels kapazitiven Sensor kann man das vorhandene vorbeisausende Metallteil erfassen. Damit hätte man keine gefährliche Wechselspannung und alles im grünen Bereich.

Doc_Arduino:
Weis nicht ob Gunther das meinte, aber mittels kapazitiven Sensor kann man das vorhandene vorbeisausende Metallteil erfassen. Damit hätte man keine gefährliche Wechselspannung und alles im grünen Bereich.

Vorbeisausende (Ferromagnetische) Metallteile erfasst man am besten mit einem induktiven Sensor. Weil Eisen das magnetische Feld stärker beeinflusst als das elektrische.

Dieser Logik folgend werden in der Motorentechnik auch ausschliesslich Sensoren die das magnetfeld auswerten verbaut, wenn es darum geht die drehbewegung des Motors zu erfassen: Meist inuktive, weil billiger aber auch Hall-Sensoren. Daher ist der Sensor, dessen Signal Michl auswerten will auch ein induktiver, man erkennt es an der typischen Signalform.

Meine Idee mit dem kapazitivem Abgreifen bezog sich auf das Hochspannungs-Zündsignal. Etwas in der Art, wie früher Zündzeitpunkt stroboskop Pistolen das Signal abgriffen: mit einer Klemme die um das Zündkabel geklemmt wurde.

guntherb:
Vorbeisausende (Ferromagnetische) Metallteile erfasst man am besten mit einem induktiven Sensor. Weil Eisen das magnetische Feld stärker beeinflusst als das elektrische.

Dieser Logik folgend werden in der Motorentechnik auch ausschliesslich Sensoren die das magnetfeld auswerten verbaut, wenn es darum geht die drehbewegung des Motors zu erfassen: Meist inuktive, weil billiger aber auch Hall-Sensoren. Daher ist der Sensor, dessen Signal Michl auswerten will auch ein induktiver, man erkennt es an der typischen Signalform.

Meine Idee mit dem kapazitivem Abgreifen bezog sich auf das Hochspannungs-Zündsignal. Etwas in der Art, wie früher Zündzeitpunkt stroboskop Pistolen das Signal abgriffen: mit einer Klemme die um das Zündkabel geklemmt wurde.

Doc_Arduino:
Damit hätte man keine gefährliche Wechselspannung und alles im grünen Bereich.

Die Wechselspannung ist nicht gefährlich. Das ist nur ein Sensorsignal, keine Kraftwerksleitung! Das ist wie beim Zündfunken: das gefährlichste daran ist, dass man erschrickt und sich beim zurückzucken den Kopf anhaut! :wink:

Hallo zusammen und einen schönen Sonntag!

Wow, hier ist ja eine richtige Diskussion entbrannt. Toll und vielen Dank für die vielen Antworten.

Nochmal zum besseren Verständnis, wie das bei dem Motor ist. Da ist ja wie bei den meisten Aussenbordern eine Gearbox dabei. Also das Ding vorn neben dem Lenkrad, wo man Vorwärts/Rückwerts/Neutral einstellt, Gas gibt, die Zündung usw...

Da hängt eben genau ein Kabel raus, das dieses Drehzahlsignal ausgibt. Was eure Befürchtungen bezüglich der Last angeht, sehe ich weniger ein Problem (hoffe ich) da es ganu dafür auch analoge Zeiger - Instrumente gibt, die man direkt da dran stöpseln kann. Die Erdung geht übers Gehäuse.

@gunterherb

Danke für Deine Zeichung, das löte ich mir mal zusammen und probier es einfach aus.
Eine Frage noch dazu. Welcher der Eingänge "Drehzahlsignal A oder B" wäre das Signal? Weil ich hab ja nur ein Draht, der andere muss auf Erde. Oder ist das egal?

Gruß und noch einen entspannten Sonntag, Michl

TEC_MICHL:
@guntherb

Danke für Deine Zeichung, das löte ich mir mal zusammen und probier es einfach aus.
Eine Frage noch dazu. Welcher der Eingänge "Drehzahlsignal A oder B" wäre das Signal? Weil ich hab ja nur ein Draht, der andere muss auf Erde. Oder ist das egal?

Jepp, das ist egal!
Ich war davon ausgegangen, dass du die beiden Anschlüsse des Sensors zur Verfügung hast.
Wenns nur ein Kabel ist, dann geht das auf "Drehzahl A", und "Drehzahl B" geht auf Fahrzeug-Masse.

Vielen Dank nochmal für die Antworten. Bin beim stöbern auf den hier gestoßen:

http://www.conrad.biz/ce/de/product/184098/Optokoppler-mit-Schmitt-Trigger-Sharp-PC-900-DIP-6-Ausfuehrung-Optokoppler-mit-Schmitt-Trigger

Würde der das Signal evtl noch "hübscher" ausgeben? Da ist ja gleich noch ein Schmitt Trigger mit drin?

Gruß und ein schöne WE,
Michl

Kannst du machen, aber du müsstes u.U. R1 kleiner machen, um sicher die Triggerschwelle zu erreichen.

TEC_MICHL:
Würde der das Signal evtl noch "hübscher" ausgeben? Da ist ja gleich noch ein Schmitt Trigger mit drin?

Du brauchst kein "hübsches" Signal, sondern eines, dass du zählen kannst.

Guten Morgen mal wieder,

ich habe es jetzt endlich mal geschafft, dass Ding aufzubauen... Ja, was lange dauert und so....
Da ich das ja nicht selber testen kann (hab den Motor nicht da) habe ich 2 alternative Messaufbauten gebastelt. Einmal mit nem einfachen Optokoppler, einmal mit nem Schmitt-Trigger.

Dazu noch das Display dran, das bei dem Arduino dabei war, dass der, der es dann testen soll, keinen PC braucht. Funktioniert alles soweit, habe es am ganz normalen 220 Volt Wechselstrom getestet.

Eine Frage jetzt noch: Da ich ja 2 Interrupts verwendet habe, wollte ich jetzt mal fragen, ob das so richtig ist, da ich da immer noch meine Probleme habe. (Funktionieren tuts, aber irgendwie macht er manchmal auch komische Anzeigen…)

#include <LiquidCrystal.h>

const unsigned long Tmess = 200; //ms


unsigned long Timestamp;
volatile unsigned long count;
volatile unsigned long count2;


void ISR_f()

{
  count++;
} 

void ISR_f2()

{
  count2++;
} 
 



// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 6, 7);




void setup() 

{
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("Drehzahl 1 und 2");
  
  attachInterrupt(0, ISR_f, RISING); // Interrupt an Pin2   
  attachInterrupt(1, ISR_f2, RISING); // Interrupt an Pin3  
}




void loop() 
{

  lcd.setCursor(0, 1);
  
  
  if ( millis()-Timestamp > Tmess)
  {
     noInterrupts();
     long f = (count * long(1000))/ Tmess;
     long f2 = (count2 * long (1000))/Tmess;
  
        lcd.print(f); 
        lcd.print("      ");
        lcd.print(f2);

     count = 0;
     count2 = 0;
     Timestamp = millis();
     interrupts();
   }
    
}

Vielen Dank und Gruß Michael