Okay, hilft euch das weiter?
Code:
int RED = 3;
int brightness = 0;
int DELAY = 10;
#define Lichtsensor A0
#define Lichtsensor A1
#define C02-Sensor A2
#define C02-Sensor A3
#define Temperaturfuelher A4
#define Temperaturfuelher A5
#include <multi_channel_relay.h>
/**
channle: 4 3 2 1
state: 0b0000 -> 0x00 (all off)
state: 0b1111 -> 0x0f (all on)
*/
Multi_Channel_Relay relay;
//SETUP
void setup() {
//beginn der seriellen Kommunikation mit 9600 baud
Serial.begin(9600);
for (brightness = 0; brightness < 255; brightness ++) {
analogWrite(RED, brightness);
delay(DELAY);
}
analogWrite(RED, 255);
DEBUG_PRINT.begin(9600);
while (!DEBUG_PRINT);
// Setze I2C-Adresse
relay.begin(0x11);
/* Starte Relais-Check */
DEBUG_PRINT.println("Channel 1 on");
relay.turn_on_channel(1);
delay(500);
DEBUG_PRINT.println("Channel 2 on");
relay.turn_off_channel(1);
relay.turn_on_channel(2);
delay(500);
DEBUG_PRINT.println("Channel 3 on");
relay.turn_off_channel(2);
relay.turn_on_channel(3);
delay(500);
DEBUG_PRINT.println("Channel 4 on");
relay.turn_off_channel(3);
relay.turn_on_channel(4);
delay(500);
relay.turn_off_channel(4);
relay.channelCtrl(CHANNLE1_BIT |
CHANNLE2_BIT |
CHANNLE3_BIT |
CHANNLE4_BIT);
DEBUG_PRINT.print("Turn all channels on, State: ");
DEBUG_PRINT.println(relay.getChannelState(), BIN);
delay(2000);
relay.channelCtrl(CHANNLE1_BIT |
CHANNLE3_BIT);
DEBUG_PRINT.print("Turn 1 3 channels on, State: ");
DEBUG_PRINT.println(relay.getChannelState(), BIN);
delay(2000);
relay.channelCtrl(CHANNLE2_BIT |
CHANNLE4_BIT);
DEBUG_PRINT.print("Turn 2 4 channels on, State: ");
DEBUG_PRINT.println(relay.getChannelState(), BIN);
delay(2000);
relay.channelCtrl(0);
DEBUG_PRINT.print("Turn off all channels, State: ");
DEBUG_PRINT.println(relay.getChannelState(), BIN);
delay(2000);
void loop() {
// Liest den Analogen eingang A0 aus (Werte zwischen 0 und 1023)
int analogValue0 = analogRead(A0);
Serial.print("Analog reading = ");
Serial.print(analogValue0); // rohdaten
// Einteilung der Helligkeitswerte (Werte zwischen 0 und 800)
if (analogValue0 < 0) {
Serial.println(" - Dark");
analogWrite(RED, 255 );
} else if (analogValue0 < 50) {
Serial.println(" - Dark");
analogWrite(RED, 239);
} else if (analogValue0 < 100) {
Serial.println(" - Dim");
analogWrite(RED, 224);
} else if (analogValue0 < 150) {
Serial.println(" - Dim");
analogWrite(RED, 208);
} else if (analogValue0 < 200) {
Serial.println(" - Dim");
analogWrite(RED, 192);
} else if (analogValue0 < 250) {
Serial.println(" - Light");
analogWrite(RED, 176);
} else if (analogValue0 < 300) {
Serial.println(" - Light");
analogWrite(RED, 160);
} else if (analogValue0 < 350) {
Serial.println(" - Bright");
analogWrite(RED, 144);
} else if (analogValue0 < 400) {
Serial.println(" - Bright");
analogWrite(RED, 128);
} else if (analogValue0 < 450) {
Serial.println(" - Bright");
analogWrite(RED, 112);
} else if (analogValue0 < 500) {
Serial.println(" - Bright");
analogWrite(RED, 96);
} else if (analogValue0 < 550) {
Serial.println(" - Bright");
analogWrite(RED, 80);
} else if (analogValue0 < 650) {
Serial.println(" - Bright");
analogWrite(RED, 64);
} else if (analogValue0 < 700) {
Serial.println(" - Bright");
analogWrite(RED, 48);
} else if (analogValue0 < 700) {
Serial.println(" - Very Bright");
analogWrite(RED, 32);
} else if (analogValue0 < 700) {
Serial.println(" - Very Bright");
analogWrite(RED, 16);
} else {
Serial.println(" - Very bright");
analogWrite(RED, 0);
}
delay(1000);
// Liest den Analogen eingang A0 aus (Werte zwischen 0 und 1023)
int analogValue1 = analogRead(A1);
Serial.print("Analog reading = ");
Serial.print(analogValue1); // rohdaten
// Einteilung der Helligkeitswerte (Werte zwischen 0 und 800)
if (analogValue1 < 10) {
Serial.println(" - Dark");
} else if (analogValue1 < 250) {
Serial.println(" - Dim");
} else if (analogValue1 < 500) {
Serial.println(" - Light");
} else if (analogValue1 < 750) {
Serial.println(" - Bright");
} else {
Serial.println(" - Very bright");
}
delay(1000);
// Liest den Analogen eingang A2 aus (Werte zwischen 0 und 1023)
int analogValue2 = analogRead(A2);
Serial.print("Analog reading = ");
Serial.print(analogValue2); // rohdaten
// Einteilung der C02-Werte (Werte zwischen 0 und 5000)
if (analogValue2 < 100) {
Serial.println(" - Very Low");
} else if (analogValue2 < 200) {
Serial.println(" - Very Low");
} else if (analogValue2 < 400) {
Serial.println(" - Low");
} else if (analogValue2 < 600) {
Serial.println(" - Low");
} else if (analogValue2 < 800) {
Serial.println(" - Mid");
} else if (analogValue2 < 1000) {
Serial.println(" - Mid");
} else if (analogValue2 < 1200) {
Serial.println(" - High");
} else if (analogValue2 < 1400) {
Serial.println(" - High");
} else if (analogValue2 < 1600) {
Serial.println(" - Very High");
} else if (analogValue2 < 1800) {
Serial.println(" - Very High");
} else {
Serial.println(" - Very bright");
}
delay(1000);
// Liest den Analogen eingang A3 aus (Werte zwischen 0 und 1023)
int analogValue3 = analogRead(A3);
Serial.print("Analog reading = ");
Serial.print(analogValue3); // rohdaten
// Einteilung der C02-Werte (Werte zwischen 0 und 5000)
if (analogValue3 < 100) {
Serial.println(" - Very Low");
} else if (analogValue3 < 200) {
Serial.println(" - Very Low");
} else if (analogValue3 < 400) {
Serial.println(" - Low");
} else if (analogValue3 < 600) {
Serial.println(" - Low");
} else if (analogValue3 < 800) {
Serial.println(" - Mid");
} else if (analogValue3 < 1000) {
Serial.println(" - Mid");
} else if (analogValue3 < 1200) {
Serial.println(" - High");
} else if (analogValue3 < 1400) {
Serial.println(" - High");
} else if (analogValue3 < 1600) {
Serial.println(" - Very High");
} else if (analogValue3 < 1800) {
Serial.println(" - Very High");
} else {
Serial.println(" - Very bright");
}
delay(1000);
// Liest den Analogen eingang A4 aus (Werte zwischen 0 und 1023)
int analogValue4 = analogRead(A4);
Serial.print("Analog reading = ");
Serial.print(analogValue4); // rohdaten
// Einteilung der Temperaturwerte (Werte zwischen 0 und 100)
if (analogValue4 < 16) {
Serial.println(" - Very Low");
} else if (analogValue4 < 18) {
Serial.println(" - Low");
} else if (analogValue4 < 20) {
Serial.println(" - Mid");
} else if (analogValue4 < 22) {
Serial.println(" - Mid");
} else if (analogValue4 < 24) {
Serial.println(" - High");
} else if (analogValue4 < 26) {
Serial.println(" - High");
} else if (analogValue4 < 28) {
Serial.println(" - Very High");
} else if (analogValue4 < 30) {
Serial.println(" - Very High");
} else if (analogValue4 < 32) {
Serial.println(" - Overheat");
} else if (analogValue4 < 34) {
Serial.println(" - Overheat");
} else {
Serial.println(" - Overheat");
}
delay(1000);
// Liest den Analogen eingang A5 aus (Werte zwischen 0 und 1023)
int analogValue5 = analogRead(A5);
Serial.print("Analog reading = ");
Serial.print(analogValue5); // rohdaten
// Einteilung der Temperaturwerte (Werte zwischen 0 und 100)
if (analogValue5 < 16) {
Serial.println(" - Very Low");
} else if (analogValue5 < 18) {
Serial.println(" - Low");
} else if (analogValue5 < 20) {
Serial.println(" - Mid");
} else if (analogValue5 < 22) {
Serial.println(" - Mid");
} else if (analogValue5 < 24) {
Serial.println(" - High");
} else if (analogValue5 < 26) {
Serial.println(" - High");
} else if (analogValue5 < 28) {
Serial.println(" - Very High");
} else if (analogValue5 < 30) {
Serial.println(" - Very High");
} else if (analogValue5 < 32) {
Serial.println(" - Overheat");
} else if (analogValue5 < 34) {
Serial.println(" - Overheat");
} else {
Serial.println(" - Overheat");
}
delay(1000);
}
//***********************************************************************************************
Das wichtige für mich ist jetzt erstmal, ob analogwertverarbeitung und WLAN Steuerung am Arduino parallel überhaupt funktioniert, hat damit jemand schon Erfahrungen gemacht?
Und wie wird das im Programmcode sichergestellt, dass die Analogwertverarbeitung weiterläuft? mit "interupt"?