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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-07-20T08:37:50+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=22&amp;t=12343&amp;mode</id>
<entry>
<author><name><![CDATA[ostap]]></name></author>
<updated>2015-07-20T08:37:50+01:00</updated>
<published>2015-07-20T08:37:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134972#p134972</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134972#p134972"/>
<title type="html"><![CDATA[Re: Klawiatura 4x4 ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134972#p134972"><![CDATA[
<div class="quotetitle">mokrowski napisał(a):</div><div class="quotecontent"><br />1. Myślę że podejście ze zdefiniowaniem wartości centralnej oraz tolerancji, uczyni wykrywanie wciśnięć klawiszy mniej podanym na błędy związane z niedokładnością rezystorów lub zmianami warunków zewnętrznych.<br />2. Po zgłoszeniu przerwania zewnętrznego INT0 w obsłudze, warto uruchomić pomiar ADC i poczekać na zgłoszenie przerwania związanego z zakończeniem jego obsługi (obsługi przerwania zakończenia konwersji ADC). Takie podejście uwolni moc obliczeniową traconą w aktywnej pętli while() (linia 53 przykładu).<br />3. Wyszukiwanie liniowe z linii 124, średnio do znalezienia klawisza potrzebuje przeglądu 8 wartości tablicy klawiszy (optymistycznie 1 bo od razu trafi, pesymistycznie 16 bo dopiero ostatni dopasuje... przypadek braku dopasowania już pomijam). To mało efektywny algorytm jeśli wartości są posortowane. Warto wtedy użyć wyszukiwania binarnego. W tym przypadku będą to średnio 4 porównania do znalezienia wartości.<br /></div><br /><br />1. Zyskujemy tylko miejsce w pamieci FLASH i RAM.<br />2. Bardzo dobry pomysł. Zrobione.<br />3. Również bardzo dobry pomysł. Zrobione.<br /><br />Poprawiony kod zostawiam w załączniku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10083">ostap</a> — 20 lip 2015, o 08:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wirnick]]></name></author>
<updated>2015-07-17T09:30:48+01:00</updated>
<published>2015-07-17T09:30:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134777#p134777</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134777#p134777"/>
<title type="html"><![CDATA[Re: Klawiatura 4x4 ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134777#p134777"><![CDATA[
Wiem - funkcja float jest tylko do prezentacji wyników, ale zabiera 3%(3064B) zasobów flash. To tylko taka uwaga  <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=9272">Wirnick</a> — 17 lip 2015, o 09:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ostap]]></name></author>
<updated>2015-07-17T08:27:48+01:00</updated>
<published>2015-07-17T08:27:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134774#p134774</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134774#p134774"/>
<title type="html"><![CDATA[Re: Klawiatura 4x4 ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134774#p134774"><![CDATA[
<div class="quotetitle">pikczu napisał(a):</div><div class="quotecontent"><br />Feryty stosuje się do blokowania zakłóceń. Klawiatura działa jak antena więc wskazane jest dołożenie ferytu aby zablokować zakłócenia wysokiej częstotliwości.<br />Dodatkowo przydał by się warystor lub dioda dwu kierunkowa zabezpieczająca przed ESD<br /></div><br />Bardzo cenna wskazówka!<br /><br />Opiszę rezultaty jak tylko dostanę w swoje ręce brakujące komponenty!<br />Dziękuję wszystkim za rady aby ulepszyć projekt!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10083">ostap</a> — 17 lip 2015, o 08:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pikczu]]></name></author>
<updated>2015-07-16T20:12:09+01:00</updated>
<published>2015-07-16T20:12:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134741#p134741</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134741#p134741"/>
<title type="html"><![CDATA[Re: Klawiatura 4x4 ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134741#p134741"><![CDATA[
Feryty stosuje się do blokowania zakłóceń. Klawiatura działa jak antena więc wskazane jest dołożenie ferytu aby zablokować zakłócenia wysokiej częstotliwości.<br />Dodatkowo przydał by się warystor lub dioda dwu kierunkowa zabezpieczająca przed ESD<a href="http://www.tme.eu/pl/katalog/#id_category=112928&amp;search=feryt&amp;page=1&amp;s_field=accuracy&amp;s_order=DESC"  class="postlink">http://www.tme.eu/pl/katalog/#id_category=112928&amp;search=feryt&amp;page=1&amp;s_field=accuracy&amp;s_order=DESC</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=154">pikczu</a> — 16 lip 2015, o 20:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ostap]]></name></author>
<updated>2015-07-16T08:06:06+01:00</updated>
<published>2015-07-16T08:06:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134686#p134686</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134686#p134686"/>
<title type="html"><![CDATA[Re: Klawiatura 4x4 ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134686#p134686"><![CDATA[
<div class="quotetitle">mokrowski napisał(a):</div><div class="quotecontent"><br />Coś tam w kodzie można oczywiście jeszcze poprawić.<br /></div><br />Kod był pisany na kolanie i zawsze można coś poprawić <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Z miłą chęcią przyjmę każdą zmianę, która pomoże!<br /><br /><div class="quotetitle">gordon10 napisał(a):</div><div class="quotecontent"><br />Testowałeś to jakoś kolego?<br /></div><br />Jeśli odczyty będą stabilne, to wynik będzie prawidłowy. Ważne jest aby odczyty nie nachodziły n a siebie wartościami. To jest coś o czym pisze kolega mokrowski.<br /><br />Podłączyłem inną klawiaturę i odczyty się zmieniły.<br />Potrzebuję więc stabilniejszych odczytów.<br /><br /><div class="quotetitle">pikczu napisał(a):</div><div class="quotecontent"><br />Warto dodać mały kondensator i feryt na wejście.<br />Wszystkie rezystory z tolerancją 1% lub lepszą.<br /></div><br />Niestety nie mam na daną chwilę lepszych rezystorów. <br />Nie wiem co to jest feryt, do czego służy i gdzie go można kupić?<br /><br /><div class="quotetitle">pikczu napisał(a):</div><div class="quotecontent"><br />rozwiązanie jest bardzo dobre i bardzo użyteczne używam klawiatury ADC w moim projekcie już ponad dwa lata i nie mam z nią żadnych problemów.<br /></div><br />Dla mnie sygnał jest jeden - idziesz w dobrą stronę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />-----------------------<br />Edit<br />-----------------------<br />Zmieniony schemat:<br /><a href="http://forum.atnel.pl/_obrazki/o/10083/e025c73ef85bff4c6ad8cece2c030d5b.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/10083/e025c73ef85bff4c6ad8cece2c030d5b.png" alt="Obrazek" /></a><br /><br />Po po zmianie kodu - dostosowaniu wartości do nowej klawiatury oraz dodaniu kondensatora ceramicznego 100uF (dzięki <strong>pikczu</strong>!) wartości są bardzo stabilne.<br /><a href="http://forum.atnel.pl/_obrazki/o/10083/f1363d6ead2a10d4bc46c4123a6d5619.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/10083/f1363d6ead2a10d4bc46c4123a6d5619.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10083">ostap</a> — 16 lip 2015, o 08:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pikczu]]></name></author>
<updated>2015-07-16T07:33:21+01:00</updated>
<published>2015-07-16T07:33:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134682#p134682</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134682#p134682"/>
<title type="html"><![CDATA[Re: Klawiatura 4x4 ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134682#p134682"><![CDATA[
Przy odpowiednim dobraniu rezystorow można wciskać kilka przycisków na raz i rozpoznawac ukryte funkcję<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=154">pikczu</a> — 16 lip 2015, o 07:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-07-15T22:20:26+01:00</updated>
<published>2015-07-15T22:20:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134670#p134670</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134670#p134670"/>
<title type="html"><![CDATA[Re: Klawiatura 4x4 ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134670#p134670"><![CDATA[
Bardzo fajny projekt - nawet gdyby miał być tylko do celów edukacyjnych. Ja wręcz POLECAM początkującym w dziedzinie ADC zrobienie czegoś takiego dla treningu - wtedy ADC wchodzi o wiele szybciej do głowy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />A tak nawiasem mówiąc to widziałem sam na własne oczy klawiaturki analogowe na więcej niż 5-10 klawiszy i to w urządzeniach krótkofalarskich <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... co ciekawe były akurat realizowane na AVR'ku (ATmega48 albo 88) ... spisywały się świetnie. Ale też trzeba przyznać, że nie była to jakaś mega masowa produkcja.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 lip 2015, o 22:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pikczu]]></name></author>
<updated>2015-07-15T19:58:12+01:00</updated>
<published>2015-07-15T19:58:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134637#p134637</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134637#p134637"/>
<title type="html"><![CDATA[Re: Klawiatura 4x4 ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134637#p134637"><![CDATA[
Witam rozwiązanie jest bardzo dobre i bardzo użyteczne używam klawiatury ADC w moim projekcie już ponad dwa lata i nie mam z nią żadnych problemów.<br />Warto dodać mały kondensator i feryt na wejście.<br />Wszystkie rezystory z tolerancją 1% lub lepszą.<br />Warto też kupić markowe przyciski np firmy Omron.<br /><a href="http://forum.atnel.pl/_obrazki/o/154/fa9f5acee8a81a70e11cd9d598d64dd2.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/154/fa9f5acee8a81a70e11cd9d598d64dd2.jpg" alt="Obrazek" /></a><br /><a href="http://forum.atnel.pl/_obrazki/o/154/b9d25862901e55a63f5e71254774d71e.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/154/b9d25862901e55a63f5e71254774d71e.jpg" alt="Obrazek" /></a><br /><br />Kod napisany w Bascom AVR<br /><br />[syntax=basic4gl]'-------------------------------------------------------------------------------<br />' By Pawel aka Pikczu 2013-2015<br />'version 1.4<br />'Know bugs: Using select case AND statment is not suported syntax by Bascom Version 2.0.7.9<br />'According to Mark Alberts<br />' http://www.mcselec.com/index2.php?option=com_forum&amp;Itemid=59&amp;page=viewtopic&amp;t=12981<br />' How ever test done by me confirm it does work very well<br />'-------------------------------------------------------------------------------<br />' name to include: $include &quot;Sub convert_adc_button.inc&quot;<br />'-------------------------------------------------------------------------------------<br />'-------------------You need to declare global variable in main.bas-------------------<br />'Dim Func_button As Byte                                     'function buttons under display<br />'Dim Key_flg As Byte                                         ' variable for nesting to avoid multiple action<br />'Dim Key_button As Word                                      'variable for  adc keypad buttons<br />'Dim Up_stop_down As Byte                                    ' cursors buttons<br />'-------------------------------------------------------------------------------<br />'Dim Analog0 As Word                                         'numeric keypad<br />'Dim Analog1 As Word                                         'up, stop, down<br />'Dim Analog2 As Word                                         ' under screen buttons<br />'-----------------------Optional Alias name to declare--------------------------<br />'----------------------ADC keypad alias-----------------------------------------<br />'Key_1 Alias Key_button.1<br />'Key_2 Alias Key_button.2<br />'Key_3 Alias Key_button.3<br />'Key_4 Alias Key_button.4<br />'Key_5 Alias Key_button.5<br />'Key_6 Alias Key_button.6<br />'Key_7 Alias Key_button.7<br />'Key_8 Alias Key_button.8<br />'Key_ * Alias Key_button.9<br />'Key_0 Alias Key_button.0<br />'Key_9 Alias Key_button.10<br />'Key_enter Alias Key_button.11<br />'-----------------five buttons under the screen---------------------------------<br />'-------------------------------------------------------------------------------<br />'Key_park Alias Func_button.0<br />'Key_menu Alias Func_button.1<br />'Key_preset Alias Func_button.2<br />'Key_mode Alias Func_button.3<br />'Key_lsp Alias Func_button.4<br />'-------------------------------------------------------------------------------<br />'-------------------------------------------------------------------------------<br />'Key_up Alias Up_stop_down.0<br />'Key_down Alias Up_stop_down.1<br />'Key_stop Alias Up_stop_down.2<br />'Key_up_stop Alias Up_stop_down.3                            'spare for momnet<br />'Key_stop_down Alias Up_stop_down.4                          'spare for moment<br />'Key_up_down Alias Up_stop_down.5                            'spare for moment<br />'-------------------------------------------------------------------------------<br />' How to use it:<br /> 'nesting is reqired same as with normal buttons<br />  'If Key_menu = 1 Then                          'Key_menu Alias Func_button.1<br />        'If Func_button_flag.1 = 0 Then<br />            'Func_button_flag.1 = 1                'lock button<br />     'your code here<br />        'Un nesting is done by checking adc value in code below<br />        'for expamle line 82(Func_button = 0 )<br />        'End If<br />    'End If<br />'-------------------------------------------------------------------------------<br />$nocompile<br /><br />Sub Convert_adc_button:<br />   Analog0 = Getadc(0)<br /><br />   Analog1 = Getadc(1)<br /><br />   Analog2 = Getadc(2)<br />                                               ' lsp, mode, menue, preset , park<br />   Dbg                                            'for stack debug<br />   If Analog0 &lt; 10 And Key_button &lt;&gt; 0 Then<br />      Key_button = 0<br />      Key_button_flag = 0<br />      Debug &quot;key_button_relesed&quot;<br />   End If<br />   If Analog1 &lt; 10 And Up_stop_down &lt;&gt; 0 Then<br />      Up_stop_down = 0<br />      Up_stop_down_flag = 0<br />      Debug &quot;UP_stop_down_relesed&quot;<br />   End If<br />   If Analog2 &lt; 10 And Func_button &lt;&gt; 0 Then<br />      Func_button = 0<br />      Func_button_flag = 0<br />      Debug &quot;function_button_relesed&quot;<br />   End If<br /><br />   Select Case Analog0<br /><br /><br />      Case 985 To 1023 And Key_button.1 = 0:<br />         Key_button.1 = 1<br />         Debug &quot;key_1&quot;<br />      Case 965 To 975 And Key_button.2 = 0:<br />         Key_button.2 = 1<br />         Debug &quot;key_2&quot;<br />      Case 910 To 930 And Key_button.3 = 0:<br />         Key_button.3 = 1<br />         Debug &quot;key_3&quot;<br />      Case 865 To 890 And Key_button.4 = 0:<br />         Key_button.4 = 1<br />         Debug &quot;key_4&quot;<br />      Case 690 To 720 And Key_button.5 = 0:<br />         Key_button.5 = 1<br />         Debug &quot;key_5&quot;<br />      Case 665 To 680 And Key_button.6 = 0:<br />         Key_button.6 = 1<br />         Debug &quot;key_6&quot;<br />      Case 645 To 659 And Key_button.7 = 0:<br />         Key_button.7 = 1<br />         Debug &quot;key_7 &quot;<br />      Case 625 To 635 And Key_button.8 = 0:<br />         Key_button.8 = 1<br />         Debug &quot;key_8&quot;<br />      Case 600 To 614 And Key_button.9 = 0:<br />         Key_button.9 = 1<br />         Debug &quot;key_*&quot;<br />      Case 579 To 590 And Key_button.0 = 0:<br />         Key_button.0 = 1<br />         Debug &quot;key_0&quot;<br />      Case 568 To 575 And Key_button.10 = 0:<br />         Key_button.10 = 1<br />         Debug &quot;key_9&quot;<br />      Case 540 To 560 And Key_button.11 = 0:<br />         Key_button.11 = 1<br />         Debug &quot;Key_enter&quot;<br /><br /><br />   End Select<br />                                    ' up, stop, down<br />   Select Case Analog1<br /><br /><br />      Case 695 To 710 And Up_stop_down.0 = 0:     'key up<br />         Up_stop_down.0 = 1<br />         Debug &quot;Key_UP: &quot;<br /><br />      Case 590 To 620 And Up_stop_down.1 = 0:     'Key down<br />         Up_stop_down.1 = 1<br />         Debug &quot;Key_Down: &quot;<br />      Case 315 To 335 And Up_stop_down.2 = 0:     ' Key stop<br />         Up_stop_down.2 = 1<br />         Debug &quot;Key_Stop&quot;<br />      Case 740 To 750 And Up_stop_down.3 = 0:     'Key up and stop<br />         Up_stop_down.3 = 1<br />         Debug &quot;key_up and down&quot;<br />      Case 670 To 685 And Up_stop_down.4 = 0:     ' key stop and down<br />         Up_stop_down.4 = 1<br />         Debug &quot;key_stop and down&quot;<br />      Case 790 To 810 And Up_stop_down.5 = 0:     ' key up and down<br />         Up_stop_down.5 = 1<br />         Debug &quot;key_up and down&quot;<br /><br /><br />   End Select<br /><br />   Select Case Analog2<br /><br /><br />      Case 300 To 350 And Func_button.0 = 0:      '<br />         Func_button.0 = 1<br />         Debug &quot;key_Park&quot;<br />      Case 540 To 555 And Func_button.1 = 0:<br />         Func_button.1 = 1<br />         Debug &quot;key_Menue&quot;<br />      Case 690 To 710 And Func_button.2 = 0:<br />         Func_button.2 = 1<br />         Debug &quot;Key_preset&quot;<br />      Case 600 To 610 And Func_button.3 = 0:      'alias Key_mode<br />         Func_button.3 = 1<br />         Debug &quot;Key_Mode&quot;<br />      Case 1000 To 1023 And Func_button.4 = 0:<br />         Func_button.4 = 1<br />         Debug &quot;Key_LSP&quot;<br /><br />   End Select<br />End Sub[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=154">pikczu</a> — 15 lip 2015, o 19:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gordon10]]></name></author>
<updated>2015-07-15T17:36:09+01:00</updated>
<published>2015-07-15T17:36:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134620#p134620</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134620#p134620"/>
<title type="html"><![CDATA[Re: Klawiatura 4x4 ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134620#p134620"><![CDATA[
Fajny pomysł z tą klawiaturką, żeby zaoszczędzić trochę pinów w procku. <br />Z tego co wiem to rozwiązanie działa jednak dość powolnie. Jednak z tego co widać na zdjęciach raczej dość stabilnie (min i max wskazanie ADC jest praktycznie identyczne). Ciekawe jak to się sprawdzi w jakimś konkretnym przykładzie. Testowałeś to jakoś kolego?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=968">gordon10</a> — 15 lip 2015, o 17:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ostap]]></name></author>
<updated>2015-07-15T12:48:55+01:00</updated>
<published>2015-07-15T12:48:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134602#p134602</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134602#p134602"/>
<title type="html"><![CDATA[Klawiatura 4x4 ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12343&amp;p=134602#p134602"><![CDATA[
<img src="http://forum.atnel.pl/_obrazki/o/54/5775525148403c3e84ae4d8a19a32f8e.jpg" alt="Obrazek" /><br />Witam wszystkich.<br /><br />Pracując nad projektem wykorzystuję klawiaturę membranową 4x4. Do tej pory łączyłem ową klawiaturę do uC wykorzystując 8 pinów uC.<br />Czytając niebieską książkę natknąłem się na rozdział 4.8.1 o klawiaturze analogowej.<br />Postanowiłem wykorzystać pomysł i zastosować w moim projekcie.<br /><br />Założenia:<br />- wykorzystanie klawiatury 4x4 (16 przycisków)<br />- minimalne wykorzystanie pinów<br />- wybudzenie uC z uśpienia<br /><br />Schemat:<br /><a href="http://forum.atnel.pl/_obrazki/o/10083/3c2117e89c488b20e3c7e1e54df0591e.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/10083/3c2117e89c488b20e3c7e1e54df0591e.png" alt="Obrazek" /></a><br /><br />Podłączona klawiatura do zestawu ATB:<br /><a href="http://forum.atnel.pl/_obrazki/o/10083/b93ffbb5d5c3dd698b5b51e334f5bccc.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/10083/b93ffbb5d5c3dd698b5b51e334f5bccc.JPG" alt="Obrazek" /></a><br /><a href="http://forum.atnel.pl/_obrazki/o/10083/e101ceea50dbac7778aadc5404013f0b.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/10083/e101ceea50dbac7778aadc5404013f0b.JPG" alt="Obrazek" /></a><br /><br />Działanie:<br /><br />Objaśnienie co jest na wyświetlaczu:<br />U: [mierzone_napięcie] V [minimalny_adc]<br />C: [licznik] [mierzone_adc] [maksymalne_adc]<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/10083/2cfa73f8df888a362a0a863759869a38.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/10083/2cfa73f8df888a362a0a863759869a38.JPG" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/10083/4da35e358928b1b549ec1fe84783cc78.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/10083/4da35e358928b1b549ec1fe84783cc78.JPG" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/10083/cc7b4c8b9ecb31a1c0f6d5c76cf74a3e.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/10083/cc7b4c8b9ecb31a1c0f6d5c76cf74a3e.JPG" alt="Obrazek" /></a><br /><a href="http://forum.atnel.pl/_obrazki/o/10083/da70750e85fbf046348550e241c3c4b0.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/10083/da70750e85fbf046348550e241c3c4b0.JPG" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/10083/7a15ceee48eb71b0868e678690db020f.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/10083/7a15ceee48eb71b0868e678690db020f.JPG" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/10083/1bbc369488744b232542e35fc57ae62b.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/10083/1bbc369488744b232542e35fc57ae62b.JPG" alt="Obrazek" /></a><br /><br />Przy założeniu, że napięcie nie będzie się zmieniać klawiatura działa bardzo dobrze. Wszystkie założenia zostały spełnione:<br />- klawiatura działa poprawnie<br />- wykorzystanie pinów z ośmiu (8) zmniejszyło się do jednego (1)!<br />- rezystory zostały dobrane, aby stanem wysokim wybudzić uC z uśpienia<br /><br />Kod w załączeniu z wykorzystaniem uC Atmega644P.<br />Kod wykorzystuje bibliotekę LCD napisaną przez pana Mirka, ale nie umieściłem jej w załączeniu.<br /><br />Pozdrawiam,<br />Grzegorz<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10083">ostap</a> — 15 lip 2015, o 12:48</p><hr />
]]></content>
</entry>
</feed>