Schwarz auf Weiß

Auch als Buch mit dem Titel '10 Selbstbauprojekte', ISBN-Nr. 978-3-7448-3433-9 und als e-book mit der ISBN-Nr. 9783744806299 erschienen.

Besuchen Sie auch meine Art site https://khomet.de

Mittwoch, 7. Oktober 2015

Custom designed Kapazitive Taste Teil 2



Inhaltsverzeichnis

Aufbau
Unterschiede zum ersten Post
Signalaufbereitung
Lernfunktion
Event-Steuerung
Entwicklungsumgebung
Downloads

Aufbau

Wie im ersten Post.


Unterschiede zum ersten Post vom August

-Quarz von 20 MHz in 12 MHz geändert
-PLL eingeschaltet, damit intern 4x12=48 MHz
-CTMU 55 uA
-Timer0 Interrupt alle 49 ms
-Summe von 30 Samples in einem Interrupt (ergibt max ca. 30.690 Punkte bei no touch)
-2x gleitender Durchschnitt der Summe im gleichen Interrupt.


Signalaufbereitung

Timer0 Interrupt alle 49 ms. Es wird 30x in einem Interrupt gesampelt, Gesamtdauer 10 ms.
Alle 30 Samples werden addiert (kein Durchschnitt). Nach Abzug eines Offsets von 7000 Punkten wird 2x der gleitende Durchschnitt (keine Wichtung) gebildet. Bei touch stellen sich ca. 2200 Punkte, bei no touch ca. 3000 Punkte ein. Das erlaubt eine sichere und schnelle Auswertung (eine Änderung wird in 98 ms detektiert).

Lernfunktion

Die Schaltschwelle touch/no touch wird beim ersten Tastendruck nach Reset auf 60% des Abstandes Spitzenwert - kleinster Wert festgelegt. Der Spitzenwert bewegt sich bei ca. 3000 Punkten und der kleinste Wert bei ca. 2000 Punkten. Der Vorteil ist der Ausgleich von sich ändernden Masseverhältnissen und parasitären Kapazitäten. Außerdem kann die Empfindlichkeit individuell auf den Bediener abgestimmt werden.


Eventsteuerung

folgende Ereignisse werden im Timer0Interrupt bereit gestellt:
-Key pressed
-Key relased
-Key just pressed
-Key just relased


Entwicklungsumgebung

Als Editor und Compiler wird jetzt Microbasic Pro von Mikroelektronika verwendet. Dieser erlaubt ein Software-Debugging und die Verwendung von Microbasic Bibliotheken. Diese sind allerdings teilweise sehr langsam. Bei der Ausgabe auf ein OLED wurden diese deshalb nur in der Initialisierungsphase verwendet. 

Achtung! bei Microbasic Pro ist die vorgegebene Programmstruktur strikt einzuhalten:
Program name - Declarations - Subs - Main (initialisierungen) - Main (Polling-Loop) - end. (Programm-Ende).

Bibliotheken werden im Reiter Library Manager hinzugefügt, z. B. ADC, C-StdLib.

Sinnvollerweise ist ein entsprechendes Projekt anzulegen.

Mit Build wird unter anderem eine *.hex Datei erzeugt, die dann wie im ersten Post beschrieben in den PIC gebrannt wird.

Mit Run können die Software-Debugging Optionen gewählt werden (Build/Debugger im Reiter Projekt Setting auf Software stellen).

Microbasic Pro ist bis zu einer Code-Größe von 2kByte kostenlos und nicht in den Funktionen eingeschränkt.


Downloads

CodefragmentTouch2.txt