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:
- Piepsen wenn kein Signal oder wenn Signal bescheuert
- Piepsen wenn gewollt eingeschaltet
- Piepsen wenn Unterspannung
- Not-GoldCap damit auch Piepsen wenn Akku tot, intelligentes Energiemanagement
- Einschaltbares Blinken, Positionsleuchten usw.
- 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
- Vorteiler (Prescaler) für Takt an Wandler (soll im Bereich 50kHz..200kHz liegen) einstellen. Mögliche Teilungen 2,4,8,16,32,64,128. Gewählt 128 = > 8 MHz / 128 = 62,5 kHz
- Referenzspannung für Wandler ist AREF
- Wandlung mit Interruptauslösung
- Auflösung 10Bit aber nur 8 Bit verwendet
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 |