PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Proj. Rollos runter, Rollos rauf.



lounsome
04.05.2006, 09:59
Wie würdet ihr das machen?
Ich habe 3 Rollomotoren zum ansteuern, je 1 Auf und 1 Ab, somit ergeben sich 6 Taster.
Das normale "Auf/Ab" ist ja kein Probl. aber man baut ja keine C-Control ein ohne ein paar Gimmicks haben zu wollen. =P~
Meine Vorstellung währe Z.B. Taster1 kurz betätigen Rollo1 fährt komplett nach unten, Taster1 lang betätigen Rollo1 fährt nur so lang runter wie Taster1 gedrückt gehalten wird (Prinzip wie bei manchen el. Autofensterhebern).

Vielleicht hat von euch jemand einen Tipp wie sich so was realisieren lässt?

Gruß lounsome

uwegw
04.05.2006, 10:24
Taste im Timerinterrupt pollen, bei erkannter kurzer Betätigung (einige Zyklen gezählt als Entprellung) Motoren starten. Wenn danach die Taste weiter gehalten wird, dies ab einer gewissen Betätigungsdauer merken und dann stoppen, sobald die Taste wieder losgelassen wurde... ansonsten laufen lassen bis der Endschalter sich meldet...

lounsome
04.05.2006, 10:30
Timerinterrupt :-s , könntest mir da bitte ein kleines Bspl. dazu posten?

lounsome
04.05.2006, 11:26
Kann das funktionieren?

FriLu
04.05.2006, 13:14
Hallo Iounsome,

Ich habe keine Station, deshalb weiss ich nicht ob die Analog-Eingänge intern gepullt sind. So wie die Tasten angeschlossen sind hast Du (keine Taste gedrückt) einen offenen eingang. --> misst störungen!
Ist der Ana-eingang mit 10k H-gepullt, sind deine R-Werte arg niedrig.
Besser: Widerstandskette zwischen +5V und Masse, ( R's 9x 1k ) Tasten eine seite an die Knoten, andere seite an Ana-Eingang, Ana-Eingang hochohmig an +5V ( wenn Station keinen Pull-up hat).
Wenn Du die Tasten in der Hauptschleife abfragst, zähle einfach die Schleifen-durchgänge (Nur wenn Taste gedrückt, evtl. mit pause >einbremsen<) bei einem Dir genehmen Wert merker >Taste_lang< setzen. Wenn keine taste gedrückt, Schleifenzähler + merker rücksetzen.
Hoffe, Dir geholfen zu haben.
MfG Lutz

lounsome
04.05.2006, 13:51
Meinst du so eine art Spg.-teiler. => eine kleine Spg. liegt immer an und wenn ich einen Taster drücke erhöht sich die Spg. um einen best. Wert.
Ich messe den Wert am Analogeingang und je nach Spg. fährt Rollo1 runter oder Rollo4 rauf, oder, oder, .... :-k
Welche Widerstände ich da dann brauche muss ich noch rausfinden, aber im Prinzip müßte es gehen.

lounsome

FriLu
04.05.2006, 17:48
Jo, mein ich.
'-------------------------------------------------------------
' Anschluss der Tasten an AD-Ports:
- Tja, hier sollte eine grafik aus textzeichen hin...das bord löscht aber unnötige leerzeichen ](*,), #-o
Also mal so versuchen:
9 Widerstände (1k) in Reihe, zwischen +5V und masse.
1 Widerst. (100k) von +5V auf analogeingang.
8 taster ein anschluss an analogeingang, der andere zwischen 2 Widerstände. Am Analogeingang erscheint:
Keine Taste gedrückt= 255, Taste gedrückt = Spannung am teiler.
Bei 8 Tasten 255/9 , also Tabelle mit (etwa-Werten):
tab r_tasten
0 28 56 84 113 141 170 198 226
tab end

define i byte : define taste byte : define vergleich byte
define analogein ad[8]
abfragen mit:

for i=0 to 8 '
looktab r_tasten,i,vergleich
if abs(analogein-vergleich)<3 then taste=i
next
Kannst ja auch Analogeingang in variable speichern und testen.
die realen werte der tabelle mit >Print analogein< ermitteln.
Viel Spaß. Lutz

lounsome
10.05.2006, 11:44
Super vielen Dank für die Antworten es funktioniert zwar noch nicht ganz, aber ich komme dem Ziel schon näher. :arrow: