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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-12-01T09:36:23+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=12290&amp;mode</id>
<entry>
<author><name><![CDATA[robo1973]]></name></author>
<updated>2018-12-01T09:36:23+01:00</updated>
<published>2018-12-01T09:36:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=214204#p214204</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=214204#p214204"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=214204#p214204"><![CDATA[
Witam !!!<br />Uruchomiłem wagę na podstawie programu kol endlesik. Chcialbym do tej samej atmegi podłączyć drugi tensometr. Jak to będzie w programie<br />Czy się da obsłużyć procem dwa przetworniki ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6554">robo1973</a> — 1 gru 2018, o 09:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[grossox]]></name></author>
<updated>2018-08-22T14:15:32+01:00</updated>
<published>2018-08-22T14:15:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=210896#p210896</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=210896#p210896"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=210896#p210896"><![CDATA[
Cześć, napisałem program do obsługi hx711. pod wpływem nacisku odczytywane dane się zmieniają i ogólnie mam komunikację, lecz niestety mam duży problem z przeliczeniem wartości odczytanych z hx711 na gramy. Czy mógłby ktoś pomóc??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19813">grossox</a> — 22 sie 2018, o 14:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[endlesik]]></name></author>
<updated>2017-12-22T16:11:25+01:00</updated>
<published>2017-12-22T16:11:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=200956#p200956</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=200956#p200956"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=200956#p200956"><![CDATA[
O, super! Mój błąd, że kierowałem się głównie kolorem kabelków, myślałem, że to standard <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=18182">endlesik</a> — 22 gru 2017, o 16:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kamilck13]]></name></author>
<updated>2017-11-10T18:16:01+01:00</updated>
<published>2017-11-10T18:16:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=198664#p198664</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=198664#p198664"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=198664#p198664"><![CDATA[
W sumie to nie chce mi się analizować twojego kodu z moim (też po wielu próbach udało mi się uruchomić wagę). Jednak moją uwagę przykuła jedna kwestia:<br /><div class="quotetitle">endlesik napisał(a):</div><div class="quotecontent"><br />Ten minus też jest istotny, bo inaczej po nałożeniu ciężaru na sztangę wartość maleje.<br /></div><br />Tutaj mogę Ci podpowiedzieć, że prawie, że na pewno masz belkę tensometryczną na odwrót podpiętą. Kiedyś montowałem wagę na mierniku axis se-02 i tam w instrukcji jest takie mądre zdanie:<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Jesli podczas podłaczania belki tensometrycznej brakuje opisu wyprowadzen, należy wykorzystac omomierz w celu<br />identyfikacji wyprowadzen. +Exc i +Ref (+Sens) sa zwarte ze soba (od strony belki), –Exc i –Ref (-Sens) – również.<br />Jeżeli belka nie ma sygnałów +Ref i –Ref, w celu wyróżnienia +Exc i –Exc należy wybrac pare wyprowadzen,<br />pomiedzy którymi jest najwieksza opornosc (pomiedzy +Signal oraz –Signal opornosc jest mniejsza, gdyż nie ma<br />tam elementu kompensacji temperaturowej). <strong>Polaryzacje pozostałych połaczen +I oraz –I należy ustalic metoda<br />próby (dwie możliwosci). Przy wzroscie obciażenie wskazanie wagi bezposrednio z A/C (monitoring) powinno sie<br />zwiekszac.</strong><br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=15774">kamilck13</a> — 10 lis 2017, o 18:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[endlesik]]></name></author>
<updated>2017-10-30T00:53:20+01:00</updated>
<published>2017-10-30T00:53:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=198020#p198020</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=198020#p198020"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=198020#p198020"><![CDATA[
Temat trochę stary, ale jako że widzę, że niektórzy mają nadal z tym problem + sam trochę włosów powyrywałem szukając błędu...<br /><br />miors i reszta, szukająca błędu w skutek którego HX711 zwraca ciągle 8388623 itp.<br /><br />W powyższych kodach jest parę błędów - a przynajmniej tak mi się wydaje <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> <br />Mój, poniższy kod, działa idealnie.<br />[syntax=c]#include &lt;avr/io.h&gt;<br /><br />#define CLK_PIN 3<br />#define DAT_PIN 4<br /><br />int32_t read_count(void);<br /><br />int main(void)<br />{       <br />  DDRD |= (1&lt;&lt;CLK_PIN);     // XXXXXXXX | 00001000 = XXXX1XXX, CLK-&gt;OUTPUT  <br />  DDRD &amp;= ~(1&lt;&lt;DAT_PIN);    // XXXXXXXX &amp; 11101111 = XXX01XXX, DAT-&gt;INPUT<br />  PORTD &amp;= ~(1&lt;CLK_PIN);    // XXXXXXXX &amp; 11110111 = XXXX0XXX, CLK-&gt;LOW<br /><br /><br />  // Infinite loop<br />  while(1)<br />  {<br />    read_count(); // Get momentary weight<br />  }<br />  return 0;<br />}<br /><br />int32_t read_count(void)<br />{<br />  int32_t count = 0;<br />  while(!(PIND &amp; (1&lt;&lt;DAT_PIN))) // XXXXXXXX &amp; 00010000 = 000X0000, wait until DAT==LOW<br />  {<br />    for(uint8_t i = 0; i&lt;24; i++)<br />    {<br />      PORTD |= (1&lt;&lt;CLK_PIN);  // XXXXXXXX | 00001000 = XXXX1XXX, CLK-&gt;HIGH<br />      count = count&lt;&lt;1;<br />      PORTD &amp;= ~(1&lt;&lt;CLK_PIN); // XXXX1XXX &amp; 11110111 = XXXX0XXX, CLK-&gt;LOW<br />      if(PIND &amp; (1&lt;&lt;DAT_PIN)) count++;<br />    }<br />  <br />    PORTD |= (1&lt;&lt;CLK_PIN);  // XXXX0XXX | 00001000 = XXXX1XXX, CLK-&gt;HIGH<br />    count = count^0x800000;<br />    PORTD &amp;= ~(1&lt;&lt;CLK_PIN); // XXXX1XXX &amp; 11110111 = XXXX0XXX, CLK-&gt;LOW<br /><br />    return((-count/2000 + 4152));<br /><br />  }<br />}[/syntax]<br /><br />Gdzie to [syntax=c]-count/2000 + 4152[/syntax] w 40. linii to kalibracja wagi.. Może nie najlepsza, ale dla mnie działa. Ten minus też jest istotny, bo inaczej po nałożeniu ciężaru na sztangę wartość maleje. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Błędy z poprzednich postów:<br />[syntax=c]PORTx   &amp;= *TUTAJ POWINNA BYĆ NEGACJA* (1&lt;&lt;CLK_PIN);[/syntax] - Daniel880, bez tej negacji sam AND nie zeruje CLK_PIN, a zgodnie z DS, powinien być zerowany w tym miejscu.<br />[syntax=c]while(*TUTAJ TEŻ POWINNA BYĆ NEGACJA*(PINx &amp; (1&lt;&lt;DATA_PIN)));[/syntax] - Adam_Kot, nie wiem jak Tobie to tak działało, bo to bez negacji szuka &quot;1&quot;, czyli stanu kiedy HX711 nie jest gotowy do przesyłu danych <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br />A resztę, jak brak przesunięć bitowych zostały opisane już przez kolegów wyżej.<br /><br />Pozdrawiam!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18182">endlesik</a> — 30 paź 2017, o 00:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miors]]></name></author>
<updated>2017-02-16T14:50:24+01:00</updated>
<published>2017-02-16T14:50:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=182796#p182796</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=182796#p182796"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=182796#p182796"><![CDATA[
Hej<br />Czy komuś udało się poprawnie odczytywać dane z HX711? Męczę się z tym modułem od kilku dni i jedyne co mogę odczytać to ciągła wartość 8388623 ;/ Prosiłbym o jakąś podpowiedź<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3749">miors</a> — 16 lut 2017, o 14:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kamilck13]]></name></author>
<updated>2017-01-17T19:56:38+01:00</updated>
<published>2017-01-17T19:56:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=180068#p180068</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=180068#p180068"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=180068#p180068"><![CDATA[
W tym natłoku informacji pogubiłem się. Czy ktoś może mi zrobić tak w jednym komentarzu kompleksowo najprostszy program do modułu z hx711 (Czyli takie coś: <a href="https://pl.aliexpress.com/item/HX711-Weighing-Sensor-Dual-Channel-24-Bit-Precision-A-D-Module-Pressure-Sensor/1886314503.html?spm=2114.13010608.0.0.lni1fj"  class="postlink">https://pl.aliexpress.com/item/HX711-Weighing-Sensor-Dual-Channel-24-Bit-Precision-A-D-Module-Pressure-Sensor/1886314503.html?spm=2114.13010608.0.0.lni1fj</a>.), bo tu wiedzę każdy z jakimś defektem, opisanym w komentarzu niżej. Tylko odbiór danych z wyświetleniem sobie poradzę. Plus oczywiście schemat, najprostszy jak podłączyć belkę tensometryczną (posiadam zemic l6e), bo tu kolega krzysssztof pisał coś o podnoszeniu napięcia wejściowego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=15774">kamilck13</a> — 17 sty 2017, o 19:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robak]]></name></author>
<updated>2016-09-05T13:19:27+01:00</updated>
<published>2016-09-05T13:19:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=168014#p168014</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=168014#p168014"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=168014#p168014"><![CDATA[
W linii 62 zamiast<br />[syntax=c]while(PINB &amp; DATA_PIN);     //oczekiwanie na stan niski na DATA[/syntax]<br />powinno być:<br />[syntax=c]while(PINB &amp; (1&lt;&lt;DATA_PIN));     //oczekiwanie na stan niski na DATA[/syntax]<br /><br />Poprzedni zapis będzie działał ale jedynie w wypadku gdy DATA_PIN to PB0.<br />Mi też bardzo długo zajęło zanim udało mi się uruchomić poprawną komunikację z tym układem, ale teraz wygląda że wszystko działa dobrze.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4359">Robak</a> — 5 wrz 2016, o 13:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jaglarz]]></name></author>
<updated>2016-01-12T22:15:43+01:00</updated>
<published>2016-01-12T22:15:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=150397#p150397</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=150397#p150397"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=150397#p150397"><![CDATA[
<!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=471">Jaglarz</a> — 12 sty 2016, o 22:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pyszny21]]></name></author>
<updated>2016-01-13T15:01:25+01:00</updated>
<published>2016-01-09T10:13:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=150033#p150033</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=150033#p150033"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=150033#p150033"><![CDATA[
Hej <br />Meczę się już parę dni z modułem HX711 i nie mogę odczytać nic innego jak 8388608 nie wiem czy moduł jest uszkodzony czy ja coś źle robię.<br />oto mój kod <br />[syntax=c]#include &lt;stdlib.h&gt;<br />#include &lt;avr/io.h&gt; // dołączenie biblioteki AVR<br />#include &lt;util/delay.h&gt;// dołączenie biblioteki opóźnienie<br />#include &lt;avr/interrupt.h&gt;// biblioteka przerwań<br /><br />#include &quot;uart/muart.h&quot;<br /><br />#define CLK_PIN PB2<br />#define DATA_PIN PB3<br /><br />#define LED_B (1&lt;&lt;PC7)<br />#define LED_B_ON PORTC &amp;=~LED_B    //0<br />#define LED_B_OFF PORTC |=LED_B    //1<br />#define LED_B_TOG PORTC^=LED_B<br /><br />#define LED_C (1&lt;&lt;PD5)<br />#define LED_C_ON PORTD &amp;=~LED_C    //0<br />#define LED_C_OFF PORTD |=LED_C    //1<br />#define LED_C_TOG PORTD^=LED_C<br /><br />uint32_t ReadCount(void);<br />void Uart_liczbafff( unsigned long value );<br /><br /><br />int main(void)<br /><br />{<br />USART_Init(51);<br />DDRC|=(LED_B);<br />DDRD|=(LED_C);<br />DDRB    &amp;=~(1&lt;&lt;DATA_PIN);<br /><br />DDRB    |=(1&lt;&lt;CLK_PIN);<br />PORTB   &amp;=~(1&lt;&lt;CLK_PIN);<br /><br />sei();<br /><br />while(1)<br />{<br />LED_C_TOG;<br />LED_B_TOG;<br /><br />nowa_linia();<br />_delay_ms(800);<br /><br />Uart_liczbafff(ReadCount());<br /><br /><br /><br /><br /><br />}<br />}<br /><br />uint32_t ReadCount(void){<br />uint32_t Count;<br />uint8_t i;<br />PORTB  &amp;=(1&lt;&lt;CLK_PIN);<br />PORTB  |= (1&lt;&lt;DATA_PIN);<br /> Count=0;<br /><br /> while(PINB &amp; DATA_PIN);     //oczekiwanie na stan niski na DATA<br /> for (i=0;i&lt;24;i++){<br />        PORTB   |= (1&lt;&lt;CLK_PIN);<br />        Count=Count&lt;&lt;1;<br />        PORTB  &amp;=(1&lt;&lt;CLK_PIN);<br />        if(PINB &amp; DATA_PIN) Count++;<br />}<br /><br /> PORTB  |= (1&lt;&lt;CLK_PIN);<br /> Count=Count^0x800000;<br /> PORTB  &amp;=(1&lt;&lt;CLK_PIN);<br /> return(Count);<br />}<br /><br /><br /><br />ISR( USART_RX_vect )//zapis<br />{<br />odebranie();<br />}<br /><br />ISR(USART_UDRE_vect)// wysłanie<br />{<br />wyslanie();<br />}<br /><br /><br /><br /><br />void Uart_liczbafff( unsigned long value ) //wysyłanie liczby przez UART<br />{<br />char buf&#91;16&#93;, *p = buf;<br /><br />ltoa( value, buf, 10 );<br />while( *p ) USART_Transmit( *p++ );<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5529">pyszny21</a> — 9 sty 2016, o 10:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krzysssztof]]></name></author>
<updated>2015-11-08T18:39:27+01:00</updated>
<published>2015-11-08T18:39:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=144830#p144830</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=144830#p144830"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=144830#p144830"><![CDATA[
Bardzo się męczyłem z tym układem. Po iluś dniach ślęczenia i denerwowania się doczytałem w karcie:<br /><br />Common mode input -  min: AGND+1.2      max: AVDD-1.3<br /><br />Podniosłem napięcie wyjściowe z mostka do tego poziomu i zaczęło działać.<br />Co do wzmocnienia - chodzi o to, żeby napięcie różnicowe, przemnożone przez dane wzmocnienie nie przekroczyło napięcia odniesienia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4274">krzysssztof</a> — 8 lis 2015, o 18:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robak]]></name></author>
<updated>2015-11-06T13:52:44+01:00</updated>
<published>2015-11-06T13:52:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=144585#p144585</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=144585#p144585"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=144585#p144585"><![CDATA[
Hej <br />A czy napięcie wejściowe na przetwornik nie powinno się mieścić w zakresie +- 20mV lub +- 40 mV na kanale A w zależności od przyjętego wzmocnienia?<br />Co prawda to są rozważania czysto teoretyczne i to przy zasilaniu z 5V.<br /><br />&quot;Channel A can be programmed with a gain of 128 or 64, corresponding to a full-scale differential input voltage of ±20mV or ±40mV respectively, when <br />a 5V supply is connected to AVDD analog power supply pin&quot;<br /><br />Ciekawy jestem czy dopuszczalne napięcie wejściowe na kanałach A i B jest zależne od napięcia zasilania zasilania części analogowej. <br />Dopuszczalne napięcie zasilania układu i jak mam rozumieć również jego części analogowej wynosi od 2.6V do 5.5V. <br />Mniemam że jeżeli na wejście A przy mnożniku 128 podamy wartość napięcia 20mV to otrzymam cyfrowo wynik 7FFFFF niezależnie z jakiego napięcia będę zasilał układ HX711.<br />Przydałoby się to sprawdzić namacalnie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4359">Robak</a> — 6 lis 2015, o 13:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krzysssztof]]></name></author>
<updated>2015-10-29T19:44:15+01:00</updated>
<published>2015-10-29T19:44:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=143739#p143739</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=143739#p143739"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=143739#p143739"><![CDATA[
Panowie, potrzebuję pomocy.<br /><br />Zmontowałem układ jak na schemacie:<br /><a href="https://obrazkiforum.atnel.pl/4274/27cfe75d3900cfad1082e6c41c3cf220.JPG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/4274/27cfe75d3900cfad1082e6c41c3cf220.JPG" alt="Obrazek" /></a><br />Tutaj karta katalogowa HX711: <a href="http://www.dfrobot.com/image/data/SEN0160/hx711_english.pdf"  class="postlink">http://www.dfrobot.com/image/data/SEN0160/hx711_english.pdf</a>.<br />Napisałem sobie program komunikujący mikrokontroler z tym przetwornikiem i na moje oko działa poprawnie. Tak wygląda przebieg z komunikacji:<br /><a href="https://obrazkiforum.atnel.pl/4274/2d8a37619e180617965aecca79b3f739.JPG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/4274/2d8a37619e180617965aecca79b3f739.JPG" alt="Obrazek" /></a><br /><br />Mam 25 taktów zegara - z czego w trakcie 24 odczytuję wartość przetwornika, natomiast 25 konfiguruje przetwornik w tryb pomiaru kanału A, wzmocnienie 128.<br /><br />I teraz pierwszy problem: nie potrafię sobie otrzymanej wartości przeliczyć na wartość zmierzonego napięcia. Przetwornik jest 24 bitowy, czyli teoretycznie wartość 0V - 4,096V (napięcie odniesienia) powinien podzielić na 2^24 stopni. Ale jak to jest w momencie, gdy przetwornik jest różnicowy, czyli może podawać także napięcie ujemne?  W dokumentacji wyczytałem, że HX711 wynik przesyła w kodzie U2. Czy z tego wynika, że wartość 0V -4,096V prześle na 23 bitach?<br />Dodatkowo należy uwzględnić wzmocnienie x128, czyli tak na prawdę na tych 24(23?) bitach będę miał pomiar napięcia z zakresu 0V-32mV (a może -16mV - 16mV ? ). Pogubiłem się.<br /><br />Kolejny problem jest taki, że w momencie gdy zmieniam temperaturę PT100 (skok napięcia zmierzony multimetrem wynosi 1,5mV) - odczyty z przetwornika zmieniają się tylko dość nieznacznie, podczas gdy te 1,5mV to jest około 5% zakresu pomiarowego ...<br /><br />Czy ktoś mógłby wyjaśnić mi dokładniej tą sprawę i wskazać ewentualne błędy, które popełniam w schemacie podłączeń / logice przeliczania odczytu? A może coś źle w karcie katalogowej zrozumiałem?<br /><br />Krzysiek.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4274">krzysssztof</a> — 29 paź 2015, o 19:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krzysssztof]]></name></author>
<updated>2015-10-28T19:27:16+01:00</updated>
<published>2015-10-28T19:27:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=143563#p143563</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=143563#p143563"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=143563#p143563"><![CDATA[
Cześć.<br />Aktualnie też pracuję nad hx711. Dzisiaj polutowałem płytkę i właśnie próbuję ją oprogramować.<br /><br />Na pewno należy zwrócić uwagę, że przetwornik ten dokonuje pomiaru +/-, czyli musi przesyłać także liczby ujemne. Dlatego wynik zakodowany jest w kodzie U2(dopełnienie dwójkowe), które potem trzeba sobie przeliczyć na dziesiętny. Czyli ten Twój &quot;środek zakresu&quot;, to tak na prawdę okolice 0 <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Dodatkowo w karcie katalogowej jest informacja:  Input offset drift = 0.2mV (0.4mV w zależności od wzmocnienia) - czyli jeśli dobrze rozumiem, już na starcie można się spodziewać takiego niezrównoważenia.  Nie wiem tylko, czy jest ono stałe dla konkretnej sztuki przetwornika, czy może pływać w każdej chwili w tym zakresie <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> A tak się składa, że 0,2mV to dla mnie bardzo dużo.<br /><br />Edit: siedzę kolejną godzinę i nie wiem, jak wyliczyć rzeczywiste napięcie na podstawie odczytu z HX711 - coś mi matematyki i myślenia brakuje <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=4274">krzysssztof</a> — 28 paź 2015, o 19:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robak]]></name></author>
<updated>2015-10-28T10:40:53+01:00</updated>
<published>2015-10-28T10:40:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=143538#p143538</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=143538#p143538"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=143538#p143538"><![CDATA[
Witam<br />Zmontowałem podobny układ ale ponieważ nie mam z czym porównać,  czy mógłbym się dowiedzieć jaką wartość przesyła HX711 przy zwartych wejściach. U mnie jest to chyba połowa zakresu ale chciałbym się upewnić czy jest to poprawna wartość. <br /><br />Interesuje mnie jeszcze co robi poniższa linijka programu do obsługi HX711<br />[syntax]Count=Count^0x800000;[/syntax]<br />Programowo wiem że jest to XOR, ale jaką funkcję spełnia w programie - wygląda jakby przy zwartych wejściach ustawiał wynik na &quot;środek&quot; zakresu, czyli 8388608. <br /><br />Pozdrawiam<br />Robak<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4359">Robak</a> — 28 paź 2015, o 10:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Adam_Kot]]></name></author>
<updated>2015-08-28T20:25:11+01:00</updated>
<published>2015-08-27T20:50:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=138494#p138494</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=138494#p138494"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=138494#p138494"><![CDATA[
Zasilanie zrobiłem oddzielne na uC i na HX711 na LM78L05 .<br />A oto schemat:<br /><a href="https://obrazkiforum.atnel.pl/5252/a90bf021626870435b6b6537cc743188.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/5252/a90bf021626870435b6b6537cc743188.png" alt="Obrazek" /></a><br />I zdjęcie gotowej płytki PCB:<br /><a href="https://obrazkiforum.atnel.pl/5252/a1e6dd2bcccb6553472bf3005b7c055a.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/5252/a1e6dd2bcccb6553472bf3005b7c055a.jpg" alt="Obrazek" /></a><br />Jak na razie zastosowałem średnią geometryczną z 6 pomiarów. Jest nieco lepiej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5252">Adam_Kot</a> — 27 sie 2015, o 20:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daniel880]]></name></author>
<updated>2015-08-27T14:32:51+01:00</updated>
<published>2015-08-27T14:32:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=138466#p138466</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=138466#p138466"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=138466#p138466"><![CDATA[
Pierwsza sprawa: Jak zasilasz układ? W tym przypadku jest to ważniejsze niż zwykle.<br /><br />Druga sprawa: Spróbuj odczytać trochę danych i sprawdzić jaki rozklad wartości otrzymasz. Mógłbyś spróbować zastosować nadpróbkowanie zeby otrzymać stabilniejszą wartość albo zastosować jakiś filtr dolnoprzepustowy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2328">Daniel880</a> — 27 sie 2015, o 14:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Adam_Kot]]></name></author>
<updated>2015-08-28T20:32:07+01:00</updated>
<published>2015-08-27T14:16:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=138465#p138465</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=138465#p138465"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=138465#p138465"><![CDATA[
Dziękuję za gotowy kod.<br />Wszystko ruszyło, tylko trzeba było poprawić jedną linijkę.<br />Zamiast:<br /> <div class="codetitle"><b>Code:</b></div><div class="codecontent">while(!(PINx &amp; DATA_PIN));     //oczekiwanie na stan niski na DATA</div><br />trzeba zmienić na: <br /> <div class="codetitle"><b>Code:</b></div><div class="codecontent">while(PINx &amp; DATA_PIN);     //oczekiwanie na stan niski na DATA</div><br /> <br /><br />Dręczy mnie jeszcze jedna rzecz, mianowicie stabilność pomiaru tych układów (HX711).<br />posiadam ten układ:<br /><a href="https://obrazkiforum.atnel.pl/5252/d836c4b16cb4556d1c39b4c316768bc8.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/5252/d836c4b16cb4556d1c39b4c316768bc8.jpg" alt="Obrazek" /></a><br />schemat tego układu:<br /><a href="https://obrazkiforum.atnel.pl/5252/39db6fc297938a2d3d8caa077de061f4.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/5252/39db6fc297938a2d3d8caa077de061f4.png" alt="Obrazek" /></a><br />Wykorzystuję wejście A i wzmocnienie równe 128. 24 bity to dziesiętne max. 16777215.<br />Podczas odczytu nawet przy zwartych ze sobą (IN+) i (IN-) wynik pomiarów pływa ciągle w zakresie ok.  200 max. 300  jednostek.<br />Skoki są ciągłe po 80, 50 jednostek, różnie.<br />I tutaj pytanie czy tak po prostu ma być czy coś robię nie tak?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5252">Adam_Kot</a> — 27 sie 2015, o 14:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daniel880]]></name></author>
<updated>2015-07-12T19:29:57+01:00</updated>
<published>2015-07-12T19:29:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=134324#p134324</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=134324#p134324"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=134324#p134324"><![CDATA[
Po przeczytaniu dokumentacji i lekkim przerobieniu programu na końcu masz szkielet programu. Musiałbyś jeszcze sprawdzić czy sygnał zegarowy mieści się w tym co pisze dokumentacja. Ale dla częstotliwości taktowania 8MHz powinno być w porządku.<br /><br />[syntax=c]#define DATA_PIN PXy<br />#define CLK_PIN PXy<br /><br />DDRx&amp;=~(1&lt;&lt;DATA_PIN);<br />DDRx|=(1&lt;&lt;CLK_PIN);<br />PORTx&amp;=~(1&lt;&lt;CLK_PIN);<br /><br /><br />uint32_t ReadCount(void);<br /><br /><br />int main(){<br /><br />whiile(1){<br />ReadCount();<br />}<br /><br />}<br /><br />uint32_t ReadCount(void){<br />uint32_t Count;<br />uint8_t i;<br /> Count=0;<br /> while(!(PINx &amp; DATA_PIN));//oczekiwanie na stan niski na DATA<br /> <br /> for (i=0;i&lt;24;i++){<br />PORTx|= (1&lt;&lt;CLK_PIN);<br />Count=Count&lt;&lt;1;<br />PORTx&amp;=(1&lt;&lt;CLK_PIN);<br />if(PIN &amp; DATA_PIN) Count++;<br />}<br /><br /> PORTx|= (1&lt;&lt;CLK_PIN);<br /> Count=Count^0x800000;<br /> PORTx&amp;=(1&lt;&lt;CLK_PIN);<br /> return(Count);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2328">Daniel880</a> — 12 lip 2015, o 19:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Adam_Kot]]></name></author>
<updated>2015-07-12T13:00:09+01:00</updated>
<published>2015-07-12T13:00:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=134287#p134287</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=134287#p134287"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=134287#p134287"><![CDATA[
Tak zgadza się, tylko sporo jest napisane w asm. A dla mnie było by idealnie aby ktoś podzielił się kodem napisanym w C pod AVR najlepiej z projektu wagi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5252">Adam_Kot</a> — 12 lip 2015, o 13:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[yaiba83]]></name></author>
<updated>2015-07-12T10:02:03+01:00</updated>
<published>2015-07-12T10:02:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=134259#p134259</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=134259#p134259"/>
<title type="html"><![CDATA[Re: Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=134259#p134259"><![CDATA[
No a na samym dole dokumentacji nie masz gotowego kodu źródłowego w C do obsługi tego układu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2332">yaiba83</a> — 12 lip 2015, o 10:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Adam_Kot]]></name></author>
<updated>2015-07-12T09:37:54+01:00</updated>
<published>2015-07-12T09:37:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=134257#p134257</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=134257#p134257"/>
<title type="html"><![CDATA[Obsługa HX711 w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12290&amp;p=134257#p134257"><![CDATA[
Witam. <br />Czy ktoś z szanownych kolegów próbował napisać bibliotekę do obsługi układu HX711 tj. przetwornika ADC stworzonego do współpracy z czujnikami tensometrycznymi.<br /><a href="https://cdn.sparkfun.com/datasheets/Sensors/ForceFlex/hx711_english.pdf"  class="postlink">Link do dokumentacji układu HX711</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5252">Adam_Kot</a> — 12 lip 2015, o 09:37</p><hr />
]]></content>
</entry>
</feed>