Č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.
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.
volatile int anemo_imp = 0; unsigned long last_imp, last_imp_millis = 0; void ISR_anemo_imp(){ if (millis() - last_imp > 50){ anemo_imp++; last_imp = millis(); } } void setup(){ Serial.begin(9600); pinMode(3, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(3), ISR_anemo_imp, FALLING); } void loop(){ if (millis() - last_imp_millis > 1000){ last_imp_millis = millis(); Serial.print("ot/s =\t"); Serial.print(anemo_imp); float kmh = 2.4 * (float)anemo_imp; Serial.print("\t km/h =\t"); Serial.println(kmh); anemo_imp = 0; } }
V prípade potreby/záujmu sa dá doplniť aj funkcia na meranie sily poryvov vetra. No a tu je namontovaný na streche 🙂
Pridaj komentár