
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
![]() ' =========================================================================== ' Demoprogramm: Schalthysterese verstehen und anwenden ' In OCBASIC 1.12a_e1 für Open-Maxi von Dietmar Harlos am 09. April 2022 ' =========================================================================== ' Eine gute Erklärung mit Bild gibt es auf folgender Internetseite: ' https://blog.wika.de/know-how/schaltfunktion-hysterese-bei-elektronischen-druckschaltern/ ' Unter einer Hysterese versteht man im Allgemeinen die Differenz aus ' Schaltpunkt und Rückschaltpunkt. Eine Hysterese ist grundsätzlich ' unverzichtbar, denn falls Schalt- und Rückschaltpunkt auf den identischen ' Wert festgelegt wären, so würde das zu steuernde System in Schwingung ' versetzt und somit instabil werden. ' In diesem Programm soll ein Digitalport gesetzt werden, wenn die Eingangs- ' spannung an einem Analog-Digital-Port 1,5 Volt überschreitet. Würde man ' einschalten, wenn die Spannung größer 1,5 Volt ist und direkt unterhalb ' dieser Grenze ausschalten, würde ständig ein- und ausgeschaltet, wenn die ' Eingangsspannung nahe 1,5 Volt ist. Als Lösung wird hier bei größer/gleich ' 1,55 Volt ein- und bei kleiner/gleich 1,45 Volt ausgeschaltet. Die ' Hysterese hat also eine Größe von 0,1 Volt. ' An dieser Stelle möchte ich mich bei Dirk von "das |_ Team" und bei Norbert ' für ihre Unterstützung bedanken. In Memoriam Norbert Klein. ' --- Definitionen ---------------------------------------------------------- INCLUDE "omax.def" 'Definitionen für die Open-Maxi DEFINE HYSTOBEN 317 '1024/5*1.55 DEFINE HYSTUNTEN 300 '1024/5*1.45 DEFINE adinput AD[1] 'Eingang des Analog-Digital-Wandlers DEFINE schalten PORT[1] 'Einen Port ein- und ausschalten DIM bitarray BYTE 'ein Bitarray DIM debug BIT[1] OF bitarray 'ist HIGH, wenn Debugging aktiv DIM a,b,c BYTE 'temporäre Variablen ' --- Hauptprogramm --------------------------------------------------------- PrintSpc=ON 'Bei PRINT dezimale Zahlen mit führendem Leerzeichen ausgeben End2Host=ON 'Bei Programmende (siehe END) gleich in den Host-Modus wechseln ' Titel: PRINT "Schalthysterese" PRINT "===============" ' Initialisierungen: debug=ON 'OFF 'ON 'AD-Werte anzeigen ' Die AD-Ports liefern standardmäßig gerundete 8-Bit-Werte zwischen 0 und 255 ' zurück, was den Spannungswerten 0 Volt bis 5 Volt entspricht. Mit folgendem ' Befehl wird auf gerundete 10 Bit umgeschaltet. ADC1CFG=&b01001000 'AD-Wandler auf gerundete 10 Bit schalten=OFF 'initialer Schaltzustand ' Hauptschleife des Programms: WHILE TRUE IF debug THEN ?"adinput="adinput END IF IF adinput>=HYSTOBEN AND schalten=OFF THEN schalten=ON ?"Eingangsspannung hat oberen Hysteresepunkt erreicht oder überschritten." ELSE IF adinput<=HYSTUNTEN AND schalten=ON THEN schalten=OFF ?"Eingangsspannung hat unteren Hysteresepunkt erreicht oder unterschritten." END IF PAUSE 25 WEND ?:?"Programmende." END 'Zurück in den Hostmodus. Neustart mit RETURN-Taste. ' --- Programmende --------------------------------------------------------- Passender Link: Infosite zu den OM-Mikrocontrollern Meine Homepage: http://ccintern.dharlos.de |
| Antwort schreiben |