Hallo und noch ein leicht verspätetes "PROSIT NEUJAHR" an alle!
Mein altes Makita Baustellenradio hatte noch kein Bluetooth. Also schnell ein BT-Modul eingebaut (Ausgang auf AUX2) welches mit einem Schalter ein- und ausgeschaltet wird.
Wenn ich das Ausschalten vergesse ist der Akku igendwann leer bzw. sogar tiefentladen.
Um das zu verhindern habe ich das kleine Programm geschrieben.
Meine Überlegung war folgende. Mit einem Taster das Relais für die Stromversorgung des BT-Moduls einschalten. Wenn an den ADC-Eingängen das gleichgerichtete NF-Signal anliegt
soll das Relais eingeschaltet bleiben. Sobald das NF-Signal ausbleibt (die Schaltschwelle muss dann in der Praxis ermittelt werden) soll das Relais abfallen und der Attiny schlafen gehen.
Habe das ganze erst im Simulator getestet - mit Einzelschritten fuktioniert es. Im "normalen" RUN-Modus nicht???
Ist das was ich vorhabe in der Art überhaupt machbar?
Alles anzeigen
Mein altes Makita Baustellenradio hatte noch kein Bluetooth. Also schnell ein BT-Modul eingebaut (Ausgang auf AUX2) welches mit einem Schalter ein- und ausgeschaltet wird.
Wenn ich das Ausschalten vergesse ist der Akku igendwann leer bzw. sogar tiefentladen.
Um das zu verhindern habe ich das kleine Programm geschrieben.
Meine Überlegung war folgende. Mit einem Taster das Relais für die Stromversorgung des BT-Moduls einschalten. Wenn an den ADC-Eingängen das gleichgerichtete NF-Signal anliegt
soll das Relais eingeschaltet bleiben. Sobald das NF-Signal ausbleibt (die Schaltschwelle muss dann in der Praxis ermittelt werden) soll das Relais abfallen und der Attiny schlafen gehen.
Habe das ganze erst im Simulator getestet - mit Einzelschritten fuktioniert es. Im "normalen" RUN-Modus nicht???
Ist das was ich vorhabe in der Art überhaupt machbar?
BASCOM-Quellcode: BT-Modul Abschaltung
- ' Automatische Abschaltung des nachgerüsteten Bluetooth-Moduls beim DMR102 Makita Baustellenradio.
- ' Durch einen Tastendruck wird das Relais für die Stomversorgung des BT-Moduls eingeschaltet.
- ' Wenn ein gleichgerichtetes NF-Signal in entspraechender Staerke an PB3 oder PB4 anliegt
- ' bleibt das Relais eingeschaltet.
- ' Sobald das NF-Signal unter etwa 0,1V faellt wird das Relais abgeschaltet und der Attiny
- ' wird schlafen gelegt.
- '
- ' Version: Rev.01
- ' Datum: 02.01.2020
- ' Compiler: BASCOM-AVR
- ' Version: 2.0.8.2
- ' Controller: ATtiny85
- ' Autor: Alfred Schneider
- ' letzte Änderung: 04.01.2020
- '
- '===============================================================================
- '*******************************************************************************
- '===============================================================================
- $regfile = "Attiny85.dat"
- $crystal = 1000000
- $hwstack = 10
- $framesize = 40
- $swstack = 10
- '===============================================================================
- '***| Variablen deklarieren |***************************************************
- '===============================================================================
- Dim W As Word
- Dim X As Word
- Dim Signal As Word
- '===============================================================================
- '***| Aus- und Eingänge konfigurieren |*****************************************
- '===============================================================================
- Config Adc = Single , Prescaler = Auto , Reference = Avcc
- Start Adc
- Config Portb.2 = Input 'Taster-Eingang
- Pinb.2 = 1 'internen Pullup-Widerstand für Taster aktivieren
- 'Ausgang für Relais
- Config Portb.0 = Output
- Relais Alias Portb.0
- 'freie Pin's als Eingang definieren und interne Pullups einschalten
- Config Portb.1 = Input
- Pinb.1 = 1
- Config Portb.5 = Input
- Pinb.5 = 1
- '===============================================================================
- '***| Einstellungen zum Aufwecken des Attiny mit PIN-CHANGE |*******************
- '===============================================================================
- Gimsk.5 = 1 ' Pin Change Interrupt Enable
- Sreg.7 = 1 ' Globale Interrupts einschalten
- Pcmsk.0 = 1 ' Pin Change Inerrupt PB2 aktivieren
- On Pcint0 Isr ' Bei einem Interrupt springe zur ISR
- 'Relais Einschalten
- Relais = 1
- '===============================================================================
- '***| Hauptprogramm |***********************************************************
- '===============================================================================
- Do
- W = Getadc(2) 'Linker Kanal A/D Wandler ADC2 (PB4) verwenden
- X = Getadc(3) 'Rechter Kanal A/D Wandler ADC3 (PB3) verwenden
- Signal = W + X 'Beide Kanaele addieren
- Signal = Signal / 2 'und durch 2 Teilen
- If Signal >= 22 Then 'wenn gleichgerichtetes NF-Signal >0,1V
- Relais = 1 'Relais einschalten
- Else 'wenn kleiner
- Relais = 0 'Relais ausschalten und
- Config Powermode = Powerdown 'Microkontroller schlafen legen
- End If
- Loop
- End
- '===============================================================================
- '***| Pin change interrupt - ISR |**********************************************
- '===============================================================================
- Isr:
- 'Bei Tastendruck (Pin change interrupt)
- Relais = 1
- Return
- '===============================================================================