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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=8043&amp;mode</id>
<entry>
<author><name><![CDATA[bresser2208]]></name></author>
<updated>2015-01-26T21:27:44+01:00</updated>
<published>2015-01-26T21:27:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=116039#p116039</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=116039#p116039"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=116039#p116039"><![CDATA[
Witam,<br />Próbowałem uruchomić program kolegi jednak...<br />Mam bardzo podobny problem jak kolega. Mianowicie pomiar podawany jest z dokładnością 0.25-0.3 V. Wyniki na LCD wyglądają: (0 0.31 0.62 0.94 itd... wyniki zaokrąglone)<br /><br /><span style="color: #FF0000">[ a pan kolega to najpierw zapozna się z tym: <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --> proszę i poprawi listing kodu - ok? mirekk36 ]</span><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br />#define ReadAddrA2T 0b10010101<br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;I2C_TWI/i2c_twi.h&quot;<br /><br />int main(void) {<br /><br />DDRA |= (1&lt;&lt;PA7);// ustawiamy kierunek linii podświetlenia LCD jako WYJŚCIE<br />PORTA |= (1&lt;&lt;PA7);// załączamy podświetlenie LCD - stan wysoki<br /><br />PORTC |= (1 &lt;&lt; 0) | (1 &lt;&lt; 1);<br /><br />unsigned char msb_A2T = 0;<br />        unsigned char lsb_A2T = 0;<br />        unsigned int ADC_A2T = 0;<br />        float Vin_A2T = 0;<br />        char Vin_A2T_string&#91;10&#93;;<br /><br /><br />lcd_init();<br />i2cSetBitrate( 100 ); // USTAWIAMY prędkość 100 kHz na magistrali I2C<br /><br />lcd_str(&quot;start...&quot;);<br /><br />while(1) {<br /><br />TWI_start();<br />                TWI_write(ReadAddrA2T);<br />                msb_A2T = TWI_read(NACK);<br />                TWI_start();<br />                lsb_A2T = TWI_read(NACK);<br />                TWI_stop();<br /><br />                ADC_A2T = (msb_A2T &lt;&lt; 6) | (lsb_A2T &gt;&gt; 2); //combining 2 bytes to int<br />                Vin_A2T = ((float)ADC_A2T * 488);<br />                Vin_A2T=Vin_A2T/100000;<br />                dtostrf(Vin_A2T, 2, 2, Vin_A2T_string);<br /><br />                lcd_locate(1,0);<br />                lcd_str(Vin_A2T_string);<br /><br />}<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 17 minutach ]</span></strong><br /><br />Już poprawione <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 24 minutach ]</span></strong><br /><br />Nie mogę dostrzec błędu a już sporo czasu nad tym siedzę dziś .... mam nadzieje, że Ktoś rzuci okiem i pomoże.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 31 minutach ]</span></strong><br /><br />Rozwiązałem problem.<br />Poprawny kawałek kodu:<br /><br />[syntax=c]TWI_start();<br />TWI_write(ReadAddrA2T);<br />msb_A2T = TWI_read(ACK);  <br />lsb_A2T = TWI_read(NACK);<br />TWI_stop();[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7189">bresser2208</a> — 26 sty 2015, o 21:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[damiandoles]]></name></author>
<updated>2014-08-12T12:50:23+01:00</updated>
<published>2014-08-12T12:50:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=91223#p91223</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=91223#p91223"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=91223#p91223"><![CDATA[
Witam !<br />Dziękuje Panie ryba84 oraz Panu Mirkowi <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Układ totalnie odszumiony, sprawdzałem oscyloskopem i przebiegi zasilania naprawdę wyglądają ładnie...filtr RC dobrałem tak aby ciąć odpowiednie szpilki (odpowiednie częstotliwości). Teraz naprawdę wszystko działa świetnie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Dokładność 0.01 pH, także chyba nie jest źle <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> Pomiary dokonywane w 3 buforach kalibracyjnych, które zakupiłem razem z sondami <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Chyba nieźle, co ?<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/1669/bfa85a7f14e54e9ffc0112a5678c7c4b.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1669/bfa85a7f14e54e9ffc0112a5678c7c4b.png" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/1669/66a86a32db58d2f6d987398f437e577e.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1669/66a86a32db58d2f6d987398f437e577e.png" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/1669/24a38a2414e554a9464a77789cae67da.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1669/24a38a2414e554a9464a77789cae67da.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1669">damiandoles</a> — 12 sie 2014, o 12:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ryba84]]></name></author>
<updated>2014-08-09T18:31:48+01:00</updated>
<published>2014-08-09T18:31:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90850#p90850</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90850#p90850"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90850#p90850"><![CDATA[
Tak jak pisałem wyżej. Ja bym na wyjściu ostatniego wzmacniacza dał filtr RC a nie sam kondensator. Tak 1k + 100n starczy i wytnie Ci wszystkie szpilki napięcia (RC jest orientacyjne, zakładam że szpilki mają niską czëstotliwość). Nawet lepiej jak byś miał filtr RC przed samym portem ADC co eliminowałoby ew. zakłócenia indukujące się w przewodach połączeniowych. Stała czasowa w przypadku gleby jest mało ważna, bo raczej Ph nie zmienia się nagle. Zawieszenie się mcu mogą powodować również szpilki napięcia docierające na pin procesora.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3170">ryba84</a> — 9 sie 2014, o 18:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[damiandoles]]></name></author>
<updated>2014-08-09T11:34:23+01:00</updated>
<published>2014-08-09T11:34:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90819#p90819</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90819#p90819"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90819#p90819"><![CDATA[
Witam !<br />Udało mi się zrobić ten pH metr. Dokładność jaką uzyskałem to niestety +- 0,2 nawet do 0,5 pH...Głównie przez pływające ADC - chyba mój zestaw uruchomieniowy nie należy do dobrych. Z resztą patrząc na schemat i płytkę pcb nawet nie ma wydzielonej masy analogowej i cyfrowej... O.o (zestaw Gotronik V2). Panowie, chciałbym przedstawić jeszcze jakieś drobne problemiki i podyskutować na ich temat <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> (Liczę na opinię szanownego Pana Mirka - oglądałem całą serię filmików o ADC, w sumie dopiero od końcowych części było coś czego nie wiedziałem i co słuchałem ze zwiększonym zainteresowaniem, aż tak początkujący nie jestem, ale naprawdę świetne filmy Pan kręci. Powinien Pan być wykładowcą <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ). Dobra układ działa generalnie tak, że mam dokładność taką jak mówiłem, a jej wskazanie zależy głównie od wahania się ADC - to jest kwestia odszumienia i filtracji. Kolejna sprawa to dokonałem regresji liniowej (metoda najmniejszych kwadratów przy pomocy funkcji tablicowej REGLINP w Excelu) punktów empirycznych zależności pH od napięcia. W ten sposób funkcja zwróciła mi współczynniki a i b równania liniowego dzięki czemu wstawiam tylko jako argument napięcie zmierzone w ADC i otrzymuję pH. Sama aproksymacja ma też dość spory błąd, dlatego, że im bliżej poruszamy się zakresu pH 7 tym dokładność jest większa (nawet do 0,01 pH). Muszę wyznaczyć równanie w jeszcze jeden (doświadczalny sposób). <br /><br />Problemy:<br /><br />1. Czasami jest tak, że przez np. parę godzin pomiaru ładnie wszystko wskazuje, ADC ma jakiś tam dość spory błąd ale działa OK. Natomiast nagle wszystko potrafi się zawiesić, napięcie mierzone wynosi np. 10x więcej niż powinno być i mam pH w skali kosmicznej <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> np. z 30. I tak już zostaje. Jedyne co mogę zrobić to zresetować ATmegę...Tak samo się dzieje, gdy włączam całość z podłączonym do ADC wzmacniaczem pH. Układ nie startuje a ATmega widać, że jest zawieszona. Muszę odpalać tak, że dopiero po uruchomieniu programu, podłączam kabelkiem sygnał ze wzmacniacza sondy pH do ADC0 - wtedy pomiar działa. Dziwne zachowanie...no trochę średnio aby w finalnym projekcie (zaawansowany sterownik uprawy roślin z aplikacją na PC - to była moja inżynierka, teraz dorabiam tylko pomiar pH gleby, wody, wilgotność gleby + automatyczne nawadnianie) po jakimś czasie pomiar z ADC się wieszał i trzeba było robić reset.<br /><br />2. Podejrzewam, że układ wzmacniacza też jest średniej jakości - pierwsza prototypowa płytka, w której przyznaje się nie zastosowałem się do świętej i zawsze przestrzeganej przeze mnie zasady filtrowania zasilania. W końcu każdy układ scalony to źródło szumów własnych...dlatego ceramik 100nF blisko nóżek zasilania obowiązkowy. W myśl tego, chciałbym pokazać Wam aktualny schemat i poprosić o radę czy aby na pewno jest ok. Zastosowałem też na samym wejściu filtry LC, elektrolicik 2.2uF (nie za duży ? Może 100nF zwykły...) oraz dławiczek 10uH aby trochę poprawić przebieg prądu i odszumić go. Napięcie ujemne zaopatruje układ przetwornicy DC-DC ICL7660. Chciałbym się również spytać, czy taki układ wzmacniacza sondy nie przeciąży tej przetworniczki ? Sporo kondensatorków itd. na liniach zasilania. Poniżej schematy oraz wzór PCB, czy moglibyście sprawdzić prowadzenie masy ? Starałem się aby wszystko zbiegało do jednego punktu (gwiadza), również aby kondensatory filtrujące zasilanie nie były podłączone do masy koło wzmacniaczy tylko prosto do punktu gdzie zbiega się masa.<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/1669/fd3526d52f48bcc3d7a0c0e14907763c.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1669/fd3526d52f48bcc3d7a0c0e14907763c.png" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/1669/7f05a6443774e2311ddf9d932340a885.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1669/7f05a6443774e2311ddf9d932340a885.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1669">damiandoles</a> — 9 sie 2014, o 11:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[damiandoles]]></name></author>
<updated>2014-08-07T19:41:03+01:00</updated>
<published>2014-08-07T19:41:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90598#p90598</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90598#p90598"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90598#p90598"><![CDATA[
mczarny: dziękuję za poradę aczkolwiek ona jest błędna !! W takim działaniu układ NIE MIERZY napięcia z elektrody pH a upływność kondensatora !! Poza tym powstaje ogromna stała czasowa, rzędu kilkudziestu s między owymi szpilkami napięcia i trzeba czekać sporo czasu na ustabilizowanie odczytu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1669">damiandoles</a> — 7 sie 2014, o 19:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ryba84]]></name></author>
<updated>2014-08-07T19:30:39+01:00</updated>
<published>2014-08-07T19:30:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90594#p90594</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90594#p90594"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90594#p90594"><![CDATA[
Zrób prosty filtr dolnoprzepustowy RC na wyjściu ze wzmacniacza U3 (nie sam kondensator tylko filtr RC). Poza tym nie widzę kondensatorów na zasilaniu opampów. Skoro odczyty napięcia z zasilacza stoją to znaczy, że masz coś nie tak w obwodzie od sondy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3170">ryba84</a> — 7 sie 2014, o 19:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mczarny]]></name></author>
<updated>2014-08-07T17:32:17+01:00</updated>
<published>2014-08-07T17:32:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90571#p90571</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90571#p90571"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90571#p90571"><![CDATA[
cześć<br />daj na wejście &quot;+&quot; wzmacniacza U4 kondensator 220n do masy<br />pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4651">mczarny</a> — 7 sie 2014, o 17:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[damiandoles]]></name></author>
<updated>2014-08-07T15:31:53+01:00</updated>
<published>2014-08-07T15:31:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90550#p90550</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90550#p90550"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90550#p90550"><![CDATA[
Jest do dokładnie profesjonalna sonda do pomiaru pH wody, Hydromet ERH-AQ1 (<!-- m --><a class="postlink" href="http://www.hydromet.com.pl/elektrody-ph/elektrody-zespolone-ogniwa-pomiarowe/erh-aq,18,2,52" >http://www.hydromet.com.pl/elektrody-ph ... aq,18,2,52</a><!-- m -->). Tak poza tym, elektroda pH nie jest niczym zasilana - to właśnie ona jest źródłem napięcia, tyle że napięcia bardzo malutkiego w zakresie od - ~414mV do + 414mV -&gt; zasada działania elektrody pH (wytwarza małe napięcie pod wpływem stężenia jonów wodorowych). <br /><br />Tak poza tym, odłączyłem sondę od wzmacniacza. wejście zwarłem do masy i...cały program ATmegi stanął w miejscu, w konsoli tylko miga kursor co w ogóle mnie zaskoczyło, jak odłączam masę od wejścia sondy to program zaczyna znów żyć, ale pomiar totalnie pływa, mimo, że tak jak pisałem miernik pokazuje wartość stałą. Nie wiem jak tłumaczyć to wszystko. Może załączę schemat wzmacniacza.<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/1669/fb14afbae064a0656e1921b820e1e250.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1669/fb14afbae064a0656e1921b820e1e250.png" alt="Obrazek" /></a><br /><br />PS: problem rozwiązałem. Sęk tkwił w tym, że sygnał z sondy pH nie jest stały...tzn. ze wzmacniacza. Są to chwilowe szpilki napięcia, dlatego na ADC widziałem ogromne różnice i &quot;pływanie&quot;. Uśrednienie pomiaru ze 100 próbek wyjaśniło problem i mam po konwersji to samo co pokazuje multimetr <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1669">damiandoles</a> — 7 sie 2014, o 15:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ryba84]]></name></author>
<updated>2014-08-07T14:54:48+01:00</updated>
<published>2014-08-07T14:54:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90545#p90545</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90545#p90545"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90545#p90545"><![CDATA[
A skąd masz zasilaną sondę? Czy długi przewody od niej? Jakie to przewody? No i co to za sonda?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3170">ryba84</a> — 7 sie 2014, o 14:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[damiandoles]]></name></author>
<updated>2014-08-07T12:32:58+01:00</updated>
<published>2014-08-07T12:32:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90539#p90539</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90539#p90539"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90539#p90539"><![CDATA[
Właśnie zacząłem oglądać <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  PS: tak swoją drogą dziwnie się zachowuje ten przetwornik. Na wyjściu wzmacniacza mam jak mówilem 1,21V przy pH = 7. Podłączam sobie owy sygnał pod wejście jednego z przetworników, no i ku mojemu zaskoczeniu przetwornik ten WYMUSZA napięcie niższe o 100mV...multimetr pokazuje zamiast 1,21V to 1,11V. No to coś jest nie halo :&gt; Tak samo pozostałe pomiary, obniżone o 100mV. Pomijam już fakt, że podając z zasilacza napięcie 1,4V pokazuje w terminalu obniżone o te ~100mV, natomiast gdy podłączam sygnał ze wzmacniacza na drugi przetwornik (~1,2V) to na terminalu widzę raz napięcie 0,77V...raz 1,8, raz 1,56 i totalnie nie wiem już o co chodzi. Znam całe &quot;procedury&quot; filtracji, kondensatory, PCB (wiem nie zastosowałem się do PCB). Specjalnie dałem jeszcze kondensatory 100nF na zasilaniu przetworników (napięcie referencyjne 4,096V) oraz 1uF. Powinno to chyba przefiltrować trochę zasilanie. Specjalnie chciałem zastosować zewnętrzne przetworniki z racji zwiększonej precyzji pomiaru sygnału ze wzmacniacza sondy ph, ale jak narazie widzę, że gorzej działają niż abudowane ADC ATmegi...<br /><br />A0T: sygnał z sondy pH (na multimetrze stały, w przetworniku skacze jak szalony)<br />A3T: sygnał z zasilacza (stały obniżony o 100mV)<br /><a href="http://forum.atnel.pl/_obrazki/o/1669/834b9332f0df7506c818607bb1339fa4.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1669/834b9332f0df7506c818607bb1339fa4.png" alt="Obrazek" /></a><br /><br />EDIT: z tego co patrzę, na tabelki i wykres tak jak mówiliście, wychodzi na to, że faktycznie LSB ma błąd +- 0,25 natomiast wnioskując z wykresów od strony 5 wychodzi na to, że harmoniczne wynoszą około od 100mV do 150mV. Zgadza się ? W takim razie odpowiedź na &quot;pływanie&quot;. W takim razie, powstaje pytanie, jak skompensować programowo owy błąd ? Dodawać do każdego pomiaru 0,26V ... ? Trochę prymitywne i niepewne, brać średnią z np. 20 pomiarów ? Potrzebuję bardzo dużej dokładności. Czasami jak mówiłem jest tak, że pokazują mi się pomiary idealnie zgodne z multimetrem, najlepiej jakby tak było <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Bo w przypadku pomiaru pH, 20mV to bardzo dużo przy różnicy napięcia. Z teorii odnośnie elektrod pH wynika, że zmiana o ~ 59mV powoduje zmianę pH o 1. Także widzicie, że to jest tak naprawdę bardzo dużo. Ci co coś wiedzą na temat pomiarów pH, linearyzacji funkcji pH wiedzą, że równanie Nersta to tylko piękna teoria <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Natomiast w praktyce wyznacza się prostą z danego zakresu i wyznacza się na podstawie buforów kalibrujących współczynniki a i b równania liniowego. Ale właśnie jeśli na wyjściu wzmacniacza pH, mam np 1,37V to mój ADC musi zmierzyć mi bardzo dokładnie to napięcie. Różnica 100mV to bardzo dużo.<br /><br />Zadziwia mnie strasznie, dlaczego jak podaję sygnał np. 3,8V z zasilacza pokazuje mi ~ 3,72V w terminalu (czyli świetny wynik !) natomiast gdy podłączam na drugi przetwornik sygnał ze wzmacniacza pH 1,2V to sygnał totalnie pływa ? Nie umiem na to odpowiedzieć. Przecież wyjście wzmacniacza operacyjnego ma małą rezystancję (rzędu kilkudziestu Ohmów, a w teorii 0). Przetworniki są OK, zamieniając sygnał na jedne przetwornik zasilacz a drugi sonda pH to nie ważne jaki ADC, zawsze ten co ma sygnał z sondy pływa...natomiast jak mówiłem na multimetrze (nie z Tesco za 10zł <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> ) jest sygnał pięknie stały. Ukłąd wzmacniacza jest tak zaprojektowany, że ma zakres wyjściowy około 0-2V w teorii w symulacjach. W praktyce jest ciut przesunięty, ale jest OK. Sonda pH daje sygnał +- 420mV, dlatego trzeba go wzmocnić i przesunąć z zakresu ujemnego na dodani i to mój wzmacniacz robi, natomiast no przetwornik nie radzi sobie z pomiarem sygnału wyjściowego...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1669">damiandoles</a> — 7 sie 2014, o 12:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-07T12:18:24+01:00</updated>
<published>2014-08-07T12:18:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90538#p90538</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90538#p90538"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90538#p90538"><![CDATA[
<div class="quotetitle">damiandoles napisał(a):</div><div class="quotecontent"><br />Tego filmiku nie oglądałem, natomiast Pana filmik o Arduino z misiem jest świetny <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /></div><br /><br />Ok - ale obejrzyj właśnie ten cykl poradników o ADC bo widzę, że temat toczy się już trochę czasu a przez ten właśnie czas miałbyś już obejrzane wszystkie odcinki i pewnie okazałoby się że nie musiałbyś nawet pytań zadawać bo wszystko w nich jest praktycznie wytłumaczone a nawet sporo więcej ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 sie 2014, o 12:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[damiandoles]]></name></author>
<updated>2014-08-07T12:01:07+01:00</updated>
<published>2014-08-07T12:01:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90536#p90536</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90536#p90536"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90536#p90536"><![CDATA[
Tego filmiku nie oglądałem, natomiast Pana filmik o Arduino z misiem jest świetny <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1669">damiandoles</a> — 7 sie 2014, o 12:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-07T11:57:50+01:00</updated>
<published>2014-08-07T11:57:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90535#p90535</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90535#p90535"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90535#p90535"><![CDATA[
no ale odnośnie tych skaczących wyników pomiarów to ty oglądałeś tak w ogóle to ?<br /><br /><!-- m --><a class="postlink" href="https://www.youtube.com/playlist?list=PLtXXWLsA5QNi_R9uDXpHRpo5hRnig_f23" >https://www.youtube.com/playlist?list=P ... 5hRnig_f23</a><!-- m --><br /><br />bo coś mi się wydaje że nie widziałeś mistrza JEDI w akcji <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><!-- m --><a class="postlink" href="https://www.youtube.com/watch?feature=player_embedded&amp;v=fQHrTCwX2Ok#t=341" >https://www.youtube.com/watch?feature=p ... X2Ok#t=341</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 sie 2014, o 11:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[damiandoles]]></name></author>
<updated>2014-08-07T12:00:11+01:00</updated>
<published>2014-08-07T11:53:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90534#p90534</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90534#p90534"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90534#p90534"><![CDATA[
Witam Panie Mirku, dziękuję bardzo za odpowiedź <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> No tak, wejście pływa, to się zgadza. Stan wysokiej impedancji ma to do siebie, że niesamowicie łapie zakłócenia...tak jak w przypadku wzmacniaczy operacyjnych. Dziś podłączylem zaprojektowany układ wzmacniacza do pomiaru pH, niestety przetworniki zaczęły szaleć...nie jest to wina wzmacniacza, bo ten przy pH = 7 na wyjściu ma stałe 1,22V natomiast nawet podany z zasilacza mały sygnał na przetwornik powoduje straszne pływanie pomiarów, a jeszcze wczoraj miałem dokładny pomiar, powiedzmy +- 10mV. Na pewno trochę skopałem z PCB, bo wiadomo, że takie cuda jak przetworniki potrzebują odpowiedniego ekranowania, masa nie powinna tworzyć pętli a jej zbieganie powinno być w 1 punkcie i łączenie z masą cyfrową...aczkolwiek nie powinno mieć to aż taki wpływ, że urządzenie przestaje w ogóle działać. Proszę zobaczyć (A3T podłączony sygnał)<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/1669/6ed21c26ff58971d9d906d3d29350b82.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1669/6ed21c26ff58971d9d906d3d29350b82.png" alt="Obrazek" /></a><br /><br /><a href="http://forum.atnel.pl/_obrazki/o/1669/7f8bb0495d59677494bd77f2288313a3.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1669/7f8bb0495d59677494bd77f2288313a3.png" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/1669/968ac9e2ebe9d2aa9cb7ed72162df266.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1669/968ac9e2ebe9d2aa9cb7ed72162df266.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1669">damiandoles</a> — 7 sie 2014, o 11:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-07T03:59:34+01:00</updated>
<published>2014-08-07T03:59:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90510#p90510</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90510#p90510"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90510#p90510"><![CDATA[
<div class="quotetitle">damiandoles napisał(a):</div><div class="quotecontent"><br />gdy nie podłączam nic na drugi przetwornik to pływa te 0,26V. Co to może być ?<br /></div><br /><br />Dokładnie to może być, że nic nie podłączasz .... czego innego można się spodziewać po wejściu, które nie jest do niczego nie podłączone i jest w stanie wysokiej impedancji, nie ważne czy cyfrowe wejście czy analogowe. Zwykle na wejściach ADC mamy jakiś dzielnik rezystorowy do pomiarów, i gdy nie jest podane żadne napięcie na dzielnik, to jego dolny rezystor zawsze ściąga wejście do GND dzięki czemu na wejściu zawsze jest stabilne zero.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 sie 2014, o 03:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ryba84]]></name></author>
<updated>2014-08-06T23:56:41+01:00</updated>
<published>2014-08-06T23:56:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90508#p90508</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90508#p90508"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90508#p90508"><![CDATA[
Różnice wynikają z błędu Twojego miernika, błędu napięcia referencyjnego  oraz błędu samego przetwornika - strona druga datasheet tabelka DC Accuracy. Drugi przetwornik pływa bo pin &quot;wiszący&quot; w powietrzu zachowuje się jak antena łapiąc wszystkie zakłócenia (sprawdź zbliżając palec do &quot;wiszącego&quot; pinu). Na wyniki pomiarów wiele małych elementów ma wpływ (jak ułożenie ścieżek połączeniowych, wspomniane błędy, filtrowanie zasilania itd..). Odnośnie błędów, masz wykresy od strony 5 jak to wygląda dla przebadanych próbek przez Microchipa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3170">ryba84</a> — 6 sie 2014, o 23:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[damiandoles]]></name></author>
<updated>2014-08-06T22:08:53+01:00</updated>
<published>2014-08-06T22:08:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90504#p90504</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90504#p90504"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90504#p90504"><![CDATA[
Dziękuję za odpowiedź <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Fakt, masz rację jest wyraźnie narysowane i o tym zapomniałem. Na pewno bardzo pomogło, bo widzę, że pomiary są dokładniejsze, ale...i tak jeszcze czasami są różnice o np. 10mV czy np. gdy nie podłączam nic na drugi przetwornik to pływa te 0,26V. Co to może być ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1669">damiandoles</a> — 6 sie 2014, o 22:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ryba84]]></name></author>
<updated>2014-08-06T19:52:04+01:00</updated>
<published>2014-08-06T19:52:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90486#p90486</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90486#p90486"/>
<title type="html"><![CDATA[Re: [ATmega32A][C] Błędne odczyty z przetworników A/D MCP302]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90486#p90486"><![CDATA[
Na stronie 17 datasheet w rysunku 5-5 masz ładnie rozrysowane jak są przesyłane dane. Z niego wynika, że powinieneś zrobić coś takiego:[syntax=c]ADC_A0T = (msb_A0T &lt;&lt; 6) | (lsb_A0T &gt;&gt; 2);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3170">ryba84</a> — 6 sie 2014, o 19:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[damiandoles]]></name></author>
<updated>2014-08-06T18:53:43+01:00</updated>
<published>2014-08-06T18:53:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90478#p90478</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90478#p90478"/>
<title type="html"><![CDATA[[ATmega32A][C] Błędne odczyty z przetworników A/D MCP3021]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8043&amp;p=90478#p90478"><![CDATA[
Wybrałem wersję z adresem 000 (A0), oraz wersję z adresem 011 (A3). Napisałem prosty programik, fajnie wszystko czyta, ale jest jeden problem, że pomiar zaniżony jest o jakieś 0,2V... Czasami, bardzo rzadko wskoczy idealnie wartość jaka jest na multimetrze, a potem przez długo jest pomiar pomniejszony o 0,2. Zastanawia mnie co to jest. W dokumentacji wyraźnie napisane jest, że rozmiar LSB = Vcc/1024. Skoro używam napięcia referencyjnego 4,096V to mam rozdzielczość 4mV przy ADC = 1, więc przy wartości 1024 będę miał 4,096V. Tym samym rozmiar LSB to 4 bity, więc MSB ma 6 bitów i o tyle robię przesunięcie bitowe. Aby potem zrobić OR przesuniętego MSB oraz LSB. Czasami jak odepnę od wejść sygnał to wskakuje wartość 0,26V i znika...losowo. Tak jakby była to ta brakująca część. <br /><br /> <a href="http://obrazki.elektroda.pl/9986244600_1407344647.png"  class="postlink"><img src="http://obrazki.elektroda.pl/9986244600_1407344647_thumb.jpg" alt="Obrazek" /></a>  <br /><br /> <a href="http://obrazki.elektroda.pl/2427064700_1407344885.png"  class="postlink"><img src="http://obrazki.elektroda.pl/2427064700_1407344885_thumb.jpg" alt="Obrazek" /></a>  <br /><br /> <a href="http://obrazki.elektroda.pl/8239249800_1407345808.png"  class="postlink"><img src="http://obrazki.elektroda.pl/8239249800_1407345808_thumb.jpg" alt="Obrazek" /></a>  <br /><br />Napięcie wejściowe 1,56 z zasilacza jest prawidłowe...miernik pokazuje idealnie to samo, natomiast jak widzicie pomiary są pomniejszone o 0,26V. Ewidentnie coś jest nie tak...widzicie, że są nawet wielokrotności 0,26V. Nie wiem czy jest to problem natury programowej, czy sprzętowej...wydaje mi się, że coś może się indukować ? Jakieś zjawisko fizyczne...nie mam pojęcia. Przylutowałem na wejście jednego z przetworników kondensator ceramiczny 100nF, pomyślałem, że to może jakieś zakłócenia, ale nic się nie zmieniło...Ktoś ma jakieś pomysły ? Będę naprawdę wdzięczny za pomoc. Wierzę w to forum, bo są tutaj normalni życzliwi ludzie nie to co na elektrodzie. Jedno wielkie chamstwo.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &quot;TWI.h&quot;<br />#include &quot;usart.h&quot;<br /><br />#define ReadAddrA0T 0b10010001 //Read addres for MCP3021A0T-E/OT (000)<br />#define ReadAddrA3T 0b10010111 //Read addres for MCP3021A3T-E/OT (011)<br /><br />int main(void)<br />{<br />PORTC |= (1 &lt;&lt; 0) | (1 &lt;&lt; 1); // SCL and SDA high<br />TWI_Init(150);<br />USART_Init(BAUD(9600));<br />/************************************************************************/<br />/* MCP3021A0T-E/OT variables                                            */<br />/************************************************************************/<br />unsigned int ADC_A0T = 0;<br />float Vin_A0T = 0;<br />unsigned char msb_A0T = 0;<br />unsigned char lsb_A0T = 0;<br />unsigned char Vin_A0T_string&#91;10&#93;;<br />/************************************************************************/<br />/* MCP3021A3T-E/OT variables                                            */<br />/************************************************************************/<br />unsigned int ADC_A3T = 0;<br />float Vin_A3T = 0;<br />unsigned char msb_A3T = 0;<br />unsigned char lsb_A3T = 0;<br />unsigned char Vin_A3T_string&#91;10&#93;;<br />/************************************************************************/<br />/*Reference voltage: 4,096V (MCP1541)                                   */<br />/*LSB size = Vdd / 1024 (10 bit ADC)*/<br />/* -&gt; lsb = 4 bits, msb = 6 bits*/<br />/* -&gt; ADC = 1 &lt;=&gt; 0.004V = 4mV (resolution)*/<br />/************************************************************************/<br />while(1)<br />{<br />TWI_Start();<br />TWI_Write(ReadAddrA0T);<br />msb_A0T = TWI_Read(NACK);<br />TWI_Start();<br />lsb_A0T = TWI_Read(NACK);<br />TWI_Stop();<br /><br />ADC_A0T = (msb_A0T &lt;&lt; 6) | lsb_A0T; //combining 2 bytes to int<br />Vin_A0T = (float)((float)ADC_A0T * (float)0.004);<br />dtostrf(Vin_A0T, 2, 2,Vin_A0T_string);<br /><br />TWI_Start();<br />TWI_Write(ReadAddrA3T);<br />msb_A3T = TWI_Read(NACK);<br />TWI_Start();<br />lsb_A3T = TWI_Read(NACK);<br />TWI_Stop();<br /><br />ADC_A3T = (msb_A3T &lt;&lt; 6) | lsb_A3T; //combining 2 bytes to int<br />Vin_A3T = (float)((float)ADC_A3T * (float)0.004);<br />dtostrf(Vin_A3T, 2, 2,Vin_A3T_string);<br /><br />USART_PutString(&quot;MCP3021A0T: &quot;);<br />USART_PutString(&quot;\r\n&quot;);<br />USART_PutString(Vin_A0T_string);<br />USART_PutString(&quot;\r\n&quot;);<br />USART_PutString(&quot;MCP3021A3T: &quot;);<br />USART_PutString(&quot;\r\n&quot;);<br />USART_PutString(Vin_A3T_string);<br />USART_PutString(&quot;\r\n&quot;);<br />_delay_ms(1000);<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1669">damiandoles</a> — 6 sie 2014, o 18:53</p><hr />
]]></content>
</entry>
</feed>