Stránka 4 z 4

Re: přehled vizualizace natopení akumulační nádoby

Napsal: 26 dub 2023, 22:54
od fogl 79
Doplním ještě o program, pokud někdo poradí, jak zjednodušit zpřesnit budu rad.
pokud by někdo věděl, jak zkalibrovat čidla za radu předem děkuji .

Kód: Vybrat vše

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

// nastavení čísel propojovacích pinů
#define RX 11
#define TX 10

// vytvoření objektu swSerial z knihovny s nastavenými piny
SoftwareSerial swSerial(RX, TX);

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2

// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

// Addresses of 3 DS18B20s
uint8_t sensor1[8] = { 0x28, 0x50, 0x19, 0x51, 0x4D, 0x20, 0x01, 0x56 };
uint8_t sensor2[8] = { 0x28, 0x4C, 0x40, 0xB8, 0x4D, 0x20, 0x01, 0xCC };
uint8_t sensor3[8] = { 0x28, 0x1E, 0x3B, 0x53, 0x4D, 0x20, 0x01, 0x4C };
uint8_t sensor4[8] = { 0x28, 0x81, 0x69, 0x69, 0x4D, 0x20, 0x01, 0x9C };
uint8_t sensor5[8] = { 0x28, 0x4F, 0xBE, 0x66, 0x4D, 0x20, 0x01, 0x85 };




void setup(void)
{
  // zahájení komunikace po softwarové sériové lince
  swSerial.begin(9600);
  Serial.begin(9600);
  sensors.begin();
}

void loop(void)
{
  sensors.requestTemperatures();
 
  
  Serial.println();
// nacteni teploty
float tempC1 = sensors.getTempC(sensor1);
//-- vypis na displej ---
  String zprava = "t0.txt=\"";
  zprava += tempC1;
  zprava += " C.\"";
 
  swSerial.print(zprava);
  swSerial.write(0xff);
  swSerial.write(0xff);
  swSerial.write(0xff);

float tempC2 = sensors.getTempC(sensor2);
    String zprava2 = "t1.txt=\"";
  zprava2 += tempC2;
  zprava2 += " C.\"";
 
  swSerial.print(zprava2);
  swSerial.write(0xff);
  swSerial.write(0xff);
  swSerial.write(0xff);

  float tempC3 = sensors.getTempC(sensor3);
    String zprava3 = "t2.txt=\"";
  zprava3 += tempC3;
  zprava3 += " C.\"";
 
  swSerial.print(zprava3);
  swSerial.write(0xff);
  swSerial.write(0xff);
  swSerial.write(0xff);

  float tempC4 = sensors.getTempC(sensor4);
    String zprava4 = "t3.txt=\"";
  zprava4 += tempC4;
  zprava4 += " C.\"";
 
  swSerial.print(zprava4);
  swSerial.write(0xff);
  swSerial.write(0xff);
  swSerial.write(0xff);

   float tempC5 = sensors.getTempC(sensor5);
    String zprava5 = "t4.txt=\"";
  zprava5 += tempC5;
  zprava5 += " C.\"";
 
  swSerial.print(zprava5);
  swSerial.write(0xff);
  swSerial.write(0xff);
  swSerial.write(0xff);
// vypočet procent

 
   float tempC6 =  (float(tempC5) + float(tempC4) + float(tempC3) + float(tempC2) + float(tempC1))/5*0.85 ;
   String zprava6 = "t5.txt=\"";
   zprava6 += tempC6;
   zprava6 += " %.\"";
 
  swSerial.print(zprava6);
  swSerial.write(0xff);
  swSerial.write(0xff);
  swSerial.write(0xff);
  }

   void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  Serial.print(tempC);
 
  Serial.print("°C    ");
 
}
 [code]
[attachment=0]IMG_20230426_224628.jpg[/attachment]

Re: přehled vizualizace natopení akumulační nádoby

Napsal: 27 dub 2023, 16:19
od kiRRow
Mno začal bych tím, že bych si ověřil jak moc se ten senzor mýlí. Nejprve ho na nějakou dobu ponořit do ledové tříště - tam by měl ukazovat teplotu 0°C, potom zase do vařící vody, tam by měl ukazovat 100°C - jestli to vůbec má cenu ho kalibrovat.

Re: přehled vizualizace natopení akumulační nádoby

Napsal: 27 dub 2023, 23:12
od fogl 79
taky mě to napadlo, prověřím, zdokumentuji, přeměřím spoje kuli přechodovému odporu to by též mohlo zkreslit výstup .

Re: přehled vizualizace natopení akumulační nádoby

Napsal: 28 dub 2023, 20:18
od fogl 79
po úpravě připojeni a výrobě pbc se přesnost čidel ukázala téměř přesná max rozdíl je 0,05 °c, takže kalibrace nebude potřeba
testováno na třech teplotně rozdílných kapalinách

Re: přehled vizualizace natopení akumulační nádoby

Napsal: 29 dub 2023, 10:33
od kiRRow
Odněkud z Murphyho zákonů :
Problém, který se nevyřeší sám do dvou dnů, nezasluhuje mou pozornost 8-) :lol: