//bibliotheke
#include <LiquidCrystal.h> //LCD Parameter
#include "DallasTemperature.h"// T°C Sensor
OneWire oneWire(A1);
DallasTemperature ds(&oneWire);
LiquidCrystal lcd(12, 11, 10, 9, 8, 7); //Parameter: (rs, enable, d4, d5, d6, d7)
//Eingabe PINS
const byte interruptPin = 3; //Boutton
volatile byte state = false; // etat initial du boutton
const int POTENTIOMETER_PIN = A0;
int reset = 0 ; // initialisation de LCD (start mesure)
int limit=0;
int limite=0;
//Ausgabe PINS
const byte LED_PIN = 4 ;
const byte leds = 13 ;
//Globale Variabel
int dauer_schleife; // durree de la boucle
long int zeit_neue_messung; // temps de mesure
long int zeit; //Temps
long int sekunde;
float aktuele_potentiometer_wert ; //valleur du potentiometre
//float aktuele_sensor_wert; // valeur actuel du potentiometre
float messung_sensor; // mesure du capteur
int zeit_messung; // temps de mesure
int initialisation = 0 ;
//static const int BLINK_DURATION_MS = 250;
int etatLED = LOW; // État actuel de la LED
unsigned long tempsActuel; // Temps actuel
unsigned long tempsPrecedent = 0; // Temps précédent
long intervalle = 250; // temps blinken
void setup() {
// 1.1Konfiguration der eingaben PINS // Configuration PIN entrant
pinMode(POTENTIOMETER_PIN, INPUT);
//2.1Konfiguration der Ausgabe PINS //Configuration PIN Sortant
pinMode(LED_PIN, OUTPUT);
pinMode(leds, OUTPUT);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), onEvent, FALLING);
//3.Initiales Setzen der Ausgänge
lcd.clear();
lcd.begin(16,2); //16 Spalten und 2 Zeilen
Serial.begin(9600);
ds.begin(); // Sensor initilisieren connection avec le capteur
Serial.println("temperatur measurement");
}
void loop() {
ds.requestTemperatures(); //funktion pour soliciter le fkt de dallas T°c ds
int sensor_wert = ds.getTempCByIndex(0);// convertierter Temperaturwert in funktion dallastemperatur
if(state==1){
LIMIT();
reset += 1; // permet de sortir de la boucle lorsqu il est ä 10
aktuele_potentiometer_wert = analogRead(A0);
// 4. Rechnungen
digitalWrite(leds, state); // ä state=1 la bleu s allume
zeit_messung = (aktuele_potentiometer_wert)*10/1023;
dauer_schleife = zeit_messung*1000;
zeit = millis();
led ();
if (zeit_neue_messung < zeit)
{
serial_monitor();
lcd_screen();
zeit_neue_messung += dauer_schleife;
}
}
else{
digitalWrite(LED_PIN, LOW);
digitalWrite(leds, LOW);
lcd.clear();
}
}
void onEvent() {
state != state ;
Serial.print("Switch LED 13 : ");
if(digitalRead(interruptPin) == LOW) {
Serial.println(state);
state =! state ;
}else{
Serial.println("OFF");
}
}