-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: PWM Eingangssiganl von Sensor verarbeiten

  1. #1

    PWM Eingangssiganl von Sensor verarbeiten

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hi,

    mein Sensor liefert mir direkt ein 10Khz oder 100khz PWM signal.
    Wie kann ich das elegant verarbeiten ?
    (Kenn nur den umgekehrten weg )

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Es ändert sich also nur die Frequenz bei gleichem Tastverhältnis?
    Disclaimer: none. Sue me.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    50
    Beiträge
    1.195
    1. Weg: Mit PinChange Interrupt und free running timer: Hierüber lassen sich PWM Frequenz und Tastverhältnis ermitteln
    2. Weg: RC Glied laden und per ADC auswerten. Hier bekommt man nur das Tastverhältnis raus (muss aber kalibriert werden, um wirklich genau zu sein, da Kondensatoren meist eine hohe Toleranz von 5%-20% haben).

  4. #4
    Hi,

    @ SprinterSB Jap, es ändert sich nur der Duty Cycle

    @ogni42 dein 2.Weg ist mir zu ungenau
    wenn kommt nur 1. weg in Frage

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    50
    Beiträge
    1.195
    Gut, den Duty Cycle kannst Du, bei bekannter Frequenz feststellen indem Du einen Timer laufen lässt, der mit einer entsprechend hohen Frequenz tickt.

    Wenn dann ein PinChange Interrupt auftaucht (low-high), setzt Du das Timer Register auf 0, beim nächsten Interrupt (high-low) liest Du den timer aus und kannst dann den duty cycle bestimmen. Die Timerfrequenz bestimmt dabei die erreichbare Genauigkeit, muss aber so niedrig sein, dass der Timer bei maximalem DC nicht überläuft.

  6. #6
    Hm, das verstehe ich soweit, auch wenn mir ein "PinChange Interrupt" neu ist. Werde mir diesbezüglich mal die Datenblätter anschauen.
    Danke

    Ich hab auch was von einen "Capture input" bei Timern gelesen.
    Alles im Moment neu für mich. ( Hab bisher nur PWM ausgegeben )
    Sagt dir da was und würde das hier auch vielleicht passen

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    50
    Beiträge
    1.195
    Schau mal nach dem INT0 bzw. INT1 Pin.

    Hier ist ein kurzes Code-Schnipsel, wie man damit arbeiten kann:
    Code:
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <avr/signal.h>
    #include <inttypes.h>
    
    // key press down
    SIGNAL( SIG_INTERRUPT0 )
    {
        // do stuff
    }
    
    // key pres up
    SIGNAL( SIG_INTERRUPT1 )
    {
       // do other stuff
    }
    
    
    
    void interruptInit( void )
    {
    	// react on falling edges
    	EICRA = (1<<ISC11)|(1<<ISC01);
    
    	// enable INTO and INT1
    	EIMSK = (1<<INT1)|(1<<INT0);
    
    	sei();
    }

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Mit Input Capture gehen die genauesten Zeitmessungen.
    Das Signal kommt an den ICP-Pin und auf einstellbare Flanke wird der Timerwert ins ICR gesichert, auf Wunsch ein IRQ getriggert.

    Damit lassen sich aber maximal 2 Kanäle (im Zeitmultiplex) auswerten, als zweiten Zugang zum InCapt nimmt man den AC (AnalogComparator).

    Die Werte aus dem ICR müssen schnell genug ausgelesen werden!, weil du ja low- und high-Zeit brauchst, also ist nicht nur die Frequenz ein kritischer Faktor, sondern auch das Tastverhältnis, denn es bestimmt die Pegel-Zeiten.
    Disclaimer: none. Sue me.

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    50
    Beiträge
    1.195
    Stimmt, habe ich gerade nicht dran gedacht Das ist die viel elegantere Lösung!

  10. #10
    Danke, für die hilfreichen "Inputs"
    Die muß ich jetzt erstmal verarbeiten

    schönen Abend noch
    benhure

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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