-
-
Erfahrener Benutzer
Roboter Experte
Fernsteuerung für Schaltkanäle auswerten
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
-
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
-
Erfahrener Benutzer
Fleißiges Mitglied
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
-
Erfahrener Benutzer
Roboter Experte
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...
-
Erfahrener Benutzer
Roboter Experte
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
-
Erfahrener Benutzer
Roboter Experte
???
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?
-
Erfahrener Benutzer
Roboter Experte
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
-
Erfahrener Benutzer
Roboter Experte
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
-
Erfahrener Benutzer
Roboter Experte
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
-
Erfahrener Benutzer
Roboter Experte
Ach so, das ist natürlich auch eine Möglichkeit.
Hat jemand schon mein Programm angesehen?
Tobias
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen