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