PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit auslesen von RC-Kanälen!



FeiaDragon
24.07.2008, 17:16
Hey!

ich hab mal wieder ein Problem :)

und zwar bastel ich gerade eine Licht-Kontrollschaltung für das Modellauto von meiner Schwester.

Dafür lese ich 3 Kanäle einer Robbe-RC-Fernbedienung aus...und manchmal funktioniert es auch, aber die Kanäle stören sich untereinander.

Erstmal aber die Anschlüsse: auf Pin A0, A1, A2 sind die 3 Mess-Eingänge, die nacheinander gemessen werden. Die Stromversorgung kommt aus dem BEC eines Fahrtreglers, mit dem auch der Empfänger betrieben wird.
Des weiteren hängt ein Servo dran, die Signale für Fahrtregler und Servo sind einfach durchgeschliffen und werden halt vom PIC abgenommen.

Die Kabel sind jeweils 3-adrig und verdrillt.

Weitere Bauteile auf meiner Platine sind eigentlich nur der Quarz mit 2 Kondensatoren, sowie 4 Transistoren und 4 LEDs...

Jetzt aber zu meinen Beobachtungen:

A0 in Kanal 1 des Empfängers, A1 in 2, A2 in 5
-> A0 läuft Störungsfrei
-> das Signal von A1 wird im Bereich von 50-70% von A2/Kanal 5 um ein kleines bisschen verlängert, ansonsten Störungsfrei
-> A2 Störungsfrei

A0 in Kanal 1, A1 in 2, A2 in 3
-> A0/A1 Messung funktioniert gar nicht, d.H. Messwert zu groß/zu klein
-> A2 Messung funktioniert einwandfrei

A0 in Kanal 1, A2 in 2, A2 in 4
-> A0 funktioniert nur bei Maximalausschlägen von A1/A2, auch das nur teilweise
-> A1 funktioniert störungsfrei
-> A2 funktioniert störungsfrei

Wie man sieht, ist alles ein bisschen seltsam und mir gehen so langsam auch die ideen aus ;)

Muss man beim Auslesen eines Servo-Signals noch irgendwas weiteres an Hardware einbauen?
Das die Kabel sich stören kann ich nicht so ganz glauben, da die Leitungen ja auch in Modellen über längere Strecken direkt nebeneinander verlaufen.
Auf meiner Platine sind die zwar alle direkt nebeneinander, aber nur über 0.5-1cm bis zu den Beinen des PICs.

Wenn ihr eine Idee habt - bitte melden! :)

Danke,
Kai

radbruch
24.07.2008, 19:55
Hallo

Dass sich die Signale gegenseitig stören glaube ich eigentlich auch nicht. Zeig mal das Programm, ich hoffe, es ist C.

Gruß

mic

FeiaDragon
24.07.2008, 20:03
ja, es ist c ;)

die messungen laufen jeweils nach dem gleichen Muster, alle nacheinander in einer endlosschleife

die stop variable wird vom rtcc overflow-interrupt auf true gesetzt, als timeout falls ein kanal nicht eingesteckt sein sollte.


set_rtcc(0);
stop = false;
while(!input(SCHALTER) && !stop);
if(!stop)
{
set_rtcc(0);
stop = false;
while(input(SCHALTER) && !stop);
if(!stop)
{
messung = get_rtcc()
// hier wird dann das ergebniss weiter verwurstet...



mir ist gerade noch was aufgefallen, und zwar stört anscheinend nur eins der kanäle die anderen, dass das nicht zu einem weiteren verbraucher (servo/fahrtregler) weitergeleitet wird.
haben die vielleicht einen pull-down widerstand oder irgendwie sowas als "ende" der leitung eingebaut?