hab ich doch geschrieben, das ein nano verbaut ist.
und wenn ich doch ne frage zum arduino habe, wieso bin ich hier dann falsch?
das ganze ist so aufgebaut, das bis 60° blau leuchtet, darüber grün bis 80°
zwichen 81 und 120° aus. ab 121 rot und ab 141 rot blinkend.
(für luftgekühlte motoren die gescheucht werden normal)
gemessen wird über ein NTC.
mir würde es reichen, wenn die RGB bei einem bestimmten wert (dunkelheit) auf z.b. halbe leuchtkraft zurück geht.
die if / else methode scheint mir am einfachsten zu sein.
so ist es ja auch für die einzelnen schwellwerte.
Hab mich noch bei PWM eingelesen u da war die lösung.
Ich glaub, ich habs jetzt. Zumindest zeigt die IDE keinen fehler.
Muss ich noch harwaremäßig umsetzen u schaun ob es real funzt.
das einbinden des sketch im Forum bekomm ich nicht hin., dehalb so:
// -----------------------------------------------------------------------------------------------
// Oelanzeige
int PinSensor_1=A6;
int PinR_1=3;//3;
int PinG_1=5;//5;
int PinB_1=6;//6;
float flt_Quellspannung_1=5.0;
int int_Vorwiderstand_1=1000;
int int_Widerstand_Schwelle1_1=2600; //61° 3300 56° 2700 58°
int int_Widerstand_Schwelle2_1=1700; //71°
int int_Widerstand_Schwelle3_1=830; //121° Testwert !!!
int int_Widerstand_Schwelle4_1=535; //141° Testwert !!!
long lng_Blinkinterval_1=400;
float flt_hysterese_1=0.05; // 0.05 entspricht 5% Hysterese
int int_LEDStatus_1=LOW;//nicht verändern
long lng_vorherigeMillis_1=0; //nicht verändern
// ----------------------------------------------------------------------------------------------
// Wasseranzeige mit Display ermittelt
int PinSensor_2=A5;
int PinR_2=7;//7;
int PinG_2=8;//8;
int PinB_2=9;//9;
float flt_Quellspannung_2=5.0;
int int_Vorwiderstand_2=470;
int int_Widerstand_Schwelle1_2=1040; //61° 750
int int_Widerstand_Schwelle2_2=525; //71° 375
int int_Widerstand_Schwelle3_2=202; //100° 205
int int_Widerstand_Schwelle4_2=184; //105° 160
long lng_Blinkinterval_2=400;
float flt_hysterese_2=0.05; // 0.05 entspricht 5% Hysterese
int int_LEDStatus_2=LOW;//nicht verändern
long lng_vorherigeMillis_2=0; //nicht verändern
//------------------------------------------------------------------------------------------------
// Reserveanzeige
int PinSensor_3=A4;
int PinLED=11;//11;
float flt_Quellspannung_3=5.0;
int int_Vorwiderstand_3=22000; // Testwert !!!
int int_Widerstand_Schwelle1_3=20000; // über 6,5 Liter
int int_Widerstand_Schwelle2_3=32000; // unter 5 Liter
long lng_Blinkinterval_3=400;
int int_LEDStatus_3=LOW;//nicht verändern
long lng_vorherigeMillis_3=0; //nicht verändern
//------------------------------------------------------------------------------------------------
// Lichtsensor
int PinLDR_4=A3;
float flt_Quellspannung_4=5.0;
int int_Vorwiderstand_4=10000; // Testwert !!!
int int_Widerstand_Schwelle1_4=20000; // Testwert !!!
//---------------------------------------------
//Startsequenz
void setup() {
RGB_1(255,0,0);
RGB_2(255,0,0);
LED(255);
delay(1000);
RGB_1(0,255,0);
RGB_2(0,255,0);
LED(0);
delay(1000);
RGB_1(0,0,255);
RGB_2(0,0,255);
LED(255);
delay(1000);
RGB_1(0,0,0);
RGB_2(0,0,0);
LED(0);
delay(1000);
}
void loop() {
int int_Messwert_1=0;
int int_Messwert_2=0;
int int_Messwert_3=0;
int int_Messwert_4=0;
for(int i=0;i<5;i++){
int_Messwert_1+=analogRead(PinSensor_1);
int_Messwert_2+=analogRead(PinSensor_2);
int_Messwert_3+=analogRead(PinSensor_3);
int_Messwert_4+=analogRead(PinLDR_4);
}
int_Messwert_1=trunc(int_Messwert_1/5);
int_Messwert_2=trunc(int_Messwert_2/5);
int_Messwert_3=trunc(int_Messwert_3/5);
int_Messwert_4=trunc(int_Messwert_4/5);
float flt_SpannungR2_1=(flt_Quellspannung_1/1023.0)*int_Messwert_1;
float flt_SpannungR2_2=(flt_Quellspannung_2/1023.0)*int_Messwert_2;
float flt_SpannungR2_3=(flt_Quellspannung_3/1023.0)*int_Messwert_3;
float flt_SpannungR2_4=(flt_Quellspannung_4/1023.0)*int_Messwert_4;
float flt_Widerstand_1=int_Vorwiderstand_1*(flt_SpannungR2_1/(flt_Quellspannung_1-flt_SpannungR2_1));
float flt_Widerstand_2=int_Vorwiderstand_2*(flt_SpannungR2_2/(flt_Quellspannung_2-flt_SpannungR2_2));
float flt_Widerstand_3=int_Vorwiderstand_3*(flt_SpannungR2_3/(flt_Quellspannung_3-flt_SpannungR2_3));
float flt_Widerstand_4=int_Vorwiderstand_4*(flt_SpannungR2_4/(flt_Quellspannung_4-flt_SpannungR2_4));
if (flt_Widerstand_1 >int_Widerstand_Schwelle1_1){
RGB_1(0,0,255);
}
if (flt_Widerstand_2 >int_Widerstand_Schwelle1_2){
RGB_2(0,0,255);
}
if (flt_Widerstand_3 <int_Widerstand_Schwelle1_3){
LED(0);
}
if (flt_Widerstand_1 <=(int_Widerstand_Schwelle1_1) && flt_Widerstand_1 > (int_Widerstand_Schwelle2_1+int_Widerstand_Schwelle2_1*flt_hysterese_1)){
RGB_1(0,255,0);
}
if (flt_Widerstand_2 <=(int_Widerstand_Schwelle1_2) && flt_Widerstand_2 > (int_Widerstand_Schwelle2_2+int_Widerstand_Schwelle2_2*flt_hysterese_2)){
RGB_2(0,255,0);
}
if (flt_Widerstand_1 <=(int_Widerstand_Schwelle2_1) && flt_Widerstand_1 > (int_Widerstand_Schwelle3_1+int_Widerstand_Schwelle3_1*flt_hysterese_1)){
RGB_1(0,0,0);
}
if (flt_Widerstand_2 <=(int_Widerstand_Schwelle2_2) && flt_Widerstand_2 > (int_Widerstand_Schwelle3_2+int_Widerstand_Schwelle3_2*flt_hysterese_2)){
RGB_2(0,0,0);
}
if (flt_Widerstand_1 <=(int_Widerstand_Schwelle3_1) && flt_Widerstand_1 > (int_Widerstand_Schwelle4_1+int_Widerstand_Schwelle4_1*flt_hysterese_1)){
RGB_1(255,0,0);
}
if (flt_Widerstand_2 <=(int_Widerstand_Schwelle3_2) && flt_Widerstand_2 > (int_Widerstand_Schwelle4_2+int_Widerstand_Schwelle4_2*flt_hysterese_2)){
RGB_2(255,0,0);
}
if (flt_Widerstand_3 >=int_Widerstand_Schwelle1_3 && flt_Widerstand_3 <int_Widerstand_Schwelle2_3){
LED(255);
}
if (flt_Widerstand_4 >=int_Widerstand_Schwelle1_4) {
RGB_1(0,0,16);
} else {
RGB_1(0,0,255);
}
if (flt_Widerstand_1 <=int_Widerstand_Schwelle4_1){
unsigned long lng_aktuelleMillis_1 = millis();
if(lng_aktuelleMillis_1 - lng_vorherigeMillis_1 > lng_Blinkinterval_1) {
lng_vorherigeMillis_1 = lng_aktuelleMillis_1;
int_LEDStatus_1 = !int_LEDStatus_1;
if (int_LEDStatus_1==true){
RGB_1(255,0,0);
} else {
RGB_1(0,0,0);
}
}
}
if (flt_Widerstand_2 <=int_Widerstand_Schwelle4_2){
unsigned long lng_aktuelleMillis_2 = millis();
if(lng_aktuelleMillis_2 - lng_vorherigeMillis_2 > lng_Blinkinterval_2) {
lng_vorherigeMillis_2 = lng_aktuelleMillis_2;
int_LEDStatus_2 = !int_LEDStatus_2;
if (int_LEDStatus_2==true){
RGB_2(255,0,0);
} else {
RGB_2(0,0,0);
}
}
}
if (flt_Widerstand_3 >=int_Widerstand_Schwelle2_3){
unsigned long lng_aktuelleMillis_3 = millis();
if(lng_aktuelleMillis_3 - lng_vorherigeMillis_3 > lng_Blinkinterval_3) {
lng_vorherigeMillis_3 = lng_aktuelleMillis_3;
int_LEDStatus_3 = !int_LEDStatus_3;
if (int_LEDStatus_3==true){
LED(255);
} else {
LED(0);
}
}
}
}
void RGB_1(int r, int g, int b){
analogWrite(PinR_1,r);
analogWrite(PinG_1,g);
analogWrite(PinB_1,b);
}
void RGB_2(int r, int g, int b){
analogWrite(PinR_2,r);
analogWrite(PinG_2,g);
analogWrite(PinB_2,b);
}
void LED(int led){
analogWrite(PinLED,led);
}