From 3f85ea320a8e705d399e5e5745eb5e0d767c2d80 Mon Sep 17 00:00:00 2001 From: Markus Rosenstihl Date: Fri, 28 Jul 2017 12:37:22 +0100 Subject: [PATCH] =?UTF-8?q?README=20vervollst=C3=A4ndigt:=20Temperatur?= =?UTF-8?q?=C3=BCberwachung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 +++++++++------- pfg_security.ino | 5 ++++- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index d1b696a..dd22977 100644 --- a/README.md +++ b/README.md @@ -5,22 +5,22 @@ Dieser Arduino Sketch dient zur Sicherheitsüberwachung der PFG Spule. Es werden dabei folgende Parameter überwacht: 1. Kühlmitteldurchflussmenge -2. Temperatur (TODO) +2. Temperatur -i Durchflussmenge +1 Durchflussmenge ================= Zur Durchflussüberwachung dient ein Durchflussmesser der im Rücklauf des Wasser- kreislaufs angebracht ist. Er liefert mit Hilfe eines Hallsensors Pulse mit einem Duty-Cycle von 50% deren Frequenz proportional zum Durchfluss ist. -In diesem Sketch wird der Abstand zweier Pulse gemessen, d.h. die Periodendauer.. +In diesem Sketch wird der Abstand zweier Pulse gemessen, d.h. die Periodendauer. Zur Messung wird der timer1 (der 16bit Timer) des Arduino verwendet. Der Signalausgang des Durchflussmessers ist mit dem Interrupt 0 des Arduino verbunden. Dieser ist so konfiguriert dass er bei einer steigenden Impulseflanke auslöst und die Zeit seit dem letzen Puls in ein Array abspeichert (Periodendauer). -Der Counter des timer1 wird bei jedem Puls wieder auf 0 gesetzt. +Der Counter des timer1 wird nach jedem Puls wieder auf 0 gesetzt. Falls innerhalb eines konfigurierbaren Zeitintervals *kein* Puls gemessen wird löst der timer1 einen Interrupt Service Request aus und setzt die Periodendauer @@ -38,12 +38,14 @@ flow = N/(float)total/conversion * N ist die Anzahl der Werte im Array * total ist die Summe der Periodendauern -* conversion ist der Konversionfaktor (Pulse/Sekunde pro l/min) +* conversion ist der Konversionsfaktor (Pulse/Sekunde pro l/min) 2 Temperatur Überwachung ======================== - +Die Temperatur in der PFG Spule wird mit einem Temperaturcontroller von Jumo überwacht. +Bei zu hohen Temperaturen (45 °C) wird das Alarm Relais +geöffnet. Dieses Relais wird überwacht mit dem Analog Pin A0. 3 Copley Verstärker Interlock @@ -51,6 +53,6 @@ flow = N/(float)total/conversion Die Copley Stromquelle erwartet ein HIGH Signal am Eingang des Interlocks. Wird ein Fehler ausgelöst wird der Interlock-PIN des Arduino (Pin konfigurierbar) auf LOW gesetzt. Sobald die Störung behoben ist geht der PIN wieder automatisch auf HIGH. - +Die Alarm LED ist zum Interlock logisch invertiert. diff --git a/pfg_security.ino b/pfg_security.ino index 15c174b..06eda9e 100644 --- a/pfg_security.ino +++ b/pfg_security.ino @@ -180,9 +180,12 @@ void setup() setup_ok = false; return; } + //int prescaler = PRESCALER; + //snprintf(new_flow_string, sizeof(new_flow_string), "PRESCALER %i", prescaler); + //TFTscreen.text("PRESCALER",0,30); TIMSK1 |= (1 << OCIE1A); // enable timer compare interrupt interrupts(); // enable all interrupts - delay(100); + delay(1000); } // if after OCR1A seconds no pulse from flow meter occured an interrupt will force a very high delta value