funkfernsteuerung mit avr mikrokontroller

OP #2098419
Lesenswert?
• ▲
▼
==funkfernsteuerung mit avr mikrokontroller==

hallo,

ich habe hier eine ältere funke für modellflug, mit 4 hebeln mit
widerständen dran, batteriehalter und hf-modul 40MHz.

will sie auf deltamischer aufrüsten, d.h. statt kanal1 und kanal2 soll
kanalX = kanal1+kanal2
und
kanalY = kanal1-kanal2
ausgegeben werden.

einer spontanen idee zufolge reicht dafür ein genügend schneller 
at-controller auf einer lochrasterplatte mit ausstattung:

- ic7805 für 5V (die werden an die widerstände geschickt)
- 4 kabel zum abgreifen der widerstandsspannungen und einfüttern in den 
mC
- 2 kabel für Versorgung mit 8*1,2V=9,6V
- 1 Kabel mit Pulldown-Widerstand und schalter, 0v=normal, 5V=delta
- 2 kabel zum ausgeben ans hf-modul (1x so, 1x invertiert)
summa 9 kabel, 2 ics, 1 widerstand, 1 schalter

mit folgendem pseudo-code:

ausgang1=0; ausgang2=1;        // a2 = 1-a1. immer.
while true
  a1=0;
  zähle 20 msec ab             // sende alle 20 msec
  a1=1
  zähle 6  msec ab        // synchro für ppm-empfänger
  a1=0
  zähle 0,3 msec ab       // pause zwischen pulsen
  a1=1

  lies und digitalisiere u1 nach r1   // u1 ist spannung an kanal1.
                                      // r1 ist register 1
  lies und digitalisiere u2 nach r2   // u2 ist spannung an kanal2.
                                      // r2 ist register 2
  lies udelta      //
  falls (udelta>2V) {       // delta an
    r1=r1-r2
    r2=r1 + 2*r2     // gibt r1-r2 in r1 und r1+r2 in r2
  }

  berechne n1 in msec: 1 + r1/r1max    // maximalwert des 
digitalisierers
  a1=1                    // sende puls für kanal1
  zähle n1 msec ab
  a1=0
  zähle 0,3 msec ab       // pause zwischen pulsen

// so jetzt dasselbe für die anderen 3 kanäle
  berechne n2 in msec: 1 + r2/r2max    // maximalwert des 
digitalisierers
  a1=1                    // sende puls für kanal1
  zähle n2 msec ab
  a1=0
  zähle 0,3 msec ab       // pause zwischen pulsen

  lies und digitalisiere u3 nach r1   // registersparen

  berechne n3 in msec: 1 + r1/r1max    // maximalwert des 
digitalisierers
  a1=1                    // sende puls für kanal3
  zähle n3 msec ab
  a1=0
  zähle 0,3 msec ab       // pause zwischen pulsen

  lies und digitalisiere u4 nach r2
  berechne n4 in msec: 1 + r2/r2max    // maximalwert des 
digitalisierers
  a1=1                    // sende puls für kanal4
  zähle n msec ab
  a1=0
  zähle 0,3 msec ab       // pause zwischen pulsen
end while

* die schaltung würde natürlich  am modellauto streß-geprüft ,
  bevor sie in den flieger darf *

fragen:
1) sind funkfernsteuerungen wirklich so simpel zu bauen?
2) welchen µC würdet ihr empfehlen?
3) welches Programmierbrett  compiler  sprache ?
4) gibt es bei 1MHz controllerfrequenz timing-probleme mit den o.g. 
msec?
5) warum fand ich im www keinen code/bauplan?

gruss gtslehrer
Gast #2098511
Lesenswert?
• ▲
▼
hannz o. schrieb:
> fragen:
> 2) welchen µC würdet ihr empfehlen?

AT Mega 88


>
> 3) welches Programmierbrett  compiler  sprache ?
C Programmierung mit WinAvr und AVR Studio


> 4) gibt es bei 1MHz controllerfrequenz timing-probleme mit den o.g.
> msec?
Nein.


> 5) warum fand ich im www keinen code/bauplan?

Such erst mal nach "Ansteuerung Modellbauservo" hier im Forum
und in den Artikeln hier.


Axel

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.