Close

Meranie vzdialenosti a vyhodnotenie na LED

Úvodní stránka Fórum Hardware Senzory Meranie vzdialenosti a vyhodnotenie na LED

Označeno štítky: 

Aktuálně jsou na stránce zobrazeny 2 příspěvky - 1. až 2. (celkem z 2)
  • Autor
    Příspěvky
  • #2456
    ven0m
    Účastník

    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 ? ď

    #2533

    Zdravím, myslím si že to máte napsané na začátek už tak dost optimálně 🙂
    Pokud chcete využít ještě jiný způsob, podívejte se na switch case…
    https://arduino.cc/en/Tutorial/SwitchCase
    Délka programu zůstane nejspíše stejná.

Aktuálně jsou na stránce zobrazeny 2 příspěvky - 1. až 2. (celkem z 2)
  • Pro reakci na toto téma se musíte přihlásit.