Arduino ide
-
- Příspěvky: 13
- Registrován: 22 bře 2021, 18:37
- Reputation: 0
Arduino ide
LiquidCrystal sensor anemometer arduino
-
- Příspěvky: 579
- Registrován: 01 srp 2017, 19:29
- Reputation: 0
- Bydliště: Poprad
- Kontaktovat uživatele:
Re: Arduino ide
Zobral som ukážkový kód z triviálneho príkladu Hello World pre displej v Arduino IDE.
Výpis na displej som dostal za výpis na UART a nahradil som len Serial.print() za lcd.print(), nič viac + lcd.clear(), aby displej vymazalo pred novým zápisom + prechod z prvého riadku na druhý cez nastavenie kurzora.
Prekopíroval som inicializáciu, zmenil som vývody, nakoľko v ukážkovej implementácii displej využíva D2 a D3 vývody Arduina (ktoré sú jedinými vývodmi s podporou INTERUPT-u - prerušenia, teda potom by sa nedal pripojiť ten anemometer).
Zapojenie je v programe s označením vývodu displeja a označením vývodu Arduina.
Program je kompatibilný pre displej 16x2 i 20x4. Nakoľko sa výpis realizuje len na dva riadky.
Výpis na displej som dostal za výpis na UART a nahradil som len Serial.print() za lcd.print(), nič viac + lcd.clear(), aby displej vymazalo pred novým zápisom + prechod z prvého riadku na druhý cez nastavenie kurzora.
Prekopíroval som inicializáciu, zmenil som vývody, nakoľko v ukážkovej implementácii displej využíva D2 a D3 vývody Arduina (ktoré sú jedinými vývodmi s podporou INTERUPT-u - prerušenia, teda potom by sa nedal pripojiť ten anemometer).
Zapojenie je v programe s označením vývodu displeja a označením vývodu Arduina.
Program je kompatibilný pre displej 16x2 i 20x4. Nakoľko sa výpis realizuje len na dva riadky.
Kód: Vybrat vše
//More Information at: https://www.aeq-web.com/
//Version 2.0 | 11-NOV-2020
#include <LiquidCrystal.h>
const int rs = 12, en = 11, d4 = 7, d5 = 6, d6 = 5, d7 = 4;
//Zapojenie dátových vodičov
//Displej ==> Arduino
//RS ==> D12
//RN ==> D11
//D4 ==> D7
//D5 ==> D6
//D6 ==> D5
//D7 ==> D4
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
const int RecordTime = 3; //Define Measuring Time (Seconds)
const int SensorPin = 3; //Define Interrupt Pin (2 or 3 @ Arduino Uno)
int InterruptCounter;
float WindSpeed;
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2); //rozmer displeja 16x2, možne nahradiť za 20x4 --> PROGRAM POUZIVA 16 stlpcov a 2 riadky!!!
}
void loop() {
meassure();
Serial.print(F("Wind Speed: "));
Serial.print(WindSpeed); //Speed in km/h
Serial.print(F(" km/h - "));
Serial.print(WindSpeed / 3.6); //Speed in m/s
Serial.println(F(" m/s"));
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(WindSpeed); //Speed in km/h
lcd.print(F(" km/h"));
lcd.setCursor(0, 1);
lcd.print(WindSpeed / 3.6); //Speed in m/s
lcd.print(F(" m/s"));
}
void meassure() {
InterruptCounter = 0;
attachInterrupt(digitalPinToInterrupt(SensorPin), countup, RISING);
delay(1000 * RecordTime);
detachInterrupt(digitalPinToInterrupt(SensorPin));
WindSpeed = (float)InterruptCounter / (float)RecordTime * 2.4;
}
void countup() {
InterruptCounter++;
}
-
- Příspěvky: 13
- Registrován: 22 bře 2021, 18:37
- Reputation: 0
Re: Arduino ide
odskousim zatim dekuji
Dam vedet
Dam vedet
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Arduino ide
Proti principu měření se ohradím (ale spíše jako vylepšení třeba do budoucna - já to takto také zatím provozuji).
Sám jsem si tímto prošel a jsou zde lidé co se meteorologií a měřením zabývají a nasměrovali nejen mne k přesnějšímu měření a to o dost, když jsem to porovnával (2 anemometry vedle sebe).
Počítání impulzů za nějakou dobu
- čím menší vítr, tím větší nepřesnost
- nezískáš tím nárazový vítr
Já se dopracoval (ale kod nemám učesaný, jen ze stolu) po postrčení pár lidmi zde:
- měřím 20s, nebo 30 pulzů (mám napevno zatím pole na 30 hodnot) - to se asi ještě upraví (cyklus měření meteostanice je každých 5 minut, bo jede z baterek) během toho změřím, zpracuji i všechny ostatní měřené hodnoty
- ukládám časy v ms (plán předělat na m/s) mezi jednotlivými otáčkami anemometru
- nejkratší a nejdelší čas budu zahazovat - zatím nedělám
- 2 nejkratší (pokud proběhlo alespoň 5 pulzů) zprůměruji na "nárazový" vítr
- z ostatních vypočítám průměr a vše odešlu na základnu
U snímače s napájením
- měřím neustále, ale ukládám přepočtené na m/s (jen při odesílání všechny interupty zatím zakazuji a měření přeruším, nevím jestli to, nebo jiná chyba mi sem tam neodeslalo data - většinou když hodně foukalo)
- ukládám min/průměr/max a jednou za 5 min odesílám
PS: berte to jen jako nápad na přesnější měření
Bohužel to nemám ani za rok dodělané, momentálně bujuji s jinými věcmi.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
-
- Příspěvky: 13
- Registrován: 22 bře 2021, 18:37
- Reputation: 0
Re: Arduino ide
super funguje co jsem dlužen
-
- Příspěvky: 579
- Registrován: 01 srp 2017, 19:29
- Reputation: 0
- Bydliště: Poprad
- Kontaktovat uživatele:
Re: Arduino ide
Nič.
Zvládol by si to i sám.
Stačilo si len pozrieť ukážkový príklad z Arduino IDE a nakopírovať tie časti do tvojho programu.
Zvládol by si to i sám.
Stačilo si len pozrieť ukážkový príklad z Arduino IDE a nakopírovať tie časti do tvojho programu.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 15 hostů