Forum: Mikrocontroller und Digitale Elektronik funkfernsteuerung mit avr mikrokontroller


von hannz o. (gtslehrer)


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

von Düsendieb (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.