-         

Ergebnis 1 bis 4 von 4

Thema: Drehzahl messen. Arduino Uno macht nicht was es soll

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.11.2010
    Beiträge
    11

    Drehzahl messen. Arduino Uno macht nicht was es soll

    Anzeige

    Hallo Forum,


    ich versuche derzeit die Drehzahl von kleinen Elektromotoren (~18.000rpm) mithilfe einem Sensor (Überreste eines Fahrradtachos) und einem Arduino Uno zu messen.
    Der Sensor liefert mir dabei auf A0 (5V Eingang mit 1024er Auflösung) Werte, die je nach Stellung der Motorachse (also der Stellung der "Sensorteile" zueinander*) zwischen 0 und 200-350 wechseln.
    Schwingung zwischen 200-350 -> Sprung auf 0 -> bleibt auf 0 -> steigt langsam wieder an. (siehe Bild).

    Ich wollte jetzt abhängig von diesem Wert eine Variable auf 0 oder 1 setzen.
    0 bei Werten = 0
    1 bei Werten >=1

    Bei jedem 2. Wechsel dieser Variablen hätte ich also eine Umdrehung.

    programmcode:

    void setup() {
    Serial.begin(9600);

    pinMode(A0,INPUT);
    }

    long vV; //Spannung an A0
    int vN = 0; //Umdrehungen
    int vCn = 0; //Variable ob vV auf 0 oder über xx (neuer wert)
    int vCa; //Variable ob vV auf 0 oder über xx (alter wert)

    void loop() {
    vCa = vCn; // "alter Wert" = letzter "neuer Wert"
    vV = analogRead(A0); //Spannung auslesen
    delayMicroseconds(100);
    if (vV == 0) //
    {
    vCn = 0;
    }
    if (vV >= 100) // Spannung auf 0 oder drüber?
    {
    vCn = 1; //
    }

    if (vCn != vCa) // Wenn Spannung von 0 oder auf 0 gewechselt hat...
    {
    vN++; //...eine Umdrehung hochzählen


    Serial.println(vN);


    }


    }




    Beobachtungen:
    Wenn ich die Variable auf 1 setze, sobald ich Werte über 0 messe, werden Umdrehungen gezählt obwohl nichts dreht.

    Setze ich die Variable auf 1 ab Werten über 100, kann ich bei langsamer Motordrehung (~30rpm) die Drehzahl messen.
    Sobald der Motor mit ~15.000rpm drehen lasse, werden Umdrehungen gezählt, auch wenn der Motor später wieder ausgemacht wird.

    Setze ich die Variable auf 1 ab Werten über 200, wird bis 2 gezählt. Danach passiert nichts mehr.

    Fragen:
    Was für ein Sensor hab ich da überhaupt?
    2 Kabel gehen in "Teil 1" (ist normalerweise an der Fahrradgabel befestigt). "Teil2 scheint ein normaler Dauermagnet (wird an einer Speiche befestigt).
    Magnetschalter der den Stromkreis schließt, sodass die Spannung zwischen A0 und GND auf 0 fällt? Ganz ohne Anschlüße am Board werden auch Werte un 200-350 ausgegeben.

    Warum wird teilweise die Drehzahl hochgezählt, ohne das die Sensoren sich bewegen?
    Schwingt da was in den Leitungen oder im Board?
    Brauch ich vllt mehr Elektronik (Kondensator, Widerstände etc.?). Darf ich den Sensor nicht zwischen GND und A0 betreiben?
    Sind Sensor oder Board für so schnelle Wechsel ungeeignet?
    Oder hab ich einfach falsch programmiert?



    Hat jemand sonstige Kritik zu äussern, oder Ratschläge?
    Häng an der Stelle nun seit Tagen fest un komm allein nichmehr weiter.
    N Gedankenanstoß der mich wenigstens bis zum nächsten Problem weiterbringt wär super.


    Vielen Dank
    Zimt


    P.s: da ich mich nicht entscheiden kann ob das Problem in Sensor/Controller oder Software liegt, war ich nich sicher wo das Thema hingehört. Wenns also wo anders besser passt, bitte verschieben.

    *Anhang: Der Magnet ist nicht mittig auf der Achse sondern etwa 1cm daneben. Bewegt sich bei einer Motorumdrehung also eine zeit lang vor dem Sensor und eine Zeit lang daneben (ausserhalb der Reichweite?)
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken untitled.bmp  

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Zitat Zitat von Zimt Creme Beitrag anzeigen
    Hallo Forum,


    ich versuche derzeit die Drehzahl von kleinen Elektromotoren (~18.000rpm) mithilfe einem Sensor (Überreste eines Fahrradtachos) und einem Arduino Uno zu messen.
    Das wird möglicherweise nicht klappen, wenn der Sensor ein Reed Kontakt ist kann der die Drehzahl nicht ab. Wenn der Sensor ein Hall Sensor ist schon. Hat der Sensor (an der Gabel) 2 oder 3 Kabel Anschlüsse? Bei 2 wird es ein Reed Kontakt sein bei mehr kann es auch ein Hall Sensor sein. beide sollten mittels Pull UP Widerstand, ca. 4k7 an Vcc nach GND schalten und wenn der Magnet den Sensor Parallel liegt 0V sonst Vcc ausgeben. Es gibt gelegentlich
    auch Hall Sensoren mit Analogen Ausgang, was hier aber eigentlich keinen Sinn macht.

    Ganz billige "Feldplatten" arbeiten allerdings auch Analog und brauchen auch nur 2 Anschlüsse, die sollten auchhohe Drehzahlen überleben. http://www.elektronikkompendium.de/site/ba/0110302.htm


    Was jetzt genau bei Dir verbaut ist?

    Gruß Richard

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    06.11.2010
    Beiträge
    11
    Sind nur 2 Anschlüsse dran. Womit ich auch nicht weiß, wie ich mit pull-up an GND und Vcc schalten soll. Ich brauch ja auch noch ein Kabel an nem Input-Pin. Könntest du mir da vllt ne Skizze malen?

    Vielen Dank

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Zitat Zitat von Zimt Creme Beitrag anzeigen
    Sind nur 2 Anschlüsse dran. Womit ich auch nicht weiß, wie ich mit pull-up an GND und Vcc schalten soll. Ich brauch ja auch noch ein Kabel an nem Input-Pin. Könntest du mir da vllt ne Skizze malen?

    Vielen Dank
    Moin moin.

    https://storage.driveonweb.de/dowdoc...1707b572c6.pdf

    Leider ist beim scannen etwas abgeschnitten worden. im oberen Teil geht die Leitung nach links an einen normalen Logik Eingang weil nur 0/1 geliefert wird, im unterem Teil an einen ADC Eingang der entsprechend ausgewertet werden muss weil dort ein Analoges Signal (Spannung) geliefert wird.

    Gruß Richard
    Geändert von Richard (06.04.2011 um 11:52 Uhr)

Ähnliche Themen

  1. Drehzahl messen
    Von dreadbrain im Forum Elektronik
    Antworten: 67
    Letzter Beitrag: 16.09.2008, 09:15
  2. ASURO macht nicht was er soll!
    Von Jacob2 im Forum Asuro
    Antworten: 13
    Letzter Beitrag: 10.06.2007, 23:32
  3. Atmega16 macht nicht was er soll.....
    Von Pollin im Forum Assembler-Programmierung
    Antworten: 4
    Letzter Beitrag: 28.01.2007, 15:22
  4. RN-Speak macht nicht was es soll...
    Von rolfuk im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 4
    Letzter Beitrag: 11.10.2006, 19:20
  5. Übertragenes Programm auf 90s4433 macht nicht was es soll
    Von thirsch im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 19.03.2006, 09:34

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •