Novinky: Narodil sa nám druhý syn, takže už nemám čas vôbec :)
Sitepoint logo

Anemometer (merač rýchlosti vetra) – ako na to

Čo robí každý s Arduinom? Predsa bliká s LEDkou a meria teplotu 🙂 Kto postúpi ďalej, môže merať aj tlak (BMP280) alebo vlhkosť (DHT21). Za pár euro sa dá prikúpiť aj anemometer a ku hotovej meteostanici už veľa nechýba. Tu je nejaké krátke know-how pre nalinkovaný anemometer.anemo_wh1800

Vnútri sa nachádzajú 2 paralelne zapojené jazýčkové kontakty, z čoho vyplýva že snímač na svojom výstupe dáva 2 impulzy na otáčku. Na čítanie je ideálne použiť digitálny vstup s aktivovaným pull-up rezistorom a HW prerušením – aby sme v programe mohli robiť aj iné veci, nie len čakať na impulz. Na Arduino UNO sú to D2 a D3. Zapojenie je triviálne, jeden vývod anemometra na GND a druhý na D3. Tu je kód ktorý na sériovú konzolu vypíše každú sekundu rýchlosť vetra.

V prípade potreby/záujmu sa dá doplniť aj funkcia na meranie sily poryvov vetra. No a tu je namontovaný na streche 🙂anemo_montaz

Komentáre (8)

  1. Marian

    Urobil som to s arduinom mini a nefunguje to. Zapisuje na seriovu konzolu stále 0,00 km aj keď sa anemometer otáča.
    Neviem kde je chyba?

    1. tomXX (Autor článku)

      Ahoj, skúšal si s multimetrom merať, či zopína výstup anemometra? Alebo namiesto interruptu dať digitalRead alebo PulseIn… Je to veľmi jednoduchý príklad, nemá tam čo nefungovať 🙂

  2. Marian

    Áno zopína,ale asi nemám dobre zapojený anemometer k arduinu. Kompilácia je správna.
    mám to takto:
    jeden koniec anemometra je zapojený na GND a druhý na pin digital 3.
    zajtra to vyskúšam s arduino uno. Príde nová funglovka.

    Som začiatočník

    Ďakujem

  3. Marian

    beznádejné nefunguje.
    je potrebné použiť zapojenie pull-up s odporom ?
    Alebo len prepojiť GND a pin 3?

    Vyskúšal som obi dve varianty.
    Napájanie mám z PC cez usb.

    1. tomXX (Autor článku)

      pinMode(3, INPUT_PULLUP) aktivuje interný pull-up, takže rezistor netreba. Vyskúšaj len digitalRead(3);delay(50); a pomaly otáčaj 🙂

  4. Lumaq

    Taky se mi nepodařilo tento ukázkový program zprovoznit. Impulsy chodí, vše je zapojeno normálně. Můj program mi funguje, jen jsem chtěl vyzkoušet jiný princip.

    1. Lumaq

      Tak jsem se ponořil do kódu a nesrovnalost je v tomto příkazu:
      anemo_imp = 0;
      Tohle musí bát provedeno až na konci cyklu loop, protože takhle si to vynuluješ a pak s tím počítáš. takže nejdříve počítat a nakonec vynulovat před dalším měřením.

      1. tomXX (Autor článku)

        Dík za info, upravil som to v kóde 🙂 Ja som ten ukážkový kód asi ani nekompiloval, len som ho upravil s existujúceho (iného) kódu.

Napísať komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *