Archiv verlassen und diese Seite im Standarddesign anzeigen : Taster-Spannung auslesen mit RN-Control und BASIC
Torrentula
05.04.2010, 21:18
Hi ich bins mal wieder!
Ich habe aus einem alten Computer einen Taster ausgebaut und möchte ihn nun als "Bumper" verwenden. Um das Funktionsprinzip zu verstehen, möchte ich den Taster auf Spannung legen und wenn der Taster gedrückt ist, soll eine LED leuchten.
Wie mache ich das?
Gruß Torrent
Indem du permanent der Zustand des Pins abfragst an dem der Taster hängt.
Torrentula
06.04.2010, 08:49
Und wie mache ich das? Mit Getadc? Oder mit if portx.y = 0 then ..... else .....?
HELP!
Gruß
Torrent
Naja wenn du jetzt nur abfragen willst ob der Taster gedrückt wurde oder nicht (also eine 1 oder 0 Abfrage) und du den Taster als Schließer verwendest (also den Taster an 5V anschließt und den anderen Pin an einen Pin vom Microcontroller), dann schreibst du:
Config PinD.0 = Input (Pin D.0 ist nur ein Beispiel)
Config PortD.1 = Output (An D.1 ist die LED mit dem Pluspol)
If PinD.0 = 1 then PinD.1 = 1 else PortD.1 = 0
Waitms 1000 (Die Zeit kann variieren je nachdem wie lange die LED anbleiben soll)
Torrentula
06.04.2010, 15:53
Ja, ich meinte eine einfache 1/0 Abfrage! vielleicht habe ich mich nicht deutlich genug ausgedrückt.....
Vielen Dank!
Torrentula
Torrentula
06.04.2010, 16:22
Dieser Code:
$regfile "m32def.dat"
$crystal = 1600000
$baud = 9600
Config Pind.0 = Input
Config Portd.1 = Output
Do
If Pind.0 = 1 Then Portd.1 = 1 Else Portd.1 = 0
Wait 1
Loop
End
reagiert, aber auf PD1 ist permanent Spannung. Wenn ich den Taster dann an Pind.0 anschließe und ihn betätige, ändert sich die Farbe der LED, obwohl sie jetzt erst angehen sollte - aber sie ist halt permanent an. Wieso?
More HELP!
Torrentula
[EDIT]
Die LED hängt mit Plus am Controler und mit minus an GND
Config Portd.0 = Input
Portd.0 = 1
Config Pind.1 = Output
Do
If Portd.0 = 1 Then Pind.1 = 1 Else Pind.1 = 0
Wait 1
Loop
Schreib das mal so.....
Hi, laß mal das "baud=9600" weg,
sonst funktionieren die Pins D.0 und D.1 nicht so,
da sie für den UART konfiguriert sind.
(D.0 = RXD, D.1 = TXD)
@Kampi:
Ausgänge immer mit Port setzen, nicht mit Pin, Eingänge lesen immer mit "pin".
Ich würde das auch nicht in eine Zeile schreiben, sondern einrücken.
Übrigens ist das "wait" auch am falschen Platz, da der Controller immer in diese Warteschleife läuft.
Falls der Taster gegen GND geschaltet wird, fehlt noch der interne Pullup.
Wenn ich den Taster dann an Pind.0 anschließe und ihn betätige, ändert sich die Farbe der LED
Du hast hoffentlich einen Vorwiderstand an der LED ?
Wenn die LED ihre Farbe ändert heißt das eigentlich, daß sie gerade am sterben ist... wenn du das dann länger so betreibst könnte dir das der Controller übelnehmen.
Gruß
Christopher
@Kampi:
Ausgänge immer mit Port setzen, nicht mit Pin, Eingänge lesen immer mit "pin".
Mist ich verwechsel das immer wieder ^.^
Mist ich verwechsel das immer wieder ^.^
Kann einem auch immer noch passieren, wenn man schon Jahre lang programmiert und nicht aufpasst ... :mrgreen:
Gruß
Christopher
Torrentula
08.04.2010, 13:13
Gut gut!
und.. zusammengefasst in einen Code sähe das dann wie aus?
Zum Vorwiderstand:
welchen vorwiderstand müsste ich verwenden?
Vorwiderstand bei 5V ist bei einer roten LED 330 Ohm.
LED verträgt 15mA also
R=U/I
R=5V/15x10^-3A
R=333
Als Widerstand nimmst du dann einen 330er.
Der Code ist dann auch recht einfach.
$regfile ="m32def.dat"
$Crystal= 16000000
Config PortD.1 = Output
Config PinD.0 = Input
Do
If PinD.0 = 1 then PortD.1 = 1 else PortD.1 = 0
Waitms 1000
Loop
End
So der Code dürfte eigentlich funktionieren (bin auf der Arbeit und kann es nicht testen :) ).
Denke die Zeilen dürften sich von selbst erklären, falls nicht einfach sagen.
Torrentula
08.04.2010, 18:03
Mit
Dim Portc.1 = Output 'Ich möchte die auf die LEDs auf dem Board benutzen
Dim PinD.0 = Input
Sagt BASCOM: "AS exspected [PORTC.1]" und "AS exspected [PIND.0]"
Müsste anstatt "Dim" nicht "Config" stehen?
:-s Torrentula :-s
Ahhhh sorry......ja hast recht muss Config sein
Torrentula
08.04.2010, 20:21
Jo, funzt! Danke an alle die mir geholfen haben!
Gruß
Torrentula
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.