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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=17519&amp;mode</id>
<entry>
<author><name><![CDATA[krish]]></name></author>
<updated>2017-02-02T20:02:00+01:00</updated>
<published>2017-02-02T20:02:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17519&amp;p=181460#p181460</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17519&amp;p=181460#p181460"/>
<title type="html"><![CDATA[Re: Atmega 328 ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17519&amp;p=181460#p181460"><![CDATA[
Przeanalizuj te linki:<br /><a href="https://uglyduck.ath.cx/ep/archive/2014/01/Making_a_better_HC_SR04_Echo_Locator.html"  class="postlink">https://uglyduck.ath.cx/ep/archive/2014/01/Making_a_better_HC_SR04_Echo_Locator.html</a><br /><a href="http://ep.com.pl/artykuly/10704-Ultradzwiekowe_pomiary_odleglosci.html"  class="postlink">http://ep.com.pl/artykuly/10704-Ultradzwiekowe_pomiary_odleglosci.html</a><br /><br />I załącz jakiś poprawny schemat, a nie zlepek nie wiadomo skąd i nie wiadomo jak naprawdę połączonych części ( masz mierzyć ADC0 czy ADC5?).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2273">krish</a> — 2 lut 2017, o 20:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cepoludek]]></name></author>
<updated>2017-02-02T18:55:38+01:00</updated>
<published>2017-02-02T18:55:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17519&amp;p=181454#p181454</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17519&amp;p=181454#p181454"/>
<title type="html"><![CDATA[Re: Atmega 328 ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17519&amp;p=181454#p181454"><![CDATA[
1. Problem w tym ze ten przebieg wygląda tak gdy w głównej pętli dam funkcji toggle();, gdy wystartuje cały program taki jak zamieściłem, sygnał nie wygląda jak na przebiegu tylko pokazują się pojedyncze szpilki i ogólnie sygnał strasznie pływa, nie wiem dlaczego, przez co nie mogę w jakikolwiek sposób zmierzyć <br />Dodam jeszcze że zasilanie doprowadzam ze stabilizowanego źródła 5V .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16304">cepoludek</a> — 2 lut 2017, o 18:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krish]]></name></author>
<updated>2017-02-02T18:29:54+01:00</updated>
<published>2017-02-02T18:29:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17519&amp;p=181452#p181452</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17519&amp;p=181452#p181452"/>
<title type="html"><![CDATA[Re: Atmega 328 ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17519&amp;p=181452#p181452"><![CDATA[
Masz już przecież sygnał cyfrowy z wejścia przetwornika ( po komparatorze), to po co używać ADC ? Zmierz czas pomiędzy zboczem opadającym pierwszego impulsu a zboczem narastającym  drugiego impulsu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2273">krish</a> — 2 lut 2017, o 18:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cepoludek]]></name></author>
<updated>2017-02-02T18:12:57+01:00</updated>
<published>2017-02-02T18:12:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17519&amp;p=181450#p181450</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17519&amp;p=181450#p181450"/>
<title type="html"><![CDATA[Atmega 328 ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17519&amp;p=181450#p181450"><![CDATA[
Witam. <br />Mam następujący problem. Próbuje stworzyć dalmierz ultradźwiękowy.<br />Sygnał wychodzący na przetwornik ultradźwiękowy podaje na przemian z pinu PB0 na + oraz PB1 na minus.<br />Po przepuszczeniu tego przez filtr ze wzmocnieniem<br />Udało mi się osiągnąć taki oto przebieg:<br /><a href="https://obrazkiforum.atnel.pl/16304/548e4942c1bcb0d6c066514c220fe6bd.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/16304/548e4942c1bcb0d6c066514c220fe6bd.png" alt="Obrazek" /></a><br />Pierwszy sygnał przefiltrowany i wzmocniony <br />Drugi sygnał to napięcie już za komparatorem który podaje bezpośrednio na wejście przetwornika ADC. <br />Teraz chciałbym zmierzyć czas odbicia echa i na jego podstawie określić odległość od przeszkody.<br />Problem polega na tym że gdy ruszę już program, sygnał strasznie pływa co powoduje powstawanie pików które powodują że ADC wariuje i nie potrafi wyświetlić żadnego wyniku.<br />I tu pytanie, czy problem polega na złym oprogramowaniu czy złym podłączeniu.<br />Atmega odfiltrowana w ten sposób jak na schemacie:<br /><a href="https://obrazkiforum.atnel.pl/16304/0cef18cd8d975fe847fee9f479dd5656.gif"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/16304/0cef18cd8d975fe847fee9f479dd5656.gif" alt="Obrazek" /></a><br /><br />Filtr wygląda w ten sposób, z tym że na końcu dodałem jeszcze detektor szczytowy który dałem na komparator lm311. <br /><br /><a href="https://obrazkiforum.atnel.pl/16304/e2cca81a064db7e34c961089fcc793d4.PNG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/16304/e2cca81a064db7e34c961089fcc793d4.PNG" alt="Obrazek" /></a><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />int main(void)<br />{<br />  <br />lcd_init();// inicjalizacja LCD<br />DDRB |= (1&lt;&lt;PINB1);// Ustawienie pinb1 jako wyjscie<br />Konfiguracja_ADC();// Konfiguracja ADC    <br />sei();                   // Enable global interrupts<br /><br />   <br />while(1)<br /><br />{<br /><br />toggle();// Wyslanie sygnalu na przetwornik ultradzwiekowy<br />_delay_ms(3);// Czekanie aż ucichnie nadajnik<br /><br /><br />TCCR1B |= (1&lt;&lt;CS11) ;     // Wlaczenie timera 16 bitowego z  1 MHz  ( 0.000001 s) <br />ADCSRA |= (1&lt;&lt;6);  // Włączenie konwersji adc<br /><br /><br />_delay_ms(20);<br /><br />lcd_cls();<br /><br />lcd_locate(0,0);<br />lcd_str(&quot;ADC:        TIMER:&quot;);<br />lcd_locate(1,0);<br />lcd_int(Wynik);<br />lcd_locate(1,12);<br />lcd_int(c);<br /><br />}<br /><br /><br />}<br /><br /><br />void toggle(){<br />DDRB |= (1&lt;&lt;PINB0);// pinb0 jako wyjscie<br /><br /><br />for(int i = 0 ; i&lt;8; i++){//Wyslanie 8 peaków 40 khZ przelaczanie na zmiane pb1 i pb0<br />PORTB |= (1&lt;&lt;PINB0);<br />PORTB &amp;= ~(1&lt;&lt;PINB1);<br />_delay_us(12);<br />PORTB &amp;= ~(1&lt;&lt;PINB0);<br />PORTB |= (1&lt;&lt;PINB1);<br />_delay_us(12);<br /><br />}<br /> DDRB &amp;= ~(1&lt;&lt;PINB0);<br /> PORTB &amp;= ~(1&lt;&lt;PINB0); // wejscie / wysoka impedancja    ( Tu podlaczony plus przetwornika)<br /> PORTB &amp;= ~(1&lt;&lt;PINB1); // wyjscie w stanie niskim   ( Tu podlaczony minus przetwornika)<br /><br />}<br /><br /><br />void Konfiguracja_ADC()<br />{<br />ADMUX |= (1&lt;&lt;REFS0); // Ustawienie Uref na Vcc + kondensator<br /><br />// Domyślnie Admux = 0 daje adchannel 0<br />ADCSRA |= ((1&lt;&lt;ADEN) | (1&lt;&lt;3) | (1&lt;&lt;ADATE)); // Wlaczenie ADC // przerwania  // Wlaczenie trigera ( Free running)<br />ADCSRA |= ((1&lt;&lt;ADPS1) | (1&lt;&lt;ADPS2)); // prescaler 64  to daje 125 kHz<br /><br />}<br /><br /><br /><br />ISR(ADC_vect)<br />{<br />if (ADC &gt; 615)// Jezeli przekroczy 2.5 V <br /><br />{<br /><br />//ADCSRA &amp;= ~(1&lt;&lt;6);<br />TCCR1B = 0;// Zatrzymaj timer<br />Wynik = ADC;// Wynik ADC Do zmiennej wynik<br />c= TCNT1;// Wartosc timera do zmiennej c <br />TCNT1 =0;// Wyzerowanie timera <br />ADCSRA &amp;= ~(1&lt;&lt;6);// Zatrzymanie konwersji     ( Probowalem rowniez to zrobic na poczatku IRQ)<br /><br />}<br />else Wynik = 0;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16304">cepoludek</a> — 2 lut 2017, o 18:12</p><hr />
]]></content>
</entry>
</feed>