Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Fotowiderstand am ADC-Port Kategorie: Programmierung Basic (von ET-Meister - 17.06.2009 21:48)
Als Antwort auf Re: Fotowiderstand am ADC-Port von Montelucon - 17.06.2009 12:15
Ich nutze:
C-Control Pro Mega32, C-Control Pro Mega128, CC-Pro 32 Application Board, CC-Pro 128 Application Board, Pro-Bot128
> > Hallo allerseits,
> >
> > ich habe folgendes einfaches Programm (am Bsp. Gewächshaus angelehnt) eingetippt:
> >
> > Dim lux As Integer                                
> >
> > Sub main()
> >
> >       outputAktoren()                  
> >    
> >  Do While(True)                      
> >    
> >       inputSensor()                    
> >
> >             If lux>200 Then
> >
> >                 Port_WriteBit(30,0)     ' LED 1 geht an
> >            
> >              Else
> >
> >                 Port_WriteBit(30,1)     ' LED 1 geht aus
> >
> >             End If
> >
> >         AbsDelay(2000)              ' Aktualisierungzeit festlegen (alle 2 Sekunden Sensor (IST-Wert) lesen)
> >
> >     End While
> > End Sub
> >
> > Sub inputSensor()
> >
> >     ADC_Set(ADC_VREF_VCC,ADC0)      'Festlegung der Referenzspannung für ADC0
> >     lux=ADC_Read()                                 'Auslesen des anliegenden Wertes
> >
> >     End Sub
> >
> > Sub outputAktoren()
> >          
> >     Port_DataDirBit(30,1)               'LED1 als Ausgang
> >
> > End Sub
> >
> > Als Hardware verwende ich den Mega 32 mit Aplikationsboard...
> >
> > Am ADC-Port 0 habe ich einen Fotowiderstand mit 10k Widerstand als Spannungsteiler angeschlossen.
> > Ich möchte keine genauen Werte messen, sondern nur in Erfahrung bringen ob es sonnig,
> > weniger sonnig oder dunkel ist.
> >
> > Wenn ich das Programm laufen lasse geht sofort LED1 an und bleibt dauerhaft an, egal ob es dunkel
> > oder hell ist! Warum ist das so? Funktioniert überhaupt der ADC-Port? (Am Eingang des ADC-Ports
> > messe ich ja Werte zwischen 0 und 5 Volt, je nach Helligkeit.
> >
> > Ich freue mich über jede Antwort!
> >
>
> Hallo ET-Meister,
>
> Du solltest noch den ADC-Port als Eingang definieren.
> Ich hatte es auch schon, dass er in der "Werkseinstellung" als Ausgang definiert war.
>
> Hinzu kommt, dass der ADC-Port mitunter vergisst, dass er ein Eingang ist.
> Erst nachdem ich in der Ausleseroutine (das wäre bei dir "Sub inputSensor") die Definition als Eingang
> reingeschrieben hatte, war das Problem weg.
>
>
> GruÃ?
>
> Monte
>

Hallo Monte!

Danke für deinen Tip, jetzt funktioniert das ganze! Komisch jeden digitalen Port deklariere ich sonst
auch als Ein- bzw. Ausgang, aber am ADC-Port hatte ich nicht gedacht. Ist klar, wenn der Port in
"der Luft" hängt, dass undefinierte Zustände vorkommen. Vielen Dank nochmal für deine Mithilfe!

GruÃ?, ET-Meister


    Antwort schreiben


Antworten: