MezData-Logo

Ortungs Piepser (Fliegende PiepsBlinkSau)

Idee

Nachdem mir ein Flug-Modell auf Grund von Störungen im 35 MHz-Band mal wieder im Maisfeld gelandet ist und eine umfangreiche Suche notwendig war, brauche ich einen Ortungspiepser.
Einfach einen µC zu verbraten ist aber zu wenig, wenn schon dann das Teil richtig ausnutzen:

  1. Piepsen wenn kein Signal oder wenn Signal bescheuert
  2. Piepsen wenn gewollt eingeschaltet
  3. Piepsen wenn Unterspannung
  4. Not-GoldCap damit auch Piepsen wenn Akku tot, intelligentes Energiemanagement
  5. Einschaltbares Blinken, Positionsleuchten usw.
  6. Bequem zu programmieren

Ortungspiepser-Prototyp mit Servotester als Signalgeber

µController ATmega48

Belegung Bedeutung Pin             Pin Bedeutung Belegung
(PCINT14/Reset) PC6 1 A
T
M
E
G
A

48
28 PC5 (ADC5/SCL/PCINT13)
(PCINT16/RXD) PD0 2 27 PC4 (ADC4/SDA/PCINT12)
(PCINT17/TXD) PD1 3 26 PC3 (ADC3/PCINT11)
(PCINT18/INT0) PD2 4 25 PC2 (ADC2/PCINT10) Ext-Spannung
(PCINT19/OC2B/INT1) PD3 5 24 PC1 (ADC1/PCINT9) BEC-Spannung
(PCINT20/XCK/T0) PD4 6 23 PC0 (ADC0/PCINT8) GoldCapSpannung
VCC 7 22 GND
GND 8 21 AREF
LCD-D6 / Taste-Hoch (PCINT6/XTAL1/TOSC1) PB6 9 20 AVCC
LCD-D7 / Taste-Runter (PCINT7/XTAL2/TOSC2) PB7 10 19 PB5 (SCK/PCINT5) LCD-D5 / Taste-Rechts
Piepser (PCINT21/OC0B/T1) PD5 11 18 PB4 (MISO/PCINT4) LCD-D4 / Taste-Links
(PCINT22/OC0A/AIN0) PD6 12 17 PB3 (MOSI/OC2A/PCINT3) LCD-RS / Taste-OK
(PCINT23/AIN1) PD7 13 16 PB2 (SS/OC1B/PCINT2) LCD-E
Empfänger (PCINT0/CLKO/ICP1) PB0 14 15 PB1 (OC1A/PCINT1)

MISO 1 6 Pol 2 VTG (VCC)
SCK 3 4 MOSI
Reset 5 6 GND

Teilfunktionen

Messen des Empfängersignals

Der OP misst ständig die Impulsbreite des Empfangssignals.

Einstellungen bei Initialisierung

Register Bit 7 6 5 4 3 2 1 0 Beschreibung
TCCR1A Bedeutung COM1A1 COM1A0 COM1B1 COM1B0 FOC1A FOC1B WGM11 WGM10 Waveform Generation Mode: CTC mit OCR1A als TOP
Wert 0 0 0 0 0 0 0 0
TCCR1B Bedeutung ICNC1 ICES1 - WGM13 WGM12 CS12 CS11 CS10 Input Capture pos Flanke
Wert 0 1 0 0 1 0 0 1 Timer mit CPU-CLK

Versorgungs-Spannungen messen

Einstellungen bei Initialisierung

Register Bit 7 6 5 4 3 2 1 0 Beschreibung
ADMUX Bedeutung REFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0 Interne 2,56V Referenzspannung, Wert ist linksbüdig in ADCH:ADCL
Wert 1 1 1 0 0 0 0 0 Linker Kanal an PC0 (ADC0)
ADCSRA Bedeutung ADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS0 Wandler an, Auto Trigger Enable, Interrupt frei
Wert 1 1 1 1 1 1 1 1 Vorteiler auf CLK /1 28
SFIOR Bedeutung ADTS2 ADTS1 ADTS0 - ACME PUD PSR2 PSR10 Free Running Mode
Wert 0 0 0

Prototyp Platine mit LCD-Anzeige

Typischer Anschlußbelegung eines Displays [LCD-Modul am AVR] [AVR-GCC-Tutorial/LCD-Ansteuerung]. Problem bei dem verwendeten Modul von Pollin ist die Notwendigkeit einer negativen Kontrastspannung VEE. Lösung mit Lithium 3V Zelle (CR2032).

Pin
Modul
Bezeichnung Beschreibung Belegung Steckerpin
10 Kabel
Pin
Tastatur
1 GND Masse GND 1 1 GND
2 VCC Spannungsversorgung +5V +5V 2
3 VEE Kontrast Poti 0..0,5V GND 2 -3V
4 RS Register Select, 1=Daten schreiben / 0=Kommando senden. RS 3 3 Ok
5 R/W 1=Read / 0=Write zum lesen / schreiben in das Display RAM GND
6 Enable Fallende Flanke -> Übertragen des Kommandos oder der Daten, H-Pegel -> Lesen von Daten aus dem Display E 4
7 DB0 Datenbus Bit0 LSB NC
8 DB1 Datenbus Bit1 NC
9 DB2 Datenbus Bit2 NC
10 DB3 Datenbus Bit3 NC
11 DB4 Datenbus Bit4 D4 5 4 Links
12 DB5 Datenbus Bit5 D5 6 5 Rechts
13 DB6 Datenbus Bit6 D6 7 6 Hoch
14 DB7 Datenbus Bit7 MSB D7 8 7 Runter
GND 9
IR-Sensor 10
+5V E D5 D7 Sensor
2 4 6 8 10
1 3 5 7 9
GND RS D4 D6 GND