Typy proměnných

Odpovědět
Kopeck

Typy proměnných

Příspěvek od Kopeck »

Dobrý den,
protože s angličtinou nejsem moc velký kamarád, prosím o radu s následujicím.
Zkoušel jsem příklad na čtení z analogového vstupu : http://arduino8.webnode.cz/news/lekce-4 ... ovy-vstup/
Proměnnou [b"]hodnota"[/b] potřebuji vynásobit výše uvedenou konstantou "0,0048875855327468", to pak zaokrouhlit na 2 desetinná čísla a přiřadit proměnné "výsledek", který se bude zobrazovat
Prosím poradí mi někdo, jak nastavit typ proměmných, aby to šlo zobrazit?

Přikládám zdrojový kód programu.

Kód: Vybrat vše

const int analogPin = A0;  // Analogový vstup je nastaven na pi A0
int hodnota = 0;           // Proměná pro hodnotu přečtenou z A0
 
 
void setup() {
  // Nastaví rychlost komunika na sériovám portu na 9600 bps:
  Serial.begin(9600); 
}
 
void loop() {
  
  hodnota = analogRead(analogPin);  // přečte hodnotu z A0          
  
  // aby jsme videli vysledek, hodnotu odešleme přes sériový port
  Serial.print("hodnota = " ); // zapiše text hodnota =                      
  Serial.print(hodnota);       // zapiše proměnou hodnotu 
  Serial.println();            // nezapíše nic a přeskočí na nový řádek
 
  delay(1000);                 // čekej 1000ms                    
}
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Typy proměnných

Příspěvek od AlesH »

Myslím, že v tomto případě lze použít typ "float". Pokud chceš výsledek jen vypsat, tak pro zaokrouhlení můžeš využít vlastnosti Arduino funkce Serial.print(), která implicitně float čísla zaokrouhluje na dvě desetinná místa (případně lze počet míst určit druhým parametrem funkce) ... viz http://arduino.cc/en/Serial/Print

Kód: Vybrat vše

float vysledek = 0.0;
...
vysledek = (float) hodnota * 0.0048875855327468;
Serial.print(vysledek);  // vypíše vysledek na dvě desetinná místa
Kopeck

Re: Typy proměnných

Příspěvek od Kopeck »

Děkuji za odpověď. ;)
Odpovědět