Ahojte, dúfam že som zvolil správne fórum ak náhodou nie tak prosím o presunutie, ď
Pracujem momentálne na zapojení s meraním vzdialenosti a vyhodnotení pomocou LED.
Funguje mi to tak ako potrebujem, ale chcel by som upraviť resp. zjednodušiť kód.
int echoPin = 2;
int trigPin = 3;
long trv, vzd;
void setup() {
Serial.begin(9600);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void echoSenz(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
}
void loop() {
echoSenz();
trv = pulseIn(echoPin, HIGH);
vzd = (trv/2) / 29.1;
Serial.println(vzd);
delay(50);
if (vzd >= 5){
digitalWrite(11, 0);}
else
digitalWrite(11, 1);
if (vzd >=10){
digitalWrite(10, 0);}
else
digitalWrite(10, 1);
if (vzd >=15){
digitalWrite(9, 0);}
else
digitalWrite(9, 1);
if (vzd >=20){
digitalWrite(8, 0);}
else
digitalWrite(8, 1);
}
Je to prvá verzia kódu, pinmode si viem ošetriť cez cyklus. Len neviem ako sa zbaviť podmienok (IF)
Ak je vzdialenost
0-5 svietia LED na pin 8,9,10,11
6-10 svietia LED na pin 9,10,11
11-15 svietia LED na pin 10,11
16-20 svietia LED na pin 11
nad 20 nesvieti nič.
Vedel by ma niekto nasmerovať ako správne napísať ten cyklus ? Prípadne ako to zapísať kratšie ? ď