Manuell Ebb-och-översvämning-Meter (5 / 5 steg)
Steg 5: Kod + bilder
Kod:
/*
Koden kan användas för Ebb och flod meter ***
-mätning kan vara -1, 0 eller 1.
*/
flyta mätning = 0,0;
int-flödet = 0;
booleska passingLinks = false;
booleska passingRechts = false;
void setup() {
Serial.BEGIN(9600);
pinMode(2,INPUT);
pinMode(3,INPUT);
pinMode (10, OUTPUT);
pinMode (9, OUTPUT);
pinMode (8, OUTPUT);
}
void loop() {
int sensorLinks=digitalRead(2);
int sensorRechts=digitalRead(3);
om ((sensorLinks==1) & & (passingLinks == false)) {
Växla (flöde) {
fall 0:
flöde = -1;
bryta;
fall -1:
flöde = 0;
bryta;
}
passingLinks = sant;
Delay(200);
} annat if((sensorLinks==0) & & (passingLinks == true)) {
passingLinks = false;
}
om ((sensorRechts==1) & & (passingRechts == false)) {
Växla (flöde) {
fall 0:
flöde = 1;
bryta;
fall 1:
flöde = 0;
bryta;
}
passingRechts = sant;
Delay(200);
} annat if((sensorRechts==0) & & (passingRechts == true)) {
passingRechts = false;
}
om ((millis()%1000)<10) {
Serial.Print ("flöde:");
Serial.println(Flow);
om (flöde == 1) {
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite 10, hög.
}
annars om (flöde == 0) {
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
}
annars om (flöde ==-1) {
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
}
Delay(10);
}
mätning = (float) flöde;
}
Bilder: