Dziękuje za cenne uwagi. Nie wiem jeszcze jak skopiować ten kod na forum, żeby było jak trzeba.
Kod:
int const trigPin = 2;
int const echoPin = 3;
int Red = 4; // Numer pinu - dioda czerwona
int Green = 5; // Numer Pinu - dioda zielona
int Elektrozawor = 9; // Numer Pinu - elektrozawor
void setup()
{
Serial.begin(9600);
// Konfiguracja pinów
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(Red, OUTPUT);
pinMode(Green, OUTPUT);
pinMode(Elektrozawor, OUTPUT);
}
void loop()
{ int duration, distance;
digitalWrite(trigPin, HIGH);
delay(1);
digitalWrite(trigPin, LOW);
// Measure the pulse input in echo pin
duration = pulseIn(echoPin, HIGH);
// Distance is half the duration devided by 29.1 (from datasheet)
distance = (duration / 2) / 29.1;
// if distance less than 0.5 meter and more than 0 (0 or less means over range)
if (distance <= 4 && distance >= 0) {
digitalWrite(Red, HIGH);
digitalWrite(Green, LOW);
delay(3000);
digitalWrite(Elektrozawor, HIGH);
} else
{
digitalWrite(Red, LOW);
digitalWrite(Green, HIGH);
digitalWrite(Elektrozawor, LOW);
delay(300);
}
}
I w tym przedostatnim miejscu gdzie elektrozawór HIGH chciałbym, żeby elektrozawór włączył się na np 6 sekund i off