PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : analogports in rn-control



Rhandymarsh
13.04.2009, 12:28
tach,

Ich habe 3 Gabellichtschranken ,die ich über einen Widerstand(100ohm) ans Rn-control board angeschlossen habe. Da die Digitaleingänge über den Phototransistor kein "Low"-Signal erkennen, wollte ich das ganze nun einmal per Analogports ausprobieren (muss man ja auch mal gemacht ham, auch wenns nich die leichteste lösung iss).

Ich will nun jede der drei Gabellichtschrankken an die PortsC2,C3,C4 anschließen und dann durch die Spannungsänderung ein Signal bekommen, dass ich im controller verarbeiten kann. Es müssen dabei jeweils lediglich zwei Zustände generiert werden "High" und "low"....

Als erstes habe ich nun damit angefangen mit die RN-control dukumentation anzuschauen, wo ja die Printtasten auch per Analogport eingelesen werden.
Aus dem code werd ich jedenfalls nicht wirklich schlüssig:


Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Ton = 600
Start Adc
Ws = Getadc(7)
If Ws < 1010 Then
Select Case Ws
Case 410 To 450
Tastenabfrage = 1
Ton = 550
Case 340 To 380
Tastenabfrage = 2
Ton = 500
Case 265 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400

Was sind die Werte in Ws? da sind bereiche von 100 bis 1000...Spannungswerte werden das wohl kaum sein...

Wie definiere ich nun eigentlich einen Port als analogeingang?

Wäre schön, wenn mir jemand mit einer kleine Anleitung auf die Sprünge helfen würde bzw. mir nen link geben würde.
Die Forensuche war bisher erfolglos...

Gruß
Rhandy

Sauerbruch
13.04.2009, 12:44
Der AD-Wandler hat eine Auflösung vn 10 Bit, somit liefert er einen Wert zwischen 0 und 1023, je nach Höhe der Eingangsspannung.

Welche Eingangsspannung nun welchen Wert ergibt, das hängt von der Referenz ab, mit der das Eingangssignal intern verglichen wird. Das kann entweder die Btriebsspannnung sein, eine extern angelegte Referenzspannung oder bei manchen Controllern auch eine interne Spannung von 1,1 Volt. Ist die Eingangsspannung gleich der Referenz, gibt der ADC 1023 aus, bei der Hälfte 511 etc.

Extra definieren musst Du den Eingang nicht, durch den Befehl

X = Getadc(y)

holt sich der Controller automatisch die Analogspannung vom entsprechenden Eingang (y) ab. Wobei X (wegen der 10 Bit) ein Word sein muss.

Und all das kannst Du mit dem Befehl Config ADC auswählen. Auch zu diesem Befehl hat die Bascom-Hilfe reichhaltige Infos parat!

linux_80
13.04.2009, 14:14
Hallo,

ich lese hier Analogport und PortC, das passt beim RN-Control nicht zusammen, denn analogeingänge sind an PortA.
Es ist auch zu beachten, dass zwei der 8 Analogeingänge schon mit Tasten und Batteriestatus belegt sind.

Rhandymarsh
13.04.2009, 14:22
Hallo,

ich lese hier Analogport und PortC, das passt beim RN-Control nicht zusammen, denn analogeingänge sind an PortA.
Es ist auch zu beachten, dass zwei der 8 Analogeingänge schon mit Tasten und Batteriestatus belegt sind.

Du hast recht. Deshalb hab ich PortA.5 gewählt. Scheint soweit auch zu funktionieren..