Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Teploměr s DS18b20 a LED display
Jdi na stránku Předchozí  1, 2, 3, 4, 5  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Miniaturní počítače (Arduino, Raspberry a další)
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Dumitru



Založen: Dec 11, 2015
Příspěvky: 139
Bydliště: Slovensko,Bratislava

PříspěvekZaslal: pá duben 19 2024, 21:03    Předmět: Citovat

buchar napsal(a):
Valdano: Přepsal jsem na setNumberF a funguje to. A v tom ostatním máte asi pravdu. Zakomentoval jsem čtení z čida, vepsal celé číslo místo tempC a displej nebliká. Takže budu muset přepsat celý kód. Díky za vaše znalosti.


A teda z novým kódom už ukazuje teplotu správnu nie posunutú o dva stupne ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
petrfilipi



Založen: Sep 13, 2005
Příspěvky: 2652

PříspěvekZaslal: pá duben 19 2024, 21:04    Předmět: Citovat

Pokud bys nepotřeboval takovou přesnost měření, dostal bys data z čidla rychleji. Při přesností 0,0625°C (12 bitů) trvá převod 750 ms, při přesností 0,5°C (9 bitů) trvá převod 94 ms. Přesnosti pro 10 a 11 bitů jakožto i časy převodu jsou popsány v datasheetu.

PF


Naposledy upravil petrfilipi dne pá duben 19 2024, 21:04, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Valdano



Založen: Jan 01, 2023
Příspěvky: 1708
Bydliště: Česká Lípa

PříspěvekZaslal: pá duben 19 2024, 21:04    Předmět: Citovat

Mrkněte ještě na úpravu níže. Ta by měla odstranit i to blikání. Dá se totiž nastavit neblokující provádění konverze dat teplotního senzoru viz níže v upraveném příkladu.

kód:

#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 10
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensor(&oneWire);

#include "SevSeg.h"
SevSeg sevseg;

const unsigned long eventInterval = 1000;
unsigned long previousTime = 0;
unsigned long currentTime = 0;
byte numDigits = 4;
byte digitPins[] = {A5, A4, A3, A2};
byte segmentPins[] = {2, 13, 6, 4, 3, 12, 7, 5};
bool resistorsOnSegments = true;
byte hardwareConfig = COMMON_CATHODE;
bool updateWithDelays = true;
bool leadingZeros = false;
bool disableDecPoint = false;
bool cekaniNaKonverzi = false;
float tempC;

void setup()
{
  Serial.begin(9600);
  sensor.begin();
  sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins,
                      resistorsOnSegments, updateWithDelays, leadingZeros,
                      disableDecPoint);
  sevseg.setBrightness(90);
  sensor.setResolution(11);
}

void loop()
{
  currentTime = millis();

  if (!cekaniNaKonverzi && (currentTime - previousTime) >= eventInterval) {
    previousTime = currentTime;
    // nastavit neblokující volání
    sensor.setWaitForConversion(false);
    // následující volání skončí hned bez čekání a konverze bude probíhat na pozadí
    // na dokončení konverze se bude čekat bez blokování viz níže
    sensor.requestTemperatures();
    // nastavit příznak neblokujícího čekání na dokončení konverze dat senzoru na pozadí
    cekaniNaKonverzi = true;
  };

  if (cekaniNaKonverzi) {
    // neblokující dotaz zda konverze dat na pozadí již byla dokončena
    if (sensor.isConversionComplete()) {
      // konverze dat dokončena
      cekaniNaKonverzi = false;
      // teprve nyní načíst a zobrazit data
      // a to by již mělo být rychlé bez bliknutí
      tempC = sensor.getTempCByIndex(0);
      Serial.println(tempC);
      sevseg.setNumberF(tempC, 1);
    };
  };

  sevseg.refreshDisplay();
}


Naposledy upravil Valdano dne pá duben 19 2024, 21:17, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
buchar



Založen: Oct 28, 2007
Příspěvky: 88
Bydliště: Násedlovice

PříspěvekZaslal: pá duben 19 2024, 21:16    Předmět: Citovat

Valdano, hned zítra vyzkouším vaši úpravu kódu. Dnes už nemám prostor. Zatím moc díky a ostatním taky. Zítra dám vědět jak to bude chodit.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
bum



Založen: Sep 04, 2011
Příspěvky: 245

PříspěvekZaslal: pá duben 19 2024, 21:27    Předmět: Citovat

"Dumitru" samotný řadič je DPS s osazeným PIC který se osadí na piny znakového LCD displeje. Více je na www.snailshop.cz.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Dumitru



Založen: Dec 11, 2015
Příspěvky: 139
Bydliště: Slovensko,Bratislava

PříspěvekZaslal: pá duben 19 2024, 21:42    Předmět: Citovat

bum napsal(a):
"Dumitru" samotný řadič je DPS s osazeným PIC který se osadí na piny znakového LCD displeje. Více je na www.snailshop.cz.


Ďakujem Smile za informáciu ale ostanem pri 74HC595.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Cowley



Založen: Feb 04, 2005
Příspěvky: 3295

PříspěvekZaslal: so duben 20 2024, 5:56    Předmět: Citovat

Dumitru: nebo 4094 či 8574 Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
buchar



Založen: Oct 28, 2007
Příspěvky: 88
Bydliště: Násedlovice

PříspěvekZaslal: so duben 20 2024, 7:27    Předmět: Citovat

Dobré ráno všem.
Valdano, vyzkoušel jsem tvoji úpravu kódu. Bohužel už nevleze na ATmegu8 což je mi líto, že je nemůžu s tvým kódem použít, ale musel jsem použít ATmegu168.
Při spuštění displej po 1s mrkne.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
petrfilipi



Založen: Sep 13, 2005
Příspěvky: 2652

PříspěvekZaslal: so duben 20 2024, 9:20    Předmět: Citovat

A musíš tu teplotu měřit opravdu v každém cyklu programu? Nestačilo by ji měřit v každém x-tém cyklu, kde x= 10, 20, 200, ...?

PF
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
buchar



Založen: Oct 28, 2007
Příspěvky: 88
Bydliště: Násedlovice

PříspěvekZaslal: so duben 20 2024, 9:28    Předmět: Citovat

Já myslím, že nemusím. Nepotřebuji znát teplotu každou vteřinu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Dumitru



Založen: Dec 11, 2015
Příspěvky: 139
Bydliště: Slovensko,Bratislava

PříspěvekZaslal: so duben 20 2024, 10:46    Předmět: Citovat

buchar napsal(a):
Dobré ráno všem.
Valdano, vyzkoušel jsem tvoji úpravu kódu. Bohužel už nevleze na ATmegu8 což je mi líto, že je nemůžu s tvým kódem použít, ale musel jsem použít ATmegu168.
Při spuštění displej po 1s mrkne.


Za prvé nedostať meranie teploty cez 1wire a zobrazenie teploty na
7-tovku do 8kb je úplná šialenosť attiny13 by to zvládla.

Za druhé už vieme že posunutie o 2 stupne je chýba kódu ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
buchar



Založen: Oct 28, 2007
Příspěvky: 88
Bydliště: Násedlovice

PříspěvekZaslal: so duben 20 2024, 11:40    Předmět: Citovat

Dumitru, myslíš, že je to chyba kódu?
Dokázal by jsi tu chybu najít?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Dumitru



Založen: Dec 11, 2015
Příspěvky: 139
Bydliště: Slovensko,Bratislava

PříspěvekZaslal: so duben 20 2024, 12:24    Předmět: Citovat

buchar napsal(a):
Dumitru, myslíš, že je to chyba kódu?
Dokázal by jsi tu chybu najít?


Ja neviem zatiaľ či je to v kóde ale ty už máš aj kód z arduina ten síce bliká ale meria ja som myslel že si to porovnaš či teplota je v poriadku alebo tiež je posunutá od toho sa môžeme ďalej odraziť .

Ak dva rôzne kódy posúvajú teplotu tak to v kóde nebude

Ak kód z arduino ukazuje dobre tak nájdeme chybu v C kóde


Treba len zistiť kde je presne problém SW či HW
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
buchar



Založen: Oct 28, 2007
Příspěvky: 88
Bydliště: Násedlovice

PříspěvekZaslal: so duben 20 2024, 12:48    Předmět: Citovat

Tento nový kód od Valdano ukazuje přesně (+-0,5°C). Takže asi chyba v původním kódu?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Dumitru



Založen: Dec 11, 2015
Příspěvky: 139
Bydliště: Slovensko,Bratislava

PříspěvekZaslal: so duben 20 2024, 13:04    Předmět: Citovat

buchar napsal(a):
Tento nový kód od Valdano ukazuje přesně (+-0,5°C). Takže asi chyba v původním kódu?


Ak všetky 3 teplomery bez žiadneho zásahu do pcb len prepalenim nového kódu z arduino ukazujú správne tak chýba bude v kóde.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Miniaturní počítače (Arduino, Raspberry a další) Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4, 5  Další
Strana 2 z 5

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.19 sekund