mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik funkfernsteuerung mit avr mikrokontroller


Autor: hannz o. (gtslehrer)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.