PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fernsteuerung Linienfolge anhalten bei Tastendruck!



powder999
25.11.2011, 16:54
Hallo Community! Das hier ist mein erster Beitrag, ich hoffe, ihr könnt mir weiterhelfen! Und zwar bin ich gerade dabei eine Fernsteuerung zu programmieren. Dabei möchte ich, dass durch die Taste 7 die Linienfolge startet und durch die 1 wieder aufhört! Was muss ich in die while-Schleife schreiben, dass die Linienfolge beendet wird?Ich hoffe, ihr könnt mir helfen. Es ist ein Abschlussprojekt der Fachoberschule, d.h. ich denke mal, ich werde noch öfters Fragen stellen, jedoch konnte ich durch eure SUPER Beiträge schon ne Menge lernen. Danke im Voraus! ;-) Anbei mein bisheriger Programmcode 20650

2. Können die Pins PD4 PD5 positive und negative Signale ausgeben? Sonst würde ja die H-Brücke nicht funktionieren!


P.S.: ich bin ein echter Anfänger, also bei komischen, simplen Fragen bitte nicht auslachen! ;-)

powder999
26.11.2011, 11:33
Kann mir keiner helfen! Mir ist wohl nicht mehr zu helfen! ;-) Keiner ne Idee????

radbruch
26.11.2011, 12:59
So vielleicht:


while (message[0]!='1')
{
unsigned int data[2];
LineData(data);

MotorSpeed(50,150);
if(data[0]>data[1])
{
MotorSpeed(150,50);
}

// Timeout ist jetzt 1: Wenn ein Zeichen empfangen wurde, wird dieses sofort eingelesen
SerRead(&message[0], 1, 1);
}
(ungetestet)

Zu 2.: Am Pin des Mega8 wird 0V oder 5V ausgegeben. Je nach Ansteuerung schalten die Transistoren der H-Brücke den Motor auf Links- oder Rechtslauf.

PB4, PB5, PD4 und PD5 schalten jeweils einen Strang der H-Brücke, durch das 4fach-Nand-Gatter IC3 werden die Transistoren eines Strangs immer gegensinnig geschaltet. Es sind dadurch nie beide Transistoren eines Strangs gleichzeitig durchgeschaltet. Zusätzlich wird über das Nand auch das PWM-Signal von OC1A bzw. OC1B eingemischt.

powder999
27.11.2011, 16:14
Ach das ist ein NAND-Gatter, ich hab gelesen AND-Gatter! Aber wie ist das bei den PNP-Transistoren mit dem Durchschalten, da muss doch ne negative Spannung anliegen oder ned? So irgendwie hab ich das noch ned verstanden! Unsere Lehrer wollen das genau erklärt bekommen, aber ich versteh das noch ned. Kannst du vlt. ne kleine Skizze machen? Wäre sehr ned, hab mich schon so lang damit beschäftigt, aber irgendwie hat es noch ned KLICK gemacht! ;-) Zu deinem Programmvorschlag: Das probier ich noch aus und sag dir, wie es gelaufen ist! DANKE aber jetzt schon! :-)

radbruch
27.11.2011, 16:23
Upps, tatsächlich ist es ein AND-Gatter:

http://pdf1.alldatasheet.com/datasheet-pdf/view/26893/TI/CD4081BE.html

Nobody is perfect...

Dann macht auch das Einmischen des PWM mehr Sinn. T1 und T3 steuern mit low durch, T2 und T4 mit high. Bei PD4=low steuert T1 immer durch, ML+ liegt dauerhaft an Vcc. Pegel von OC1A (PB1) ist dann egal, weil der Eingang des AND durch PD4 schon low ist, wird T2 immer low erhalten. Zusammen mit PD5 auf low schaltet auch T3 dauerhaft durch und ML- liegt ebenfalls auf Vcc. T4 sperrt ebenfalls unabhängig von OC1A. Über T1 und T3 und die Freilaufdioden D1 und D3 ist der Motor nun kurzgeschlossen.

Wird nun PD5 auf high geschaltet, sperrt T3 und bei OC1A=low sperrt T4 ebenfalls. ML- "schwebt" nun zwischen Vcc und GND, der Motor befindet sich im "Freilauf". Mit OC1A=high liefert nun das AND ein high an T4, dieser steuert durch und an ML- liegt GND. Der Motor dreht jetzt. Bei PD4 und OC1A high und PD5 low dreht der Motor in die andere Richtung.

Ich hoffe, das passt so.

powder999
28.11.2011, 16:45
Hab das Programm mal ausprobiert, funktioniert perfekt! DANKE!!!!! ;-);-);-);-);-);-);-);-);-);-);-);-);-);-);-);-);-);-);-);-)! ENDLICH! Jetzt musst du mir aber noch mal erklären, warum das so ist! Ganz einfach, so dass sogar ich das versteh! Was hab ich falsch gemacht???

powder999
28.11.2011, 17:01
Gut, hat sich erledigt! Hab´s verstanden, man müsst sich vlt. erst mal selber damit beschäftigen, bevor man dumme Fragen stellt! Aber danke für deine HILFE! Hast mir seeeeeeeehhhhr geholfen!