PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Fragen zu IO der RP6 Erweiterung



RP6fahrer
14.06.2011, 17:33
Hallo!!
Ich versuche gerade, eine RC steuerung am Roboter einzubauen. Der RC Empfänger liefert 2 Signale ( high, low), je nachdem was man haben will. Wenn ich aber an die IO der Erweiterung nichts anschließe, liefert es ein High signal ( laut Programm herausgefunden). Wenn ich den EMpfänger anschließe und dieser kein Signal sendet, ist es immer noch High und wenn ich dann was sende, springt es von High auf Low. Also das Ergebnis ist, ich kann nur auf Low auswerten, obwohl ich gern auf High auswerten möchte.

Die Schaltung des RC empfängers ist hier zu sehen:
http://www.ferromel.de/tronic_2805.htm
> Bild 2
Spannungsversorgung VDD + GND vom Roboter
nur dass ich statt dem Motor+dessen Kondensatoren, zwei IO EIngänge dran habe.

Ich hoffe mal, dass man das Problem lösen kann. Ich habe auch schon gesehen, dass es interne Pull Up Widerstände gibt. Diese zu / abzuschalten habe ich auch schon probiert, aber irgendwie klappt es nicht.

Vielen Dank schon im voraus!! Wenn jemand noch mehr Details brauch, dann bitte einfach schreiben.

MfG RP6fahrer

RolfD
15.06.2011, 15:39
Der Empfängerbaustein RX2C steuert eine H-Brücke ... das bedeutet, es gibt je 2 Richtungsausgänge mit einem Ruhepegel (Motor steht) und einem aktiven Pegel (Motor dreht)... die Frage wäre jetzt, ob das Siganl noch PWM moduliert ist.. für unterschiedliche Geschwindigkeiten ... was ich fast vermute.. Sonst könntest du das Signal mit einem Gatter oder Transistor einfach invertieren... Allerdings sehe ich jetzt nicht das Problem, ein Pegel auf High oder Low abzufragen. Ob du auf 1 oder 0 abfragst ist der CPU ziemlich egal.
Das mit der PWM würd mir weit mehr zu denken geben denn dann ist das Auslesen komplizierter. Es gibt aber hier schon diverse Versuche, die PWM von Empfängern, die eigentlich Servos ansteuern, auszulesen. Einfach mal suchen.
LG

RP6fahrer
16.06.2011, 16:18
Ok, Vielen Danke für die Infos.
Also was PWM bedeutet weiß ich leider nicht.
Allerdinngs habe ich mal nachgeschaut. Ich bin mit dem Messgerät auf Masse gegangen und mit dem anderen Ende an die eine Seite. Ungeschalten 0V, einmal 5V und dann noch mal 0V. Also so, wie es eigentlich auch das Board hätte anzeigen müssen. naja, ich habe das Problem jetzt auf eine andere Art gelöst. Ich bin einfach direkt von den Pins des RX2C gegangen und jetzt erkennt er es richtig.
Eine Frage, die mir noch in den Sinn gekommen ist, als ich damit gebastelt habe: Gibt es eine Möglichkeit, die Reichweite etwas zu erweitern?. Wenn nicht, dann ist das auch kein Problem.
Vielen Dank schon mal im voraus.
Schönes Wochenende

RP6fahrer
09.07.2011, 19:13
Hallo!
Mit dem RC Funk hat jetzt alles einwandfrei geklappt. Ich habe jetzt einen PCF8574AP gekauft. Allerdings habe ich keine Ahnung, wie man dass mit der Adressierung macht. Ich habe mich hier schon durch das ganze Forum gegraben, aber nirgendwo eine anfängerfreundliche Erklärung gefunden. Ich habe nur herausgefunden, dass irgendwie der Standardwert 0x70 ist. Aber wie muss ich A0 A1 und A2 verschalten?
Vielen Dank schonmal im voraus.
Schönes Wochenende

TrainMen
10.07.2011, 06:09
Also eigentlich steht hier alles schon zig mal durchgekaut. Solltest mal die SuFu benutzen und im Datenblatt steht es auch drin. Das habe ja sogar ich verstanden.
Aber damit Du gleich loslegen kannst: Löte alles auf Masse und Du hast die Adresse 0x70 und wie Du den benutzt steht in den I2c Beispielen.
mfG TrainMen

RP6fahrer
10.07.2011, 17:35
Danke. Es tut mir leid, aber da bin ich nun mal nicht so gut. Also wenn ich das jetzt richtig verstanden habe ist es so, dass 0x7 immer ist und die 0 ist in dem Fall da, weil A0, A1 und A2 auf Masse sind. Und jenachdem, wie die dann verschalten sind (Also High oder Low ) ändert sich dann die 0 (von 0 - 7). Im Datenblatt habe ich auch schon nachgeschaut, aber da steht für meine Begriffe nicht das wichtigste drin. Oder habe ich eine andere Variante an Datenblatt. Ich werde es als Anhang mit ranhängen. Ich habe hier geschaut:Adressing For addressing see Figs 10, 11 and 12. Aber daraus werde ich nicht schlau.
19299

Aber danke nochmal.

RP6fahrer
16.07.2011, 18:52
Okay. Ich habe das jetzt hinbekommen. Was ich aber gerne mal noch wissen möchte: Ich habe alle drei Eingänge mal auf 5V (High) gesetzt. (Über DIp-Schalter mit Pulldown Widerstände) So, das müsste doch heißen, dass die Adresse 0x77 sein müsste. Aber das ist sie nicht. Habe ich da was falsch gemacht?
LG
RP6fahrer

TrainMen
17.07.2011, 01:01
Was willst Du denn da mit Pulldownwiderständen an den Adresspins ? und das Datenblatt hast Du immer noch nicht gelesen oder verstanden. Wenn Dein Chip die Basisadresse 0x70 hat, dann wäre als Beispiel alle 3 Adresspins an GND und das alle an VCC wäre dann 0x7E.
mfg TrainMen

RP6fahrer
18.07.2011, 09:32
Ich habe die Pulldownwiderstände verwendet, weil ich die Adressenbelegung variabel verändern wollte, um mal zu testen, wie das mit der Adresse ist. Aber langsam wird es mir verständlich: zum Lesen ist quasi 2hoch0 = 0 , und dann die Adresse jeweils(A0 = 2hoch1 ; A1 = 2hoch2; A2 = 2hoch3) und zum schreiben ist 2hoch0 = 1. 2hoch0 wird also vom PCF automatisch geändert(Jeweils ob man liest oder schreibt).
Ist das jetzt richtig so, oder hau ich schon wieder was durcheinander. Danke dass du so viel Geduld mit mir hast.
MfG
RP6fahrer

RP6fahrer
01.08.2011, 11:32
Hallo!
Muss nochmal eine Frage zu den IOs der Erweiterung stellen.

1. Kann man es ändern, dass die Pull-Up widerstände der einzelnen Ports dauernd aktiviert sind.( also wenn das Programm nicht läuft) Ich habe nämlich an PC7 einen Transistor, der den Liniensensor anschalten soll, aber wenn ich das Programm nicht gestartet habe, dann leuchtet der Sensor schwach, also so, wie wenn er über Pull up Widerstand durchgeschaltet ist.

Solltet ihr noch Fragen haben, zu meinem Problem, dann bitte meldet euch.
Ich danke schon im voraus für eure Antworten und Hilfen.

LG
Rp6fahrer

radbruch
01.08.2011, 11:43
Hallo


aber wenn ich das Programm nicht gestartet habeNach einem Reset sind alle Pins auf Eingang ohne PullUp geschaltet. Wenn nun die Basis des Transistors direkt an einem solchen Pin angeschlossen ist, "schwebt" der Pegel irgendwo bei ein paar mV. Das reicht wohl um den Transistor anzusteuern. Entweder du verwendest zusätzlich einen externen PullDown-Widerstand oder du wartest, bis das Programm den Pin auf Ausgang-low schaltet.

Ich hoffe, das hilft...

Gruß

mic

RP6fahrer
02.08.2011, 16:35
Hallo!
Danke, daran habe ich nicht gedacht. Das Problem hat sich gelöst. Ich war sonst immer darauf aus, dass der interne Pull-Up
standardmäßig aktiviert ist.
Also noch mal vielen Dank!
MfG
RP6fahrer