Signal RC Empfänger auswerten

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Hallo darasol,

      Ich weiss nicht ob dir das was hift aber vor inzwischen Jahren hab ich für den FENDT-Buldogg von meinem Buben auch eine Licht/Rundumblinklicht Funktion nachgerüstet,

      Hab den Beitrag aus dem "alten Forum" durch Zufall wieder gefunden beim Festplatte putzen.

      Nachdem der damals von mir verwendete Attiny25 nur einen 8-Bit-Timer hat ist die Auflösung ziemlich grob aber zur Lichtsteuerung tuts.


      Quellcode

      1. '(
      2. Anpassung Servosignale für Blinkgeber und Beleuchtung FENDT
      3. Stand 02.08.2014
      4. Aufgabenstellung:
      5. 1) Blinklicht wenn Eingang Impulsbreite zwischen 0,9ms und 2,1ms
      6. 2) Knüppel-Mittelstellung = Beleuchtung AUS
      7. 3) Knüppel-VOR = Fernlicht
      8. Eingang Impulsbreite > ca 1,6ms
      9. Ausschaltverzögerung 5 Sekunden
      10. 4) Knüppel-RÜCK = Rückfahrscheinwerfer
      11. Eingang Impulsbreite < ca 1,4ms
      12. Ausschaltverzögerung 5 Sekunden
      13. 5) Ohne Eingangsimpulse alle LEDs aus
      14. ')
      15. '(
      16. FUSES:
      17. Taktfrequenz 8MHz
      18. Teilung / 8 OFF
      19. ')
      20. $regfile = "ATtiny25.DAT"
      21. $crystal = 8000000
      22. $hwstack = 16
      23. $swstack = 16
      24. $framesize = 24
      25. Rem ----------------------------------------------------------------------
      26. Rem IO
      27. Config Portb.2 = Input ' SCK und Input vom Empfänger
      28. Portb.2 = 1 ' Pullup
      29. Servo_in Alias Pinb.2
      30. Config Portb.1 = Output ' MISO und Beleuchtung Rückwärts
      31. Rueckwaerts Alias Portb.1
      32. Config Portb.0 = Output ' MOSI und Beleuchtung Vorwärts RECHTS
      33. Vorwaerts_r Alias Portb.0
      34. Config Portb.4 = Output ' Beleuchtung Vorwärts LINKS
      35. Vorwaerts_l Alias Portb.4
      36. Config Portb.3 = Output ' Blinklicht
      37. Blinker Alias Portb.3
      38. Rem ----------------------------------------------------------------------
      39. Rem DIM und CONST
      40. Dim Servowert As Integer ' Ausgelesener Sollwert vom Empfänger
      41. Servowert = 0
      42. Dim Position As Byte ' Variable für Zwischenberechnung
      43. Dim Leuchtdauer As Byte ' Variable für Verzögerung Abschaltung
      44. Leuchtdauer = 6
      45. Dim Signalda As Byte ' Variable Erkennung Sendersignal
      46. Signalda = 0
      47. Rem ----------------------------------------------------------------------
      48. Rem Config AUSGANG
      49. Rem ----------------------------------------------------------------------
      50. Rem Impulsbreitenmessung EINGANG vom Empfänger
      51. Config Int0 = Change
      52. On Int0 Signalmessung
      53. Enable Int0
      54. Config Timer1 = Timer , Prescale = 256
      55. Timer1 = 0
      56. On Timer1 Timer1_isr
      57. Enable Timer1
      58. Enable Interrupts
      59. Rem ----------------------------------------------------------------------
      60. Rem Hauptprogramm
      61. Rem Eingelesener Sollwert vom Empfänger (SERVOWERT)
      62. Rem 1ms = 31
      63. Rem 1,5ms = 47
      64. Rem 2ms = 63
      65. For Position = 1 To 6 ' erstes Lebenszeichen
      66. Toggle Vorwaerts_r
      67. Toggle Vorwaerts_l
      68. Toggle Rueckwaerts
      69. Toggle Blinker
      70. Waitms 200
      71. Next
      72. Rueckwaerts = 0
      73. Vorwaerts_r = 0
      74. Vorwaerts_l = 0
      75. Blinker = 0
      76. Do
      77. Select Case Servowert
      78. Case 25 To 45 ' Knüppel nach hinten --> Rückfahrlicht
      79. Rueckwaerts = 1
      80. If Vorwaerts_r = 1 Then Incr Position ' Verzögerung für Fernlicht abschalten
      81. If Position > Leuchtdauer Then
      82. Vorwaerts_r = 0
      83. Vorwaerts_l = 0
      84. Position = 0
      85. End If
      86. Case 51 To 255 ' Knüppel nach vorne --> Fernlicht
      87. Vorwaerts_r = 1
      88. Vorwaerts_l = 1
      89. If Rueckwaerts = 1 Then Incr Position ' Verzögerung für Rückfahrlicht abschalten
      90. If Position > Leuchtdauer Then
      91. Rueckwaerts = 0
      92. Position = 0
      93. End If
      94. Case 46 To 50 ' Knüppel Mittelstellung --> Fernlicht und Rückfahrlicht AUS
      95. If Rueckwaerts = 1 Then Incr Position ' Verzögerung für Rückfahrlicht abschalten
      96. If Position > Leuchtdauer Then
      97. Rueckwaerts = 0
      98. Position = 0
      99. End If
      100. If Vorwaerts_r = 1 Then Incr Position ' Verzögerung für Fernlicht abschalten
      101. If Position > Leuchtdauer Then
      102. Vorwaerts_r = 0
      103. Vorwaerts_l = 0
      104. Position = 0
      105. End If
      106. End Select
      107. Select Case Servowert
      108. Case 0 To 29 ' Wenn Empfängersignal ungültig --> Blinker AUS
      109. Blinker = 0
      110. Case 68 To 255 ' Wenn Empfängersignal ungültig --> Blinker AUS
      111. Blinker = 0
      112. Case 25 To 67 ' Wenn Empfängersignal gültig --> Blinklicht
      113. Toggle Blinker
      114. End Select
      115. Incr Signalda ' Failsafe
      116. If Signalda > 2 Then
      117. Signalda = 2
      118. Rueckwaerts = 0
      119. Vorwaerts_r = 0
      120. Vorwaerts_l = 0
      121. Blinker = 0
      122. Servowert = 0
      123. End If
      124. Waitms 500 ' gibt Blinkfrequenz vor
      125. Loop
      126. End
      127. Rem ----------------------------------------------------------------------
      128. Rem Subroutinen
      129. Timer1_isr: 'Überlauf bei Fehlen Eingangssignal
      130. Servowert = 0
      131. Return
      132. Signalmessung:
      133. If Servo_in = 1 Then
      134. Tcnt1 = 0 ' setzt direkt das Register !!!
      135. Start Timer1
      136. Else
      137. Stop Timer1
      138. Servowert = Timer1
      139. End If
      140. Signalda = 0 ' Rücksetzen Failsave
      141. Return
      Alles anzeigen