<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=47&amp;t=9657&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-01-01T21:02:10+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=47&amp;t=9657&amp;mode</id>
<entry>
<author><name><![CDATA[endurasek]]></name></author>
<updated>2015-01-01T21:02:10+01:00</updated>
<published>2015-01-01T21:02:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=111665#p111665</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=111665#p111665"/>
<title type="html"><![CDATA[Re: MCP3551 na arduino uno + pt100 - nie dziala]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=111665#p111665"><![CDATA[
To już też zmieniłem wcześniej ale porównując odczyt z dds18b20 a mcp to przy ds odczyt jest stabilniejszy a tu jednak wszystko pływa<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1442">endurasek</a> — 1 sty 2015, o 21:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ekstrapolator]]></name></author>
<updated>2015-01-01T20:27:17+01:00</updated>
<published>2015-01-01T20:27:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=111661#p111661</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=111661#p111661"/>
<title type="html"><![CDATA[Re: MCP3551 na arduino uno + pt100 - nie dziala]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=111661#p111661"><![CDATA[
Temperaturę masz zdefiniowana jako float a zmienna wynik jaki int, przy konwertowaniu tracisz cześć po przecinku, tak samo w obliczaniu średniej tracisz wszystko po przecinku.<br /><br /><a href="http://forum.atnel.pl/topic7661.html"  class="postlink">Tak mi si przypomniało</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2072">Ekstrapolator</a> — 1 sty 2015, o 20:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[endurasek]]></name></author>
<updated>2014-12-17T20:21:32+01:00</updated>
<published>2014-12-17T20:21:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=109221#p109221</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=109221#p109221"/>
<title type="html"><![CDATA[Re: MCP3551 na arduino uno + pt100 - nie dziala]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=109221#p109221"><![CDATA[
No i wstawiłem LM366 na 5V dodalem filtracje i jest duzo lepiej ale dalej lata wiec wstawilem do programu usrednianie ale cos nie dziala caly czas wyskakuje ok 5 <br /><br />[syntax=cpp]/*<br />/*<br />This example demonstrate the usage of the A/D Converter with MCP3551 library.<br />A good explanation on the code can be found in application note AN1154 by MCP.<br /><br />Copyright (c) 2013 Simon Bauer.  All rights reserved.<br /><br />This example code is in the public domain.<br />*/<br />#include &lt;MCP3551.h&gt;<br />#include &lt;SPI.h&gt;<br />#define ledPin 8 //wyjscie generatora ctc<br /><br />// digital pin 2 has a pushbutton attached to it. Give it a name:<br />const int pushButton = 2;<br /><br />// Slave select pin:<br />const int MCPPin = 3;<br /><br />//Some variables we need:<br />float calRAdevice1 = 13607; //stores the series resistor value <br />float RTD; //resistor of RTD<br />const int RZero = 100; //resistance at 0°C<br /><br />//create a instance with IC connect to SCK, MOSI and SS (MCPPin):<br />MCP3551 myRTD(MCPPin);<br /><br />void CTC_init(); <br /><br />// the setup routine runs once when you press reset:<br />void setup() <br />{<br />  // initialize serial communication at 9600 bits per second:<br />  Serial.begin(9600);<br />  // make the pushbutton's pin an input:<br />  pinMode(pushButton, INPUT);<br /><br />  pinMode(ledPin, OUTPUT);<br /><br />  // initialize timer1<br />  noInterrupts();           // disable all interrupts<br />  TCCR1A = 0;<br />  TCCR1B = 0;<br />  TCNT1  = 0;<br /> <br />  interrupts();             // enable all interrupts<br />}<br /> <br />ISR(TIMER1_COMPA_vect)          // timer compare interrupt service routine<br /> {<br />  digitalWrite(ledPin, digitalRead(ledPin) ^ 1);   // toggle LED pin<br /> }<br /> <br /><br />// the loop routine runs over and over again forever:<br /><br /><br />void loop() <br />{<br />  while(1){<br />     <br />   CTC_init(); <br />   <br />  // read the input pin:<br />  int buttonState = digitalRead(pushButton);<br /><br />  bool rtdReady = myRTD.getCode();<br />  if(rtdReady)<br />  {<br />        <br />    //calculate RTD acc. MCP AN1154:<br />    RTD = calRAdevice1 * (float(myRTD.byteCode) / ( 2097152.0 - float(myRTD.byteCode)));<br />    <br />    //This is part of a calculation for T(RTD)<br />    RTD = (RTD / RZero) - 1;<br />    float temperature = (RTD * (255.8723 + RTD * (9.6 + RTD * 0.878)));<br />    delay(2000);<br />    Serial.print(&quot;Temperature: &quot;); Serial.println(temperature);<br />   <br />   <br />   <br />   //usrednianie wyniku <br />    unsigned int wynik;<br />    long srednia_temp = 0;<br />    byte dt = 5;<br />    <br />    <br />    wynik = temperature;<br />    <br />    srednia_temp = srednia_temp * dt;<br />    Serial.println(srednia_temp);<br />    srednia_temp = srednia_temp + wynik;<br />    Serial.println(srednia_temp);<br />    srednia_temp = srednia_temp / (dt + 1);<br />    <br />    Serial.println(srednia_temp);<br />    <br />    <br />    <br />    int m;<br />   <br />   m = ((temperature) + 60); //przesuniecie dla temp -55*C aby uzyskac wartosci tylko dodatnie <br />    <br />   if ((temperature) &gt;= -50)<br />      {<br />      OCR1A=m;          //przypisanie OCR1A wartosci temperatury<br />      }<br />   else<br />      {<br />      OCR1A=31249;     //jesli przekracza zakres to generuje 1Hz<br />      }      <br />  }<br />  <br />  <br />  <br />  // A simple method for calibration at 0°C with iced water:<br />  if (buttonState)<br />  {<br />    char n=0;<br />    float temp=0;<br />    do <br />    {<br />      if (myRTD.getCode());<br />      {<br />        temp+= float(myRTD.byteCode);<br />        n++;<br />      }<br /><br />    } while (n&lt;10);<br />  <br />    temp /= 10;<br />    calRAdevice1 = RZero;<br />    calRAdevice1 /= ( temp /( 2097152.0 - temp));<br />    <br />    delay(2000);<br />    Serial.print(&quot;Ra: &quot;); Serial.println(calRAdevice1);<br />    delay(2000);<br />  }<br />}<br />}<br /><br />void CTC_init()<br />{<br />  TCCR1B |= (1 &lt;&lt; WGM12);   // CTC mode<br />  TCCR1B |= (1 &lt;&lt; CS12);    // 256 prescaler<br />  TIMSK1 |= (1 &lt;&lt; OCIE1A);  // enable timer compare interrupt<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1442">endurasek</a> — 17 gru 2014, o 20:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[endurasek]]></name></author>
<updated>2014-12-16T23:06:18+01:00</updated>
<published>2014-12-16T23:06:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=109131#p109131</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=109131#p109131"/>
<title type="html"><![CDATA[Re: MCP3551 na arduino uno + pt100 - nie dziala]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=109131#p109131"><![CDATA[
Na razie cierpie na brak czasu ale jak znajde chwile to na poczatek wstawie LM1117 z drobna filtracja tak jak w nocie AN1154 to producent przewiduje z filtrem RC. Potem sprawdze jakie by tu ukladzik wsadzic za zrodlo napieciowe. A za nim to zrobie to z ciekawosci jeszcze oscyloskop podłącze <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />No właśnie jakie tu powinno być napiecie odniesienia bo wg dwóch schematów to Vref jest zasilanie z Vdd przez dwa rezystory lub osobne zasilanie i osobne Vref.<br />Może  ze by za dużo nie cudowac dam jedno zrodlo odniesienia 5V i do tego przez rezystory dwa podepne Vref?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1442">endurasek</a> — 16 gru 2014, o 23:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[giciors]]></name></author>
<updated>2014-12-16T17:42:17+01:00</updated>
<published>2014-12-16T17:42:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=109071#p109071</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=109071#p109071"/>
<title type="html"><![CDATA[Re: MCP3551 na arduino uno + pt100 - nie dziala]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=109071#p109071"><![CDATA[
Witam<br />W zasadzie masz rację w sprawie skaczącego pomiaru, zazwyczaj główną przyczyną błędów jest napięcie odniesienia czyli to do jakiego porównujesz pomiary, jeżeli to napięcie nie jest stabilne również pomiary masz skaczące tak samo jak napięcie odniesienia. Proponuję zastosować źródło napięcia odniesienia jest ich sporo w zależności od środków pieniężnych możesz sobie wybierać mniej dokładne i bardzo dokładne i....drogie , oczywiście nie szkodzi nic jak jeszcze dodatkowo zastosujesz dobrą stabilizację zasilania. Ja robiłem testy na podobnym scalaku ale 12bit i faktycznie Vref musi być super stabilne w zależności od zastosowania. Nie używasz 22bitów do mierzenia temperatury na zewnątrz :&gt; chyba. Polecam poradnik Mirka o ADC tam uzyskasz odpowiedz na wiele pytań i pomocny kod programu.<br />Serdecznie pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1818">giciors</a> — 16 gru 2014, o 17:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ekstrapolator]]></name></author>
<updated>2014-12-16T09:50:07+01:00</updated>
<published>2014-12-16T09:50:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=109026#p109026</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=109026#p109026"/>
<title type="html"><![CDATA[Re: MCP3551 na arduino uno + pt100 - nie dziala]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=109026#p109026"><![CDATA[
Tak nie mogłem trochę zrozumieć jak to Vref działa bo według mnie zmieniało się ono wraz ze zmiana rezystancji PT100. Ale doszedłem do tej notki i miałem racje muszę jeszcze przeczytać ja cała żeby skumać jak to do końca działa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2072">Ekstrapolator</a> — 16 gru 2014, o 09:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[endurasek]]></name></author>
<updated>2014-12-15T21:31:37+01:00</updated>
<published>2014-12-15T21:31:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108937#p108937</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108937#p108937"/>
<title type="html"><![CDATA[Re: MCP3551 na arduino uno + pt100 - nie dziala]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108937#p108937"><![CDATA[
Zaje.....ty poradnik ale wpierw zajmę się bledem pomiarowym a potem usredniczaniem wyników. Wydaje mi się ze jak za ta cene ukladu to warto mu troche czasu poswiecic<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1442">endurasek</a> — 15 gru 2014, o 21:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[endurasek]]></name></author>
<updated>2014-12-15T16:46:39+01:00</updated>
<published>2014-12-15T16:46:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108878#p108878</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108878#p108878"/>
<title type="html"><![CDATA[Re: MCP3551 na arduino uno + pt100 - nie dziala]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108878#p108878"><![CDATA[
Mnie kosztowal 22zl a kupowalem w elektroniku a oni sciagaja to i tak z TME. A w TME kosztuje 13 i 16 zl w zaleznosci od obudowy.<br />A zdecydowałem się na ten układ po przeczytaniu tego <a href="http://forum.arduino.cc/index.php?topic=164643.0"  class="postlink">http://forum.arduino.cc/index.php?topic=164643.0</a><br />Ale musze cos jeszcze zrobic chyba ze zasilaniem Vref bo wydaje mi sie ze tu tkwi problem i sa bledne wskazania przy 100stopniach. Wiec na razie nie bede usredniac tylko pokabinuje ze zasilaniem moze jaki osobny stabilizator dam na 3.3v a Vdd do 5V normalnie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1442">endurasek</a> — 15 gru 2014, o 16:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ekstrapolator]]></name></author>
<updated>2014-12-14T21:14:07+01:00</updated>
<published>2014-12-14T21:14:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108703#p108703</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108703#p108703"/>
<title type="html"><![CDATA[Re: MCP3551 na arduino uno + pt100 - nie dziala]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108703#p108703"><![CDATA[
Całkiem ciekawe znalezisko, powiedz jeszcze gdzie kupiłeś układ MCP3551 i ile kosztował ? Co do pływającego wyniku myślę że uśrednienie z 10 próbek powinno pomóc. Co do zainteresowania ja tu zawsze zaglądam w tygodniu w weekend nie mam czasu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><br /><a href="http://mirekk36.blogspot.com/2014/02/avr-adc-usrednianie-czyli-cyfrowy-filtr.html"  class="postlink">Cyfrowy filtr dolnoprzepustowy</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2072">Ekstrapolator</a> — 14 gru 2014, o 21:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[endurasek]]></name></author>
<updated>2014-12-14T10:42:40+01:00</updated>
<published>2014-12-14T10:42:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108600#p108600</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108600#p108600"/>
<title type="html"><![CDATA[Re: MCP3551 na arduino uno + pt100 - nie dziala]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108600#p108600"><![CDATA[
Widze male zainteresowanie ale jak by ktoś kiedyś potrzebował to udało mi się odpalić w takiej konfiguracji.<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/1442/8de9c0e6694f22a8d2ddee10d6bd5ba7.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1442/8de9c0e6694f22a8d2ddee10d6bd5ba7.jpg" alt="Obrazek" /></a><br /><br />[syntax=cpp]/*<br />This example demonstrate the usage of the A/D Converter with MCP3551 library.<br />A good explanation on the code can be found in application note AN1154 by MCP.<br /><br />Copyright (c) 2013 Simon Bauer.  All rights reserved.<br /><br />This example code is in the public domain.<br />*/<br />#include &lt;MCP3551.h&gt;<br />#include &lt;SPI.h&gt;<br /><br /><br />// przycisk do kalibracji 0°C<br />const int pushButton = 2;<br /><br />// Pin5 ukladu MCP3551 podlaczony do DIGITAL 3 na Arduino<br />const int MCPPin = 3;<br /><br />//Some variables we need:<br />float calRAdevice1 = 13714; // w to miejsce wpisujemy wartosc RA wyswietlona w czasie kalibracji<br />float RTD; //resistor of RTD<br />const int RZero = 100; //resistance at 0°C<br /><br />//create a instance with IC connect to SCK, MOSI and SS (MCPPin):<br />MCP3551 myRTD(MCPPin);<br /><br />// the setup routine runs once when you press reset:<br />void setup() {<br />  // initialize serial communication at 9600 bits per second:<br />  Serial.begin(9600);<br />  // make the pushbutton's pin an input:<br />  pinMode(pushButton, INPUT);<br /><br />}<br /><br />// the loop routine runs over and over again forever:<br />void loop() {<br />  // read the input pin:<br />  int buttonState = digitalRead(pushButton);<br /><br />  bool rtdReady = myRTD.getCode();<br />  if(rtdReady)<br />  {<br />    // Serial.println(getRTD1.byteCode);<br />    <br />    //calculate RTD acc. MCP AN1154:<br />    RTD = calRAdevice1 * (float(myRTD.byteCode) / ( 2097152.0 - float(myRTD.byteCode)));<br />    <br />    //This is part of a calculation for T(RTD)<br />    RTD = (RTD / RZero) - 1;<br />    float temperature = (RTD * (255.8723 + RTD * (9.6 + RTD * 0.878)));<br />    delay(3000);<br />    Serial.print(&quot;Temperature: &quot;); Serial.println(temperature,0); //wyswietla tylko wartosci 000.**°C  bez ulamkowych kasujac 0 bedzie wyswietlac 000.00°C <br />  }<br /><br />  // A simple method for calibration at 0°C with iced water:<br />  if (buttonState)<br />  {<br />    char n=0;<br />    float temp=0;<br />    do <br />    {<br />      if (myRTD.getCode());<br />      {<br />        temp+= float(myRTD.byteCode);<br />        n++;<br />      }<br /><br />    } while (n&lt;10);<br />  <br />    temp /= 10;<br />    calRAdevice1 = RZero;<br />    calRAdevice1 /= ( temp /( 2097152.0 - temp));<br />    <br />    delay(2000);<br />    Serial.print(&quot;Ra: &quot;); Serial.println(calRAdevice1);<br />    delay(2000);<br />      }<br /><br />}[/syntax]<br /><br />Po podlaczeniu do zasilania w oknie terminala są wskazywane wartosci temperatury<br /><br />Kalibracja:<br />- wstepnie czujnik jest skalibrowany <br />- wsadzamy czujnik do lodu i czekamy jak temperatura sie ustabilizuje (powinna być bisla zero jeśli pokazuje wiecej lub mniej nie pzejmować się)<br />- wciskamy przycisk i odczytujemy wartość &quot;Ra&quot; z terminala<br />- puszamy przycisk i w tym momenci wskazywać powinno 0°C<br />- w prgramie w linijce  <br /><br />  float calRAdevice1 = 13714; // w to miejsce wpisujemy wartosc RA wyswietlona w czasie kalibracji<br /><br /> Zmieniamy wartość w tym przypadku 13714 na odczytaną z terminala komputera<br /><br />- wgrywamy program i teraz juz powinno dobrze wskazywać<br /><br /><br />Mam też pytanko jak ustabilizować wyniki bo przy wyswietlaniu temeratury dwa miejsca po przecinku bardzo skacze nawet jak wyswietle tylko jednosci to i tak temperatura skacze jeden dwa stopnie do gory<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1442">endurasek</a> — 14 gru 2014, o 10:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[endurasek]]></name></author>
<updated>2014-12-12T23:40:37+01:00</updated>
<published>2014-12-12T23:40:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108449#p108449</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108449#p108449"/>
<title type="html"><![CDATA[MCP3551 na arduino uno + pt100 - nie dziala]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9657&amp;p=108449#p108449"><![CDATA[
Witam<br /> juz od jakiegoś czasu głowie się nad ukladem MCP3551 i nie umiem z niego wydusic zadnych wartosci.<br />Podłaczyłem tak:<br /><a href="http://forum.atnel.pl/_obrazki/o/1442/e3be11fb63f94b8796067d2870935be0.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1442/e3be11fb63f94b8796067d2870935be0.jpg" alt="Obrazek" /></a><br /><br />no i efekt jest taki ze na poczatku cos tam pokazywalo ale teraz juz nic. Zasilania raczej nie pomylilem jedynie piny SPI moglem pomylic ale chyba z tego powodu go szlak nie trafil<br /><br />A takie cos wgrywam do Arduino UNO<br /><br />[syntax=cpp]/*<br />This example demonstrate the usage of the A/D Converter with MCP3551 library.<br />A good explanation on the code can be found in application note AN1154 by MCP.<br /><br />Copyright (c) 2013 Simon Bauer.  All rights reserved.<br /><br />This example code is in the public domain.<br />*/<br />#include &lt;MCP3551.h&gt;<br />#include &lt;SPI.h&gt;<br /><br /><br />// digital pin 2 has a pushbutton attached to it. Give it a name:<br />const int pushButton = 2;<br /><br />// Slave select pin:<br />const int MCPPin = 30;<br /><br />//Some variables we need:<br />float calRAdevice1 = 13607; //stores the series resistor value <br />float RTD; //resistor of RTD<br />const int RZero = 100; //resistance at 0°C<br /><br />//create a instance with IC connect to SCK, MOSI and SS (MCPPin):<br />MCP3551 myRTD(MCPPin);<br /><br />// the setup routine runs once when you press reset:<br />void setup() {<br />  // initialize serial communication at 9600 bits per second:<br />  Serial.begin(9600);<br />  // make the pushbutton's pin an input:<br />  pinMode(pushButton, INPUT);<br /><br />}<br /><br />// the loop routine runs over and over again forever:<br />void loop() {<br />  // read the input pin:<br />  int buttonState = digitalRead(pushButton);<br /><br />  bool rtdReady = myRTD.getCode();<br />  if(rtdReady)<br />  {<br />    // Serial.println(getRTD1.byteCode);<br />    <br />    //calculate RTD acc. MCP AN1154:<br />    RTD = calRAdevice1 * (float(myRTD.byteCode) / ( 2097152.0 - float(myRTD.byteCode)));<br />    <br />    //This is part of a calculation for T(RTD)<br />    RTD = (RTD / RZero) - 1;<br />    float temperature = (RTD * (255.8723 + RTD * (9.6 + RTD * 0.878)));<br />    <br />    Serial.print(&quot;Temperature: &quot;); Serial.println(temperature);<br />  }<br /><br />  // A simple method for calibration at 0°C with iced water:<br />  if (buttonState)<br />  {<br />    char n=0;<br />    float temp=0;<br />    do <br />    {<br />      if (myRTD.getCode());<br />      {<br />        temp+= float(myRTD.byteCode);<br />        n++;<br />      }<br /><br />    } while (n&lt;10);<br />  <br />    temp /= 10;<br />    calRAdevice1 = RZero;<br />    calRAdevice1 /= ( temp /( 2097152.0 - temp));<br />    <br />    delay(2000);<br />    Serial.print(&quot;Ra: &quot;); Serial.println(calRAdevice1);<br />    delay(2000);<br />      }<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1442">endurasek</a> — 12 gru 2014, o 23:40</p><hr />
]]></content>
</entry>
</feed>