Guten Tag,
Ich arbeite gerade an einem Programm das beim anschließen des arduino nicht gleich starten soll.
Dafür habe ich mir gedacht baue ich einen Startknopf ein.
Wenn ich ihn kurz drücke soll das programm1 starten und wenn ich nochmal drauf drücke soll es anhalten.
Das programm soll unter anderem am anfang ein relais einschalten und bei 27°C ausschalten.
Doch irgenwie klappt es nicht. Hier einmal mein sketch :
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#define ONE_WIRE_BUS 30 // Temperatursensor pin 30
LiquidCrystal lcd(22, 23, 24, 25, 26, 27, 28);
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress Sensor1 = {0x28, 0xCD, 0x9B, 0xDA, 0x03, 0x00, 0x00, 0xF2};
DeviceAddress Sensor2 = {0x28, 0x1F, 0xA3, 0xDA, 0x03, 0x00, 0x00, 0xE2};
DeviceAddress Sensor3 = {0x28, 0x2D, 0xB9, 0xDA, 0x03, 0x00, 0x00, 0xA0};
DeviceAddress Sensor4 = {0x28, 0x37, 0x88, 0xDA, 0x03, 0x00, 0x00, 0x7D};
int backLight = 29;
int k1 = 31; //relais
int k2 = 32; //relais
int k3 = 33; //relais
int knopf1 = 34;
int buttonState = 0; //knopf
int buttonPushCounter = 0;
int lastButtonState = 0;
void setup() {
pinMode(backLight, OUTPUT);
digitalWrite(backLight, HIGH);
lcd.begin(20, 4);
sensors.begin();
pinMode(k1, OUTPUT);
pinMode(k2, OUTPUT);
pinMode(k3, OUTPUT);
pinMode(knopf1, INPUT);
}
void loop(){
sensors.requestTemperatures();
if (sensors.isConnected(Sensor1)){
lcd.setCursor(0, 0);
lcd.print("T1:");
lcd.print(sensors.getTempC(Sensor1));
lcd.print("C");
}else {
lcd.setCursor(0, 0);
lcd.print("T1:");
lcd.print("AUS ");}
if (sensors.isConnected(Sensor2)){
lcd.setCursor(0, 1);
lcd.print("T2:");
lcd.print(sensors.getTempC(Sensor2));
lcd.print("C");
}else {
lcd.setCursor(0, 1);
lcd.print("T2:");
lcd.print("AUS ");}
if (sensors.isConnected(Sensor3)){
lcd.setCursor(0, 2);
lcd.print("T3:");
lcd.print(sensors.getTempC(Sensor3));
lcd.print("C");
}else {
lcd.setCursor(0, 2);
lcd.print("T3:");
lcd.print("AUS ");}
if (sensors.isConnected(Sensor4)){
lcd.setCursor(0, 3);
lcd.print("T4:");
lcd.print(sensors.getTempC(Sensor4));
lcd.print("C");
}else {
lcd.setCursor(0, 3);
lcd.print("T4:");
lcd.print("AUS ");}
buttonState = digitalRead(knopf1);
if (buttonState != lastButtonState) {
if (buttonState == HIGH) {
buttonPushCounter++;
}
else {}
}
lastButtonState = buttonState;
if (buttonPushCounter % 2 == 0) {
programm1 ();
} else {
}
}
void programm1 (){
digitalWrite(k1, HIGH);
if (sensors.getTempC(Sensor3) == 27){
digitalWrite(k1, LOW);}
else {
digitalWrite(k1, HIGH);
}
}
Was mache ich falsch und wie mache ich das was ich will richtig?
Mfg
strohhirn