- Labornetzteil AliExpress         
Ergebnis 1 bis 2 von 2

Thema: Sensoren --> Auswerten

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    07.01.2008
    Ort
    Aachen
    Alter
    35
    Beiträge
    45

    Sensoren --> Auswerten

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Habe eine frage,
    Habe an einem Pic eine Sensorenspannung von 0 bis 5 V anliegen.
    Diese muss ausgewertet werden.
    Bei einer Reichweite von 10 cm gibt der Sensor eine Spannung von 5 V aus.

    Nun möchte ich mit Hilfe des Pics 16f877, diese Spannung auswerten.

    Code:
    ;***********************************************************
    ;*  Name      :               Datum: 05.03.2008 *
    ;*              ------------                               *
    ;*  Funktion  :   sensor                   *
    ;*                                              *
    ;*  Autor     :                       *
    ;***********************************************************
       LIST p=16F877      ; TAB - otherwise: unnecessary warning
       #include <p16F877.inc>
       ;__CONFIG _CP_OFF & _WDT_OFF & _XT_OSC & _LVP_OFF & _BODEN_OFF
       __CONFIG 0x3F39
       ERRORLEVEL -302
       
       ADW_1         EQU      0x31
    
       
    Initialisierung:
       bsf      STATUS,RP0
       clrf   TRISB
       bsf      TRISA,0
       bcf      STATUS,RP0
       clrf   PORTB 
       movlw   B'00000000'
       movwf   ADCON1
       
    Main_1
       
    ; ADC-Vorbereitungen:
    ; ADC einschalten
       bsf     ADCON0, 0      ; ADON=1
    ; ADC speed für (fosc/32) MHz einstellen 
       bsf     ADCON0, 7      ; ADCS1=1
       bcf     ADCON0, 6      ; ADCS0=0
    
       
    Haupt:     
       clrf   PORTB
       bcf      PORTB,4
       clrf   ADW_1
       bcf     ADCON0, 5     
       bcf     ADCON0, 4     
       bcf     ADCON0, 3     
        call   Verzögerung_100us
       bsf     ADCON0, 2
    
    warte_auf_ADW:   
    
       btfsc   ADCON0, 2     
       goto    warte_auf_ADW
        movf    ADRESH,W     
        movwf   ADW_1
    
       movlw   D'100'
       subwf   ADW_1,W
       btfss   STATUS,Z
       goto   Test
    
    
    goto Haupt
    
    Test
       bsf      PORTB,4
       call   Verzögerung_1s
       call   Verzögerung_1s
       call   Verzögerung_1s
       ;call   Verzögerung_1s
       ;call   Verzögerung_1s   
    
    goto   Haupt
       
    #include     "VERZ/Verz_A.inc"
    
    end
    Bei diesem Code wird immer wieder das Zero Flag überprüft. Da sich die Spannung immer um ein paar mV veränder und nie konstant ist, ist das Zero flag auch nur einen kurzen Moment gesetzt.
    es sollte aber länger gesetzt sein. damit an einem Portpin ein High signal ausgegeben werden kann
    WIe kann ich das realisieren bzw. den code umstellen

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.02.2006
    Alter
    37
    Beiträge
    140
    Ich kenn die Befehle von dem PIC zwar nicht, aber wenn ich das Programm richtig verstehe fragst du ständig den Analogen Eingang ab. wie wäre es wenn du z.b eine Verzögerung einbaust und erst nach einer kurzen Zeit einen neuen Wert vom Sensor einließt?

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad