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

Re: Mini-Station mechanischer Schalter? Anfänger... Kategorie: Programmierung Basic (von Schweiger - 5.01.2011 10:08)
Als Antwort auf Re: Mini-Station mechanischer Schalter? Anfänger... von Michi - 5.01.2011 8:22

> > > Hallo liebe Gemeinde,
> > >
> > > ich bin noch blutiger Anfänger (ich kann ein bisschen Programmieren, aber nicht mehr ;-) )
> > > und ich habe eine, vermutlich für Euch dumme, Frage:
> > >
> > > Wie kann ich einen einfachen Schalter bzw. Taster an die Mini-Station dranhängen und abfragen,
> > > ob dieser gedrückt ist?  
> > >
> > > Im Moment nutze ich die +5V der unteren Klemmleiste und baue dann einen Stromkreis zu
> > > der ADC0 auf. Das ganze frage ich im Moment wie folgt ab:
> > >
> > > If ADC0() > 1000 Then 'grö�er als 1000, da maximal der Wert 1023 zurückgegeben wird (10bit)
> > >     ... ' Anweisungen
> > > End If
> > >
> > > Das funktioniert auch, wenn ich die zwei Kabel miteinander verbinde (das ist im Moment
> > > mein "Testschalter"), doch da die Spannung sehr sensibel gemessen wird, reicht
> > > es aus das Kabel, welches an ADC0 angeschlossen ist, mit einem Finger zu
> > > breühren um das Event auszulösen. Ich kann auch keine längeren Kablel verwenden, da
> > > diese auch dieses Event schon auslösen (sind vielleicht noch Elektronen im Kabel?), obwohl
> > > der Stromkreis noch gar nicht geschlossen ist.
> > >
> > > Gibt es also keine einfachere Methode über einen digitalen Eingang den Schalter anzuschlie�en?
> > >
> > >
> > > Wäre sehr dankbar für eine einfache Antwort und freundliche Grü�e,
> > > Schweiger
> > >
> > > PS: Das Kabel von der Station zu dem Schalter soll im Endeffekt ca. 15m lang sein...
> >
> >
> > Hallo,
> >
> > einfach den Schalter digital Abfragen:
> >
> >  Port_DataDirBit(Port_Nr,0);     // Port Bit Input
> >  Port_WriteBit(Port_Nr,1);        // Set PULLAB
> > .
> > .
> > .
> >  wert = Port_ReadBit(Port_Nr);
> >
> > Wegen der gro�en Entfernung und zur Entprellung würde ich den Taster 3 mal in einem Abstand
> > von ca.20ms auslesen. Nur wenn alle Werte gleich sind, würde ich eine Aktion ausführen.
> >
> > Grü�e Joerg
> >
> >
> >
> >
> Joerg hat recht.
>
> für deine Anforderung ist der ADC definitiv falsch und du solltest einen Digitalport abfragen.
> In Joergs Beispiel wier der Eingang per internen Pullup degen plus gezogen und der Schalter muss
> somit gegen Gnd schalten.
>
>
>
>
>
>

Vielen Dank für Eure Antworten!

Ich frage jetzt den ersten digitalen Input ab und dies klappt auch total gut.
Vorausgesetzt das Programmierkabel ist mit der Platine verbunden. Ich gehe davon aus,
dass wenn ich das Programmierkabel abziehe, keine Masse mehr vorhanden ist (GND).
D. h. wenn das Kabel abgezogen ist und ich berühre das Kabel de Inputs alleine mit dem Finger,
wird sofort geschaltet. Dieses Phänomen tritt nicht auf, wenn ich das Programmierkabel in der
Platine stecken habe - dann schaltet das System so wie es soll; nur bei Berührung des anderen Kabels.
Also muss ich irgendwie die Masse der unteren Klemmleiste abführen. Kann ich die nicht an den Minuspol
des Trafos dranhängen, sodass ein möglichst gro�er Spannungstoleranzbereich entsteht?

Mein Code zum Abfragen sieht so aus:


If INPUT_1(0) = 1 Then
 'Anweisungen
End If

 'wobei INPUT folgendermaÃ?en aussieht:

Sub INPUT_1(Pullup As Byte) As Byte
    Dim Bit As Byte
    Port_WriteBit(PD3,Pullup)
    Bit = Port_ReadBit(PD3)
    Return Bit
End Sub


Beste Grü�e und vielen Dank,
Schweiger


    Antwort schreiben


Antworten:

Re: Mini-Station mechanischer Schalter? Anfänger... (von Michi - 5.01.2011 17:15)