- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 12

Thema: Hall Motor auslesen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.05.2012
    Beiträge
    19
    Danke für deine ausführliche Antwort.
    Ich habe jetzt einiges versucht und komme langsam an meine Zweifel ob mein UNO schnell genug für mein vorhaben ist.

    Der Motor bringt maximal 800 U/min. Je Umdrehung kommen pro Hall Sensor 30 Impulse. Sind also 400 Impulse pro Sekunde pro Sensor. Schafft der Uno das noch?

  2. #2
    shedepe
    Gast
    Überleg dir mal mit welchem Takt der Uno läuft. Dann hast du ein Gefühl für die Zeiten bzw. Taktraten

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Wie lang sind die Impulse? Ohne 3 Hardware-Interrupts wirds evtl. schwierig, die Impulse sicher zu detektieren (der UNO hat 2 Hardware-Interrupts). Ohne Hardware-Interrupts müssen die 3 Digital-Inputs schneller abgetastet werden, als die Impulse lang sind.
    Was soll der Arduino mit den Drehzahl-Daten machen?

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    15.05.2012
    Beiträge
    19
    Hei,
    2 Sensoren reichen mir eigendlich. Ich brauch die Drehrichtung und die ungefähre Geschwindigkeit.

    Gruß

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Hab noch mal nachgedacht: Ein Hardware-Interrupt reicht aus. Und 2 Sensoren.
    Wenn Flanke an Sensor1 (per Hardware-Interrupt detektiert), wird Zustand an Sensor2 gemessen: Wenn High: Drehrichtung A, wenn Low: Drehrichtung -A.
    Anzahl Impulse / Zeiteinheit ist Drehgeschwindigkeit.
    So schafft der UNO das locker. Das Programmieren ist auch nicht schwer.
    Vorausgesetzt das Signal der Sensoren sieht so aus.
    Geändert von Sisor (04.09.2017 um 22:05 Uhr)

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von Sisor Beitrag anzeigen
    Hab noch mal nachgedacht: Ein Hardware-Interrupt reicht aus. Und 2 Sensoren.
    Wenn Flanke an Sensor1 (per Hardware-Interrupt detektiert), wird Zustand an Sensor2 gemessen: Wenn High: Drehrichtung A, wenn Low: Drehrichtung -A.
    Anzahl Impulse / Zeiteinheit ist Drehgeschwindigkeit.[/URL].
    Wenn man den Input Capture des Prozessors nutzen und dieser einen Interrupt hat, bekommt man auch die Drehzahl recht präzise gemessen. Weiß jetzt nicht, ob der UNO das hat.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    15.05.2012
    Beiträge
    19
    Moin Moin,
    ich habe mal folgende Lib probiert: RotaryEncoder.h
    Code:
    #include <RotaryEncoder.h>
    
    // Setup a RoraryEncoder for pins A2 and A3:
    RotaryEncoder encoder(A2, A3);
    
    void setup()
    {
      Serial.begin(9600);
      Serial.println("SimplePollRotator example for the RotaryEncoder library.");
    
      // You may have to modify the next 2 lines if using other pins than A2 and A3
      PCICR |= (1 << PCIE1);    // This enables Pin Change Interrupt 1 that covers the Analog input pins or Port C.
      PCMSK1 |= (1 << PCINT10) | (1 << PCINT11);  // This enables the interrupt for pin 2 and 3 of Port C.
    } // setup()
    
    
    
    // The Interrupt Service Routine for Pin Change Interrupt 1
    // This routine will only be called on any signal change on A2 and A3: exactly where we need to check.
    ISR(PCINT1_vect) {
      encoder.tick(); // just call tick() to check the state.
    }
    
    
    long position  = -999;
    void loop()
    {
      static int pos = 0;
    
      int newPos = encoder.getPosition();
      if (pos != newPos) {
    
         if(newPos < position){
         Serial.print("Vor");
      }else{
       Serial.print("Zurueck");
    }
        position = newPos;
     
        Serial.println();
        pos = newPos;
    
        if (newPos == 66)
          delay(6600);
      } // if
    } // loop ()
    
    // The End
    Damit kann ich schon mal zuverlässig Vor und Zurück erkennen. Der Uno ist also schnell genug hab es nur scheiße programmiert....

    werde es weiter versuchen

Ähnliche Themen

  1. Hall Sensor Linear
    Von Dj EKI im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 04.03.2017, 14:00
  2. HAll - Sensor Wahl
    Von Clemens.Lang im Forum Sensoren / Sensorik
    Antworten: 5
    Letzter Beitrag: 20.02.2010, 20:22
  3. Hall-Generator, Hallsensor
    Von tobi.robotz im Forum Elektronik
    Antworten: 17
    Letzter Beitrag: 23.12.2009, 17:30
  4. Hall Sensor mit Fet Ausgang
    Von ssalbach im Forum Sensoren / Sensorik
    Antworten: 6
    Letzter Beitrag: 23.09.2009, 22:46
  5. Hall Sensor
    Von RoboLeo im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 19.10.2005, 19:24

Berechtigungen

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

12V Akku bauen