Hallo Zusammen, ich habe mal eine Frage. Undzwar möchte ich einen Servomotor über eine Tastertur schalten. Istzustand : wenn ich Taste a der Tastertur drücke läuft der Servo rechts herum, bei drücken der Taste s links herum, und das dann dementsprechend dauerhaft. Ich würde das ganze gerne so lösen das der Servo nur solange läuft wie ich die Taste a bzw. s gedrückt halte. Das heisst wenn keine der Tasten gedrückt ist soll sich der Servo auch nicht drehen. Was sollte da im Quellcode vorhanden sein?? bzw wie muss der Quellcode dafür aussehen. Mein Quellcode ist in C geschrieben. Leider bin ich da noch nicht so erfahren. Ich hoffe jemand kann mir da weiterhelfen. Vielen Dank jetzt schonmal. Ich hoffe ihr Versteht mein vorhaben. Viele Grüße
Um zu sehen was Du ändern könntest muss man erst mal sehen was Du gemacht hast. Also erst mal zeig uns deinen Code
Junglelist schrieb: > Mein Quellcode ist in C geschrieben. Dann zeig schonmal her... Im Grunde ist die Geschichte schon recht einfach... Auf dem PC läuft deine Software welche die Tastatur auswertet und via UART / RS232 ein Befehl sendet dieser wird entweder von einem µC ausgerwertet - die leichtere Alternative - oder machst das über Bitbanging (geht auch, jedoch würde ich alleine schon wegen der Erweiterbarkeit davon abraten)... Der µC werdet das RS232 Paket aus (z.b. ne 1 für rechts und ne 0 für links) und gibst dann über einen Motortreiber ala TA7257P den Befehl den Motor links oder Rechtsrum zu drehen... Was für einen Motor setzt du denn ein?
1 | if( taste_a ){ |
2 | puls_rechts(); |
3 | }else if( taste_s ){ |
4 | puls_links(); |
5 | }else{ |
6 | puls_mitte(); |
7 | }
|
Peter
Peter Dannegger schrieb: > if( taste_a ){ > puls_rechts(); > }else if( taste_s ){ > puls_links(); > }else{ > puls_mitte(); > } > > > Peter Hehe... 42 XD
Hihi, erstmal danke für die schnelle Antwort. Un die erklärungen!!! Anbei ein kleiner Ausschnitt. Das steht in meinem Programm (Serielle Schnittstelle). Es ist wie gesagt das der scheiss Motor endlos weiterläuft.... nur mit taste 6 geht alles aus, dass funst so auch. Ist aber nicht das was ich will(bisl umständlich). Extra da noch eine dritte Taste zu belegen.... while(1) { if (RI == 1) { Zeichen = getchar(); Zeichen = SBUF; RI = 0; if (Zeichen == a) Set_Kanal(0, 15); //Taste a Motor rechtslauf if (Zeichen == s) Set_Kanal(0, -15); //Taste s Motor linklauf if (Zeichen == 6) Set_Kanal(0, 0); //Taste 6 Motor aus Ausserdem wollte ich noch 1 Lampe schalten das so aussieht: if (Zeichen == q) P2_0 = 1; // Lampe ein if (Zeichen == w) P2_0 = 0; // Lampe aus geht die ein aus schaltung auch über nur eine taste zb taste Q?? Sollte ich da vl auch die Hex Werte der Tasten eintragen??Weil irgendwie is das alles komisch, weil wenn ich zum teil noch andere Tasten der Tastertur drücke regt sich da zum teil auch noch etwas....
also, wenn es mit der Taste 6 funktioniert, dann setze mal deine ganzen Buchstaben in hochkommas: Junglelist schrieb: > if (Zeichen == 'a') Set_Kanal(0, 15); //Taste a Motor rechtslauf > if (Zeichen == 's') Set_Kanal(0, -15); //Taste s Motor linklauf > if (Zeichen == 6) Set_Kanal(0, 0); //Taste 6 Motor aus
Da nun die Tastatur an einem PC zu hängen scheint, brauchst Du erstmal ein PC-Programm, welches auch das Keyboard release event sendet. Dein MC kann ja nicht hellsehen, wann Du losläßt. Peter
Peter Schrieb: Da nun die Tastatur an einem PC zu hängen scheint, brauchst Du erstmal ein PC-Programm, welches auch das Keyboard release event sendet. Das Versteh ich jetzt net so ganz.. wie muss das aussehen??
Du hast irgend einen Aufbau, den dir jemand vorgesetzt hat. Denn nach deinen Äußerungen zu schließen, würdest du das nicht alleine hinbekommen. Das klingt doch wieder verdammt nach Hausaufgaben und "ich hab keinen Bock und keine Ahnung, macht ihr mal"
@ OnkelJim: wenn du meinst. Ich dachte Foren sind dazu da um anderen zu helfen?? das jetzt doch wieder son unnötiger Spruch kommt hät ich mir ja denken können... lasses sowas doch einfach stecken...
Eine Tastatur sendet zwei Events bei einem Tastendruck: KeyPress - Der Zustand wenn du deine Taste reindrückst. KeyRelease - Der Zustand wenn du deine Taste losläßt. Wie sieht denn deine externe Beschaltung aus? Mit was steuerst du den Motor an?!
Ah okay stimmt ja !! Danke Rene. Der Servo bzw. der Regler wird mit einem Puls angesteuert. (PWM)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.