<?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=8&amp;t=18131&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-04-13T21:18:36+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=18131&amp;mode</id>
<entry>
<author><name><![CDATA[tominio_1]]></name></author>
<updated>2017-04-13T21:18:36+01:00</updated>
<published>2017-04-13T21:18:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18131&amp;p=187048#p187048</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18131&amp;p=187048#p187048"/>
<title type="html"><![CDATA[Re: MCP3208 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18131&amp;p=187048#p187048"><![CDATA[
WIKA S-20 0,125% 0-25 bar gauge. Testowane na kilku kanałach na dwóch przetwornikach ciśnienia i na dwóch przetwornikach MCP.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4931">tominio_1</a> — 13 kwi 2017, o 21:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tungu]]></name></author>
<updated>2017-04-13T21:08:37+01:00</updated>
<published>2017-04-13T21:08:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18131&amp;p=187047#p187047</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18131&amp;p=187047#p187047"/>
<title type="html"><![CDATA[Re: MCP3208 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18131&amp;p=187047#p187047"><![CDATA[
a jaki masz przetwornik ciśnienia?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12776">tungu</a> — 13 kwi 2017, o 21:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tominio_1]]></name></author>
<updated>2017-04-13T18:20:28+01:00</updated>
<published>2017-04-13T18:20:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18131&amp;p=187036#p187036</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18131&amp;p=187036#p187036"/>
<title type="html"><![CDATA[Re: MCP3208 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18131&amp;p=187036#p187036"><![CDATA[
Nikt nie jest w stanie nic doradzić?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4931">tominio_1</a> — 13 kwi 2017, o 18:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tominio_1]]></name></author>
<updated>2017-04-12T09:36:43+01:00</updated>
<published>2017-04-12T09:36:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18131&amp;p=186934#p186934</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18131&amp;p=186934#p186934"/>
<title type="html"><![CDATA[MCP3208 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18131&amp;p=186934#p186934"><![CDATA[
Witam,<br /><br />Mam takie dosyć nietypowy problem z przetwornikiem MCP3208 podłączonym do ATmega32. Do przetwornika jest podłączony przetwornik ciśnienia 0 - 25 bar z wyjściem prądowy 4...20mA. Puszczam to poprzez rezystor, filtruję i mierzę napięcie. Przy 0 bar mam 1V natomiast przy 25 bar 5V. <br />Problem polega na tym, że zadaję ciśnienie co 1 bar i wskazania są bardzo dobre, aż do okolicy 10 bar a dokładnie ok 9,97 do 10,1. Zmieniając ciśnienie napięcie rośnie liniowo natomiast wartość odczytana z przetwornika dochodzi do 2035 (9,97 bar) i następuje przeskok od razu do 2048. Zwiększam ciśnienie co 0,01 bar i wszystko wraca do normy przy 10,1. Dodam że jest to połowa napięcia referencyjnego bo okolice 2,5 V.<br />Napięcie referencyjne ze scalaka REF-01.<br /><br />Funkcja odczytu z przetwornika:<br />[syntax=c]uint16_t ReadADCEx(uint8_t ch)<br />{<br />uint8_t byte,data_high,data_low;<br />byte=0b00000110;<br />if(ch&gt;3)<br />byte|=0b00000001;<br />CS_LOW();<br />SPIWrite(byte);<br />byte=ch&lt;&lt;6;<br />data_high=SPIWrite(byte);<br />data_high&amp;=0b00001111;<br />data_low=SPIWrite(0xFF);<br />CS_HIGH();<br />return ((data_high&lt;&lt;8)|data_low);<br />}[/syntax]<br /><br />Konwersja na ciśnienie:<br />[syntax=c]void OdczytP()<br />{<br />ch1 = ((float)ReadADCEx(0));<br />ch2 = ((float)ReadADCEx(1));<br />ch3 = ((float)ReadADCEx(2));<br /><br />for(int i=0; i&lt;99; i++)<br />{<br />ch1 += ((float)ReadADCEx(0));<br />ch2 += ((float)ReadADCEx(1));<br />ch3 += ((float)ReadADCEx(2));<br />_delay_ms(1);<br />}<br /><br />ch1 = ch1/100;<br />ch2 = ch2/100;<br />ch3 = ch3/100;<br /><br />kanal1 = ((ch1-782.0)*0.007967)*100.0;<br />kanal2 = ((ch2-782.0)*0.007974)*100.0;<br />kanal3 = ((ch3-782.0)*0.007974)*100.0;<br /><br />if(kanal1 &lt; 0)kanal1=0;<br />if(kanal2 &lt; 0)kanal2=0;<br />if(kanal3 &lt; 0)kanal3=0;<br /><br />if(kanal1 &gt; kanal2)roznica = kanal1 - kanal2;<br />elseroznica = kanal2 - kanal1;<br /><br />}[/syntax]<br /><br />Zmienne ch i kanal są typu float.<br />Problem jest z <strong>data_low</strong>. Otrzymuję wartości do <strong>242</strong> a potem od razu następuje przepełnienie.<br /><br />Jak sztucznie podam wartości wyjściowe to wszystko jest OK, zatem nie jest to wina dalszych konwersji tylko samego odczytu z przetwornika.<br />[syntax=c]data_high = 0b00000111;<br />data_low =  0b11111110;<br />return ((data_high&lt;&lt;8)|data_low);[/syntax]<br /><br />Po zmianie definicji <strong>uint8_t byte,data_high,data_low; na unsigned int</strong> wartości z przetwornika rosną tylko że zatrzymują się na jakiś czas na wartości 2047/48<br /><br /><a href="https://obrazkiforum.atnel.pl/4931/300605ca3801dcb94eb763d0c43aa451.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/4931/300605ca3801dcb94eb763d0c43aa451.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4931">tominio_1</a> — 12 kwi 2017, o 09:36</p><hr />
]]></content>
</entry>
</feed>