PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fernsteuerung für Schaltkanäle auswerten



TobiasBlome
31.08.2006, 21:00
Hallo,
ich ich möchte ein paar zusatzfunktionen steuern. Leider hat meine Funkfernsteuerung nur noch 4 Kanäle frei und ich brauche 8 mal an/aus.

Hat jemand eine Idee, wie ich den Code vom Graupner Empfänger in Schaltsignale umsetzen kann?
Also Steuerknüppel nach oben ist dann nicht servo linksrum sondern Licht an. Und noch mal Steuerknüppel nach oben ist dann Licht wieder aus. Steuerknüppel nach unten könnte dann eine andere Funktion bekommen.

Würde gene einen AVR 2313 mit Basic programmieren, habe aber noch nichts mit "Servosignalen gemacht"

vielen Dank schon mal,
Tobias

Oleck
01.09.2006, 06:07
Hallo Tobias,

ich habe ein Splittmodul, dass genau das macht was du möchtest. Ich würde mich allerdings auch sehr für eine Lösung durch einen µC interessieren, dann kann man Graupner echte Kunkurrenz machen.

Gruß

Oleck

felack
01.09.2006, 15:11
Schau mal hier:

https://www.roboternetz.de/phpBB2/viewtopic.php?t=12621

Da steht so ziemlich alles drin für eine 8-Kanal-Fernsteuerung

felack

TobiasBlome
01.09.2006, 16:26
also das würde ich gut finden, aber ich wollte meinen Empfänger nicht zerlegen(habe leider auch kein oszi). Aber so wie ich das verstanden habe splittet er nur das einzelne Signal auf. Aber mich würde ja interessieren, wie er dann danach die einzelnen Signale verabeitet.

Oleck:
was ist ein splittmodul?
Also ich habe einen "Zweikanalschalter" der mit verschiedenen TTL und/oder Stufen 2 Relais schaltet (warscheinlich meinst du das) Nachteil ist ganz klar, das man damit nicht mehr machen kann! z.b. Kanäle beliebig als Taster oder Schalter nutzen - oder ich habe z.b. blaue und rote Beleuchtung. Getrennt sieht das gut aus aber wenn man flüssig von blau auf rot wechseln könnte wäre das auch toll - mit µC kein problem aber mit TTL sehr sehr aufwändig...

jeffrey
01.09.2006, 17:50
hi,
häng doch einfach die servoausgänge an nen eingang von nem controller und les das signal aus, dann kannst du ja was in der art machen, wenn 2 mal innerhalb von 2 sekunden nach oben, dann das und bei dreimal innerhalb 3 sekunden dann das, ...
mfg jeffrey

TobiasBlome
01.09.2006, 19:09
???
wie 2 mal in 2 sekunden und 3 mal in 3 sekunden?

das wäre ja immer 1 mal pro sekunde. wo ist da der unterschied zum auswerten?

TobiasBlome
01.09.2006, 20:29
Also ich hab mal ein bischen gelesen und nun weiß ich´, was für ein Signal aus dem Empfänger kommt:

Das Signal ist zwischen 1ms und 2ms lang! 1ms ist vollausschlag in die eine Richtung und 2ms ist Vollausschlag in die andere Richtung! Bei Knüpppel in Neutralstellung(also Mitte) ist das Signal 1,5ms.

Also, wer kann mir sagen, wie ich einen Ausgang setzen kann wenn ein Signal 1ms lang ist oder noch besser: Wenn das Signal zwischen 0,8ms und 1,2ms lang ist.
Welche Frequenz muss der Quarz mindestens haben? Ich habe noch welche mit 3.6864MHz liegen. Die sollten es wohl schaffen.

Tobias

TobiasBlome
01.09.2006, 22:35
Was haltet ihr davon(konnte es leider noch nicht probieren)?
Kanal 1 also PD5 müsste jetzt PB0 als tastfunktion ansteuern oder?

'-------------------------------------------------------------------------------
' Modellbauschalter 4/8Kanal
'-------------------------------------------------------------------------------
'Beschreibung:




'-------------------------------------------------------------------------------
'Konfiguration µC:
$regfile = "2313def.dat" 'AT90S2313-Deklarationen
$crystal = 3686400 'Quarz: 3.6864 MHz

'-------------------------------------------------------------------------------
'Ein- Ausgänge:
Ddrd = &B0000001 '1 Ausgang, 0 Eingang=Pin PD0-5 als Eingang / PD6 als Ausgang
Ddrb = &B11111111 '1 Ausgang, 0 Eingang=Pin PB0-7 als Ausgang



'-------------------------------------------------------------------------------
'Variablen
Dim Pulsbreite As Word
Dim SpeicherK1 as Byte
Dim SpeicherK2 as Byte
Dim SpeicherK3 as Byte
Dim SpeicherK4 as Byte
'-------------------------------------------------------------------------------




'-------------------------------------------------------------------------------
' HAUPTPROGRAMM
'-------------------------------------------------------------------------------

'Kanal 1:
_________

Do

Bitwait Pind.5 , Set

Pulsein Pulsbreite , Pind , 5 , 1 'Pulsbreite auslesen (1=High Impuls)
If Pulsbreite > 250 Then
Portb.0 = 1
Else
Portb.0 = 0




Loop

'-------------------------------------------------------------------------------

End

================================================== ==============================
'Pinbelegung µC
'================================================= ==============================
' Atmel90S2313
'PD0 = LED Alarm +---U---+
'PD1 = ResetTaster Reset +1 20+ Vcc+5V
'PD2 = Kanal 4 FREI ->PD0 +2 19+ PB7 Zusatzfunktion 3 tastend
'PD3 = Kanal 3 FREI ->PD1 +3 18+ PB6 Hupe / tastend
'PD4 = Kanal 2 x x Xtal 2 +4 17+ PB5 Zusatzfunktion 2 rastend
'PD5 = Kanal 1 x x Xtal 1 +5 16+ PB4 Zusatzfunktion 1 rastend
'PD6 = Licht vorne Kanal 4->PD2 +6 15+ PB3 Licht Boden 2 / rastend
'PB0 = Licht hinten 1 Kanal 3->PD3 +7 14+ PB2 Licht Boden 1 / rastend
'PB1 = Licht hinten 2 Kanal 2->PD4 +8 13+ PB1 Licht hinten 2 / rastend
'PB2 = Licht Boden 1 Kanal 1->PD5 +9 12+ PB0 Licht hinten 1 / rastend
'PB3 = Licht Boden 2 GND +10 11+ PD6 Licht vorne
'PB4 = Zusatzfunktion 1 +-------+
'PB5 = Zusatzfunktion 2
'PB6 = Hupe
'PB7 = Zusatzfunktion 3

jeffrey
01.09.2006, 23:25
hi,
es ist sowohl ein unterschied, ob 2 impulse kommen, oder 3 impulse kommen, die zeitbegrenzung ist nur nötig damit nicht ewig auf neue impulse gewartet wird. meiner meinung nach soll nicht die frequenz ausgewertet werden, sondern die anzahl der impulse, drei impulse dauern halt länger als 2, war vielleicht etwas missverständlich, man kann auch einfach zählen, wieviele impulse in 5 s kommen, also z.b. knüppel 2 mal nach vorne rücklicht an, knüppel 3 mal nach vorne frontlicht an.
die impulse kann man einfach über einen timer auswerten. es gibt dazu 2 möglichkeiten, entweder den impuls an einen interrupteingang und nen timer bei steigender flanke starten und bei fallender stoppen, wird nur schwierig wenn mehrere kanäle eingelesen werden müssen, da meist nicht so viele interrupt eingänge zur verfügung stehen.
die andere möglichkeit ist mit einem timer z.b. alle 10 us nen inerrupt auszulesen, und dann alle eingänge abzufragen, das bremst allerdings, da in den 18ms, in denen nichts passiert auch dauern der timerinterrupt auftritt.
mfg jeffrey

TobiasBlome
02.09.2006, 08:04
Ach so, das ist natürlich auch eine Möglichkeit.

Hat jemand schon mein Programm angesehen?

Tobias

jeffrey
02.09.2006, 10:20
@ tobias
hi, durch das bitwait kann dein controller halt nichts andrres machen, als den einen impuls auszuwerten. also nicht ideal von der controllerauslastung her. außerdem sind so nicht mehrere schaltvorgänge mit einem kanal möglich
mfg jeffrey

TobiasBlome
02.09.2006, 10:29
naja, das bitwait könnte man ja auch weg lassen. Aber ich dachte das ja vom Empfänger sowieso alle 20 ms ein Signal kommt kann der µC auch darauf warten ;-)

Hanni
02.09.2006, 11:16
nur sind 20 ms für nen Mikrocontroller ne halbe ewigkeit ....

repi64
02.09.2006, 20:23
Wenn man nicht unbedingt alles selbst machen möchte, kann das ELV Modul helfen.
http://www.elv-downloads.de/service/manuals/MBS200/MBS200_KM_G_040413.pdf.

TobiasBlome
03.09.2006, 20:32
Ja! genau soetwas suche ich, nur für mindestens 6 Funktionen. Und schön wäre dass, wenn das in Basik ist damit ich das in den µC rein bekomme der schon eingebaut ist ;-)

P.S. schreibe erst jetzt weil ich probleme mit dem PC habe:
Beim Programm übertragen sagt Bascom-AVR immer Fehler 000000

Denke mal das die Verbindung nicht stimmt. Hatte mal einen Flugsimmulator installiert und den über den Druckerport gesteuert und seid dem geht der LTP mit Bascom nicht mehr....
Software habe ich deinstalliert aber irgendwelche Einstellungen müssen unter XP noch falsch sein - hat jemand ne Idee?

Tobias

TobiasBlome
03.09.2006, 20:33
Hab noch vergessen: an dem Rechner meiner Schwester geht das mit programmieren - aber die war da nicht so begeistert von...