Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > > > 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: > > > > <basic> > > 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 > > </basic> > > > > Beste Grüße und vielen Dank, > > Schweiger > > Ich kenn den Aufbeu der Mini Station nicht aber ich gehe davon aus das der GND genau auf dem > Level ist wo er hinsoll, wenn der GND nicht gleich dem des Netzteils ist besteht die Gefahr das > Teil zu töten. > > Wenn ein Eingang mit dem internen Pullup auf High liegt kann er nicht mit dem Finger auf Low gehen. > > Wenn die Mini Station das gleiche Basic wie die Pro32/128 haben dann müsste: > > Sub main() > > Port_DataDirBit(16,PORT_IN) '16=portC0 > Port_WriteBit(16,1) 'Pullup > > > Do While True 'in der Schleife läuft das Progamm....... > > If Port_ReadBit(16) = 0 Then 'Knopf gedrückt desshalb ist der Eingang auf 0 > > 'was auch immer jetzt passieren soll.....inkl. der 3 abfragen des Tasters zur sicherheit > > End If > > End While > > End Sub > > Funktioniern und nicht auf Finger reagieren. > Pullup nachmessen ob der Eingang eh auf plus liegt wenn der Finger immer noch reagiert. > Notfalls mit einem xternen Wiederstand den Pullup niederohmiger machen. > > >