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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren