Teploměr správné zobrazení nad 100°C

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Odpovědět
karel
Příspěvky: 2
Registrován: 24 zář 2018, 10:25
Reputation: 0

Teploměr správné zobrazení nad 100°C

Příspěvek od karel » 24 zář 2018, 10:38

Ahoj, dodělávám teploměr s MAX7219 s měřením teploty do cca 115°C. Mám problém jak ošetřit program při zobrazení - měření nad 100°C. Jedná se o 3 segmenty MAX7219. Do 99°C není problém, aby každý segment ukazoval svůj řád, ale jak nad 100°C?

......
segment1 = teplota / 10; //
segment2 = teplota - (segment1*10); //
segment3 = teplota / 100; //
......

Dík za radu

rejze69
Příspěvky: 174
Registrován: 02 dub 2018, 18:56
Reputation: 0

Re: Teploměr správné zobrazení nad 100°C

Příspěvek od rejze69 » 24 zář 2018, 17:59

Trochu to upřesni.Do proměnné segment se ukládá celý výsledný číslo k zobrazení? Vzhledem k tomu,že na levé pozici se bude yobrazovat jedině jednička,tak by mělo stačit segment2+100 ne?

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Teploměr správné zobrazení nad 100°C

Příspěvek od pavel1tu » 24 zář 2018, 18:19

Pokud to chápu, s tím MAX.... komunikuješ tak, že mu řekneš od které pozice má co vypsat ? nebo přímo na který segment má co vypsat ?

beru zpět podle příkladu v knikovně se zapisuje každý digit zvlášť - tak to máš vymyšlené dobře, ne ?
Jen bych přidal podmínku aby se SEGMENT desítek nevypisoval pod 10st.C (byla by tam nula) a to samé stovky ....
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

karel
Příspěvky: 2
Registrován: 24 zář 2018, 10:25
Reputation: 0

Re: Teploměr správné zobrazení nad 100°C

Příspěvek od karel » 25 zář 2018, 15:52

Je to tam trošku přehozené, ale
seg1 - ukazuje desítky
seg2 - jednotky
seg3 - stovky °C

při stoupající teplotě nad 99°C dělal zobrazovač problém, že nespočital jedno číslo seg1. (110°C -->11)

Ošetřil jsem to takto
-------------
if (teplota > 99) segment2 = 0;
if (teplota > 109) segment2 = 1;
if (teplota > 119) segment2 = 2;
--------------
asi by to šlo jinak a lépe, ale takto to funguje dobře, aspoň myslím

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Teploměr správné zobrazení nad 100°C

Příspěvek od AstroMiK » 25 zář 2018, 18:58

A nebylo to přehlednější takhle?
(segmenty jsem přejmenoval tak, aby bylo na první pohled vidět, ke kterému řádu patří)

Kód: Vybrat vše

    byte segment_1    =  teplota % 10;
    byte segment_10   = (teplota % 100)  /  10;
    byte segment_100  =  teplota / 100;

Pro více segmentů by to šlo rozšířit takhle:

Kód: Vybrat vše

    byte segment_1     =  teplota % 10;
    byte segment_10    = (teplota % 100)   /   10;
    byte segment_100   = (teplota % 1000)  /  100;
    byte segment_1000  = (teplota % 10000) / 1000;
    byte segment_10000 =  teplota / 10000;

(Funguje to jen pro kladné teploty. U záporných se musí hodnota převést na kladnou a na displeji rozsvítit mínus.)

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 13 hostů