Nach vielen Experimenten und ausgiebigen Tests kann ich nun endlich das Projekt als abgeschlossen betrachten.
Für alle Interessierten hier noch einmal die finale Version:
Plan_Vers_TPS.JPG
sPlan-Layout: (.txt entfernen)
Auto_aus_TPS.lay6.txt
Nun noch das Programm:
Alles anzeigen
Für alle Interessierten hier noch einmal die finale Version:
Plan_Vers_TPS.JPG
sPlan-Layout: (.txt entfernen)
Auto_aus_TPS.lay6.txt
Nun noch das Programm:
Quellcode
- ' Automatische Abschaltung des nachgerüsteten Bluetooth-Moduls beim DMR102 Makita Baustellenradio.
- ' Der ATtiny hat die Aufgabe das vom Komparator (LM393) gelieferte Signal zu Messen und
- ' bei fehlendem Signal (vom BT-Modul) nach etwa einer Minute die Spannungsversorgung mithilfe
- ' des Enable-Pin des Spannungsreglers (TPS70933) der Auswertschaltung sowie des BT-Moduls abzuschalten.
- ' Durch einen Tastendruck wird die Spnnungsversorgung wieder hergestellt und der ATtiny kann seine
- ' Arbeit wie oben beschrieben wieder aufnehmen.
- '
- ' Version: Rev.04
- ' Datum: 13.05.2020
- ' Compiler: BASCOM-AVR
- ' Version: 2.0.8.2
- ' Controller: ATtiny85 / 704 Bytes / 8%
- '
- '===============================================================================
- '*******************************************************************************
- '===============================================================================
- $regfile = "Attiny85.dat"
- $crystal = 1000000
- $hwstack = 32
- $framesize = 64
- $swstack = 32
- '###### neu ######
- Config Portb.2 = Output
- Tps_enable Alias Portb.2
- Set Tps_enable 'TPS eingeschaltet halten
- '#######################
- '===========================================================================
- 'Konstanten festlegen |***************************************************
- '=============================================================================
- Const Ein = 1
- Const Aus = 0
- Const Messzahl = 2000 'Anzahl der Messzyklen fuer Mittelwertbildung
- Const Verstaerkung = 1
- '===============================================================================
- '***| Variablen deklarieren |***************************************************
- '===============================================================================
- Dim X As Word
- Dim N As Word
- Dim Mean As Dword
- Dim Signal As Word
- Dim Var1 As Byte
- Declare Sub Messen
- '===============================================================================
- '*| Aus- und Eingänge konfigurieren |*******************************************
- '===============================================================================
- Config Adc = Single , Prescaler = Auto , Reference = Avcc
- Start Adc
- 'Ausgang Fuer LED
- Config Portb.1 = Output
- Led Alias Portb.1
- 'ADC3 Eingang
- Config Portb.3 = Input 'ADC3 Eingang
- '===============================================================================
- '===============================================================================
- '*| Hauptprogramm |*************************************************************
- '===============================================================================
- Do
- For Var1 = 1 To 100
- Call Messen
- If Signal > 35 Then
- Led = Ein
- End If
- Next Var1
- If Signal < 35 Then 'Level < 112mV
- Led = Aus
- '####### neu #######
- Reset Tps_enable
- '#################################
- End If
- Loop
- End
- '===============================================================================
- '*| Sub zur Signalmessung |*****************************************************
- '===============================================================================
- Sub Messen
- Mean = 0
- For N = 1 To Messzahl 'Mittelwert von 50000 Messungen bilden
- X = Getadc(3) 'Linker Kanal A/D Wandler ADC2 (PB4) verwenden
- Mean = Mean + X
- Next N
- Mean = Mean / Messzahl 'Ergebnis geteilt durch Messzahl
- Signal = Mean * Verstaerkung
- End Sub