ik doe de code nu ook in 3 delen:
even wat achtergrond info. ik heb een schakelaar met 3 standen (onlogisch ding, maar hij hoort thuis in het interieur van de auto)
Stand 1 A+F
stand 2 A
stand 3 A+W
Verder zit er nog een spiegellamp (verstraler met autospiegel) en een achtermistlamp in.
ik kom nu tot de volgende code, zit een boel overbodige informatie, maar ik heb nu dit:
void stuurmeting(){
reading = analogRead(potPin);
if (MillisNu - VorigeMillis > wachttijdA){
VorigeMillis = MillisNu;
firstreading = analogRead(potPin);
}
if (MillisNu - VorigeMillis > wachttijdB){
if (0 < (firstreading - reading) < Marge){
calibrate = firstreading;
}
else if (0 < (reading - firstreading) < Marge){
calibrate = firstreading;
}
else{
calibrate = calibrate;
}
}
}
void miststanden(){
if (MistA==HIGH && MistF==HIGH && lichtstate==HIGH ){
if(MillisNu-DelayB>1000){
mistrstate=HIGH;
mistlstate=HIGH;
mistastate=LOW;
spiegelstate=LOW;
DelayC=MillisNu;
mistcounter=1;
}
else{
DelayC=MillisNu;
mistastate=LOW;
}
}
if (MistA==HIGH && MistF==LOW && MistW==LOW && lichtstate==HIGH){
if(MillisNu-DelayB>1000){
mistrstate=HIGH;
mistlstate=HIGH;
spiegelstate=LOW;
mistastate=LOW;
DelayD=MillisNu;
mistcounter=1;
}
if(MillisNu-DelayC>1000){
mistrstate=HIGH;
mistlstate=HIGH;
mistastate=HIGH;
spiegelstate=LOW;
DelayD=MillisNu;
mistcounter=1;
}
else{
DelayD=MillisNu;
spiegelstate=LOW;
mistastate=LOW;
}
}
if (MistA==HIGH && MistF==LOW && MistW==HIGH && mistcounter ==2 && lichtstate==HIGH){
if(MillisNu-DelayD>1000){
spiegelstate=HIGH;
mistrstate=HIGH;
mistlstate=HIGH;
mistastate=LOW;
DelayC=MillisNu;
}
else{
DelayC=MillisNu;
DelayB=MillisNu;
mistastate=LOW;
spiegelstate=LOW;
}
}
if (MistA==HIGH && MistF==LOW && MistW==HIGH && mistcounter ==1 && lichtstate==HIGH){
if(MillisNu-DelayD>1000){
if (reading - calibrate > Stuuruitslag){
stur=100;
mistlstate=HIGH;
mistrstate=LOW;
Delay=MillisNu;
mistastate=LOW;
spiegelstate=HIGH;
DelayB=MillisNu;
DelayC=MillisNu;
}
else if (calibrate - reading > Stuuruitslag){
stur=200;
mistrstate=HIGH;
mistlstate=LOW;
Delay=MillisNu;
mistastate=LOW;
spiegelstate=HIGH;
DelayB=MillisNu;
DelayC=MillisNu;
}
else if (MillisNu-Delay<1000 && lichtstate==HIGH){
if (stur>150){
mistrstate=HIGH;
mistlstate=LOW;
mistastate=LOW;
spiegelstate=HIGH;
DelayB=MillisNu;
DelayC=MillisNu;
}
else{
mistlstate=HIGH;
mistrstate=LOW;
mistastate=LOW;
spiegelstate=HIGH;
DelayB=MillisNu;
DelayC=MillisNu;
}
}
else{
mistlstate=LOW;
mistrstate=LOW;
mistastate=LOW;
spiegelstate=HIGH;
DelayB=MillisNu;
DelayC=MillisNu;
}
}
}
if (MistA==LOW && MistF==LOW && MistW==LOW && lichtstate==HIGH){
mistastate=LOW;
spiegelstate=LOW;
DelayB=MillisNu;
DelayC=MillisNu;
DelayD=MillisNu;
mistcounter=0;
if (reading - calibrate > Stuuruitslag){
stur=100;
mistlstate=HIGH;
mistrstate=LOW;
Delay=MillisNu;
mistastate=LOW;
spiegelstate=LOW;
DelayB=MillisNu;
DelayC=MillisNu;
DelayD=MillisNu;
mistcounter=0;
}
else if (calibrate - reading > Stuuruitslag){
stur=200;
mistrstate=HIGH;
mistlstate=LOW;
Delay=MillisNu;
mistastate=LOW;
spiegelstate=LOW;
DelayB=MillisNu;
DelayC=MillisNu;
DelayD=MillisNu;
mistcounter=0;
}
else if (MillisNu-Delay<1000 && lichtstate==HIGH){
if (stur>150){
mistrstate=HIGH;
mistlstate=LOW;
mistastate=LOW;
spiegelstate=LOW;
DelayB=MillisNu;
DelayC=MillisNu;
DelayD=MillisNu;
mistcounter=0;
}
else{
mistlstate=HIGH;
mistrstate=LOW;
mistastate=LOW;
spiegelstate=LOW;
DelayB=MillisNu;
DelayC=MillisNu;
DelayD=MillisNu;
mistcounter=0;
}
}
else{
mistlstate=LOW;
mistrstate=LOW;
mistastate=LOW;
spiegelstate=LOW;
DelayB=MillisNu;
DelayC=MillisNu;
DelayD=MillisNu;
mistcounter=0;
}
}
if (lichtstate==LOW){
mistastate=LOW;
spiegelstate=LOW;
DelayB=MillisNu;
DelayC=MillisNu;
DelayD=MillisNu;
mistcounter=0;
mistlstate=LOW;
mistrstate=LOW;
}
digitalWrite(MistR,mistrstate);
digitalWrite(MistL, mistlstate);
IOexp.digitalWrite(1,7,mistastate);
IOexp.digitalWrite(1,6,spiegelstate);
}
void Mistlampen(){
MistA=IOexp.digitalRead(0,5);
MistF=IOexp.digitalRead(0,6);
MistW=IOexp.digitalRead(0,7);
if (MistA==HIGH && MistF==LOW && MistW==HIGH && lichtstate==HIGH){
miststate=HIGH;
}
else{
miststate=LOW;
}
if (miststate != lastmiststate){
if (miststate==HIGH){
mistcounter++;
}
}
if (mistcounter ==3){
mistcounter = 1;
}
lastmiststate= miststate;
}
void lichten(){
lichtstate=IOexp.digitalRead(0,3);
if (lichtstate==HIGH){
koplamp=HIGH;
}
else{
koplamp =LOW;
}
digitalWrite(KopL,koplamp);
digitalWrite(KopR,koplamp);
}