|
@@ -1,106 +0,0 @@
|
|
|
-#include <LiquidCrystal.h>
|
|
|
-
|
|
|
-#include <PWM.h>
|
|
|
-
|
|
|
-#include <DallasTemperature.h>
|
|
|
-
|
|
|
-#include <OneWire.h>
|
|
|
-
|
|
|
-LiquidCrystal lcd(13, 12, 10, 9, 8, 7);
|
|
|
-#define PIN_OUTPUT 3
|
|
|
-#define LED 5
|
|
|
-volatile int Stop = 2;
|
|
|
-int tempsensor = 6;
|
|
|
-int Magnet = 11;
|
|
|
-int32_t frequency = 10;
|
|
|
-int Grades;
|
|
|
-double temperature;
|
|
|
-double Tmax = 30;
|
|
|
-int S;
|
|
|
-unsigned long t = 0;
|
|
|
-unsigned long tmax = 60000;
|
|
|
-int D;
|
|
|
-void Drehschalter();
|
|
|
-void LCD();
|
|
|
-void Abbrechen();
|
|
|
-OneWire onewirepin(tempsensor);
|
|
|
-DallasTemperature sensors(&onewirepin);
|
|
|
-
|
|
|
-void setup() {
|
|
|
-
|
|
|
- lcd.begin(16, 2);
|
|
|
- InitTimersSafe();
|
|
|
- bool success = SetPinFrequencySafe(PIN_OUTPUT,frequency);
|
|
|
- sensors.begin();
|
|
|
- pinMode(Magnet, OUTPUT);
|
|
|
- pinMode(Stop, INPUT);
|
|
|
- attachInterrupt(digitalPinToInterrupt(Stop), Abbrechen, CHANGE);
|
|
|
-}
|
|
|
-
|
|
|
-void loop() {
|
|
|
-
|
|
|
- while (t < tmax) {
|
|
|
- t=millis();
|
|
|
- digitalWrite(Magnet, HIGH);
|
|
|
- Drehschalter();
|
|
|
- sensors.requestTemperatures();
|
|
|
- temperature=sensors.getTempCByIndex(0);
|
|
|
- D =map(analogRead(1), 0, 1023, 0, 255);
|
|
|
- pwmWrite(PIN_OUTPUT, D);
|
|
|
- analogWrite(LED, D);
|
|
|
- LCD();
|
|
|
-// S=digitalRead(2);
|
|
|
-// if (S == HIGH) {
|
|
|
-// t=tmax;
|
|
|
-// }
|
|
|
-// if (temperature > Tmax) {
|
|
|
-// t=tmax;
|
|
|
-// }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- digitalWrite(Magnet, LOW);
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-void Drehschalter() {
|
|
|
- Grades = analogRead(0);
|
|
|
- if (Grades >= 0 && Grades <= 205) {
|
|
|
- tmax = 10000;
|
|
|
- }
|
|
|
- if (Grades > 205 && Grades <= 410) {
|
|
|
- tmax = 20000;
|
|
|
- }
|
|
|
- if (Grades > 410 && Grades <= 615) {
|
|
|
- tmax = 30000;
|
|
|
- }
|
|
|
- if (Grades > 615 && Grades <= 820) {
|
|
|
- tmax = 40000;
|
|
|
- }
|
|
|
- if (Grades > 820 && Grades <= 1024) {
|
|
|
- tmax = 50000;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void LCD() {
|
|
|
- lcd.setCursor(0, 0);
|
|
|
- lcd.print("T=");
|
|
|
- lcd.print(temperature);
|
|
|
- lcd.print("`C ");
|
|
|
- lcd.print("t=");
|
|
|
- lcd.print(t/1000);
|
|
|
- lcd.print("s");
|
|
|
- lcd.setCursor(0, 1);
|
|
|
- lcd.print("D=");
|
|
|
- lcd.print((D*100)/255);
|
|
|
- lcd.print("% ");
|
|
|
- lcd.print("tmax=");
|
|
|
- lcd.print(tmax/1000);
|
|
|
- lcd.print("s ");
|
|
|
-}
|
|
|
-
|
|
|
-void Abbrechen() {
|
|
|
- t = tmax;
|
|
|
- return(t);
|
|
|
-}
|
|
|
-
|