PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Port abfragen



Looser
14.10.2005, 14:48
Hab wiedermal eine Frage :
Ich muss herausfinden ob ein Gerät angeschaltet ist oder nicht.Im eingeschalteten Zustand gibt es 12 Volt heraus und im ausgeschalteten 0 Volt. Ich hab mir das so gedacht:
PB0 mit dieser Leitung verbinden und dann habe ich diesen PB0 abgefragt mit
If PB0 = 1 Then usw.
If PB0 = 0 Then usw.

Hat leider nicht funktioniert. Hab ich vielleicht etwas vergessen oder bin ich auf dem Holzweg ?
Kann mir jemand da einen Tip geben ?

felack
14.10.2005, 15:20
Hallo Looser,

1.) Der AVR verträgt keine 12 V am Eingang, da solltest du einen Spannungsteiler vorschalten, 12V-15KOhm-PB0-10Kohm-Ground. Wenn du die 12 V direkt drauf gibst, ist mit Sicherheit der Eingang kaputt.

2.) Die Portabfrage in BASCOM heißt :

if pinb.0=0 then
if pinb.0=1 then

felack

Marco78
14.10.2005, 15:24
Hat leider nicht funktioniert.
Weil 12V viel mehr sind als 5V!
Es dürfen nur 5V in den AVR geh'n. (Genauer gesagt, VCC+ein paar hundert Milivolt mehr. Genau steht es im Datenblatt)
Um schädigungen durch die 12V zu vermeiden muss eine geeignete Massnahme getroffen werden. Da gäbe es: Spannungsteiler, Z-Diode, Optokoppler, Transistor, ...

Dann muss die Abfrage lauten:
If Pinb.0 = 1 Then ...
If Pinb.0 = 0 Then ...

Wobei, wenn Pinb.0 nicht 1 ist, ist es logischerweise 0.

If Pinb.0 = 0 Then Gosub AUS Else Gosub AN

Du kannst mit Alias den Pins auch Namen geben.

Gerätezustand Alias Pinb.0
Motor Alias Portd.1 'um Ausgängen einen Namen zu geben

Der Code könnte dann weiter lauten:

If Gerätezustand = 0 Then Gosub AUS Else Gosub AN