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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2020-02-09T19:52:57+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=47&amp;t=22848&amp;mode</id>
<entry>
<author><name><![CDATA[Jankoss]]></name></author>
<updated>2020-02-09T19:52:57+01:00</updated>
<published>2020-02-09T19:52:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22848&amp;p=224625#p224625</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22848&amp;p=224625#p224625"/>
<title type="html"><![CDATA[Re: Licznik ilości na matrycy LED 32x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22848&amp;p=224625#p224625"><![CDATA[
OKI udało mi się zrobić to co chciałem. <br />Teraz mam  mony problem, otóż przycisk ma zliczać gdy wciśniemy przycisk , gdyż teraz gdy tylko wciśniemy przycisk liczy cały czas do 0 <br /><br /><br />[syntax=c]#include &lt;SPI.h&gt;<br />#include &lt;DMD2.h&gt;<br />#include &lt;DMD.h&gt;<br />#include &lt;SystemFont5x7.h&gt;<br />#include &lt;fonts/Arial_Black_16.h&gt;<br />#include &lt;Bounce2.h&gt; <br />#define BUTTON_PIN 2 // przycisk +<br />#define BUTTON_PIN3 3 <br />#define BUTTON_PIN4 4<br />int zerowanie  = A1;    // inicjalizacja pinu 12 jako reset <br />int a;<br />int count=0;<br />int press; <br />int press1;<br />int press2;<br />int licznik;<br /><br />Bounce debouncer = Bounce();<br />SoftDMD dmd(1,1); //SoftDMD dmd(1,1);<br /><br />void setup() {<br />pinMode(BUTTON_PIN,INPUT_PULLUP);  // konfiguracja przycisku i aktywowanie rezystora podciągającego;<br />debouncer.attach (BUTTON_PIN);<br />debouncer.interval (10);<br />pinMode(BUTTON_PIN3,INPUT_PULLUP);<br />debouncer.attach (BUTTON_PIN3);<br />debouncer.interval (1000);<br />pinMode(BUTTON_PIN4,INPUT_PULLUP);<br />debouncer.attach (BUTTON_PIN4);<br />debouncer.interval (10);<br />pinMode(zerowanie,INPUT_PULLUP);<br />debouncer.attach (zerowanie);<br />debouncer.interval (10);<br /><br /><br />///DMD_TextBox box1(dmd, 19, 1, 36, 16); <br />//DMD_TextBox box(dmd, 2, 8, 36, 16); <br />// Set Box (dmd, x, y, Height, Width) <br />  dmd.setBrightness(50); // Set brightness 0 - 255 <br />  dmd.selectFont(SystemFont5x7); // Font used<br />  dmd.begin();    <br />// box1.print(0);<br /> //delay (1000);<br /> // box.print(0);<br /> //delay (1000);<br /><br />}<br />void loop() {<br />  debouncer.update();<br />  unsigned value = debouncer.read();<br />value=digitalRead(BUTTON_PIN);<br /><br />if (value==LOW) {<br />  press=count++;<br />  delay(100);<br />}<br /><br /> debouncer.update();<br />  unsigned va = debouncer.read();<br />va=digitalRead(BUTTON_PIN4);<br /><br />if (va==LOW) {<br />  press=count--;<br />  delay(100); <br />  a==press;<br />  return (a);<br />  dmd.clearScreen();<br />}  <br />//if (press&gt;20){   // ustawienie zakresu tak aby max był 20 a minimum 0 <br />  //press=20;<br />if (press&lt;0){ <br /> press=0;<br />}<br />debouncer.update();<br />  unsigned v = debouncer.read();    //lacza, wyświetlała się wartość ustawiona wcześniej ale z każdyn impulsem pomniejsozna o 1 aż do 0 i ponownie <br />v=digitalRead(BUTTON_PIN3);<br />    if (v==LOW) {<br />      press1=a;<br />      if (a==press){<br />       a=0;<br />       delay (200);<br />      // dmd.clearScreen();<br />       }<br />        else{<br />        ++a; <br />        delay(200);<br />               dmd.clearScreen();<br />        }<br />      }<br />DMD_TextBox box1(dmd, 19, 1, 36, 16); <br />DMD_TextBox box(dmd, 2, 8, 36, 16); <br /> box1.print(press1);<br /> //delay (1000);<br />  box.print(press);<br /> //delay (1000) <br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17904">Jankoss</a> — 9 lut 2020, o 19:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jankoss]]></name></author>
<updated>2020-02-09T16:04:15+01:00</updated>
<published>2020-02-09T16:04:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22848&amp;p=224617#p224617</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22848&amp;p=224617#p224617"/>
<title type="html"><![CDATA[Re: Licznik ilości na matrycy LED 32x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22848&amp;p=224617#p224617"><![CDATA[
Aktualnie mój kod wykłada tak : <br /><br />[syntax=c]#include &lt;SPI.h&gt;<br />#include &lt;DMD2.h&gt;<br />#include &lt;DMD.h&gt;<br />#include &lt;SystemFont5x7.h&gt;<br />#include &lt;fonts/Arial_Black_16.h&gt;<br />#include &lt;Bounce2.h&gt; <br />#define BUTTON_PIN 2 // przycisk +<br />#define BUTTON_PIN3 3 <br />#define BUTTON_PIN4 4<br />int zerowanie  = A1;    // <br />int a;<br />int count=0;<br />int press; <br />int press1;<br />int press2;<br />int licznik;<br /><br />Bounce debouncer = Bounce();<br />SoftDMD dmd(1,1); //SoftDMD dmd(1,1);<br /><br />void setup() {<br />pinMode(BUTTON_PIN,INPUT_PULLUP);  // konfiguracja przycisku i aktywowanie rezystora podciągającego;<br />debouncer.attach (BUTTON_PIN);<br />debouncer.interval (10);<br />pinMode(BUTTON_PIN3,INPUT_PULLUP);<br />debouncer.attach (BUTTON_PIN3);<br />debouncer.interval (10);<br />pinMode(BUTTON_PIN4,INPUT_PULLUP);<br />debouncer.attach (BUTTON_PIN4);<br />debouncer.interval (10);<br />pinMode(zerowanie,INPUT_PULLUP);<br />debouncer.attach (zerowanie);<br />debouncer.interval (10);<br /><br /><br />///DMD_TextBox box1(dmd, 19, 1, 36, 16); <br />//DMD_TextBox box(dmd, 2, 8, 36, 16); <br />// Set Box (dmd, x, y, Height, Width) <br />  dmd.setBrightness(1); // Set brightness 0 - 255 <br />  dmd.selectFont(SystemFont5x7); // Font used<br />  dmd.begin();    <br />// box1.print(0);<br /> //delay (1000);<br /> // box.print(0);<br /> //delay (1000);<br /><br />}<br />void loop() {<br />  debouncer.update();<br />  unsigned value = debouncer.read();<br />  <br />value=digitalRead(BUTTON_PIN);<br /><br />if (value==LOW) {<br />  press=count++;<br />  delay(100);<br />}<br /><br /> debouncer.update();<br />  unsigned va = debouncer.read();<br />  <br />va=digitalRead(BUTTON_PIN4);<br /><br />if (va==LOW) {<br />  press=count--;<br />  delay(100); <br />  licznik==press;<br />  dmd.clearScreen();<br />}  <br />//if (press&gt;20){   // ustawienie zakresu tak aby max był 20 a minimum 0 <br />  //press=20;<br /><br />if (press&lt;0){ <br /> press=0;<br />}<br /><br />//debouncer.update();<br />  //int val = debouncer.read();    // Próba stworzenia funkcjii aby u góry wyświetlacza, wyświetlała się wartość ustawiona wcześniej ale z każdyn impulsem pomniejsozna o 1 aż do 0 i ponownie <br />//val=digitalRead(BUTTON_PIN3);<br />    //if (val==LOW) {<br />  //dmd.clearScreen();<br /> // return 0;<br /><br />DMD_TextBox box1(dmd, 19, 1, 36, 16); <br />DMD_TextBox box(dmd, 2, 8, 36, 16); <br /> box1.print(count);<br /> //delay (1000);<br />  box.print(press);<br /> //delay (1000) <br /><br />}[/syntax]<br /><br />Niestety nie mam zielonego pojęcia, jak stworzyć funkcję która: gdy ustawimy 20, z każdym  impulsem z przycisku zwiększy się o 1 w przedziale od 1-20 po osiągnięciu 20 znów zacznie liczyć od 0.<br />Nie wiem czemu ale gdy wcisnę przycisk aby zwiększyć nastawę to najpierw maleje o 1  a następnie już zwiększa dobrze.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17904">Jankoss</a> — 9 lut 2020, o 16:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tischtennis]]></name></author>
<updated>2020-02-06T23:10:05+01:00</updated>
<published>2020-02-06T23:10:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22848&amp;p=224563#p224563</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22848&amp;p=224563#p224563"/>
<title type="html"><![CDATA[Re: Licznik ilości na matrycy LED 32x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22848&amp;p=224563#p224563"><![CDATA[
kolego - rozumiem, że teraz masz jedną funkcję, która wyświetla coś na ekranie. Dodaj sobie nową warstwę abstrakcji - rozbij to sobie na 2 funkcje typu:<br /><br />[syntax=c]lcd_top_int(a)<br />lcd_bottom_int(b)[/syntax]<br /><br />i tak się do nich odnoś - pod spodem umieść to co teraz masz i koniec. Twój licznik trzymasz w zmiennej a, a to co chcesz zerować w zmiennej b. Czy też możesz zrobić jedną funkcję na to:<br />[syntax=c]lcb_both(a, b)[/syntax]<br />ilu programistów tyle podejść - wybierz jakie Ci odpowiada.<br /><br />Przy okazji co takim podejściem też zyskasz - załóżmy, że masz już całą warstwę aplikacji i nagle nie chcesz matrycy tylko HD44780 - to warstwa aplikacji zostaje taka sama, a Ty podmieniasz tylko środki tych funkcji, które podałem na pisanie po HD44780 nie ruszając reszty.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20653">tischtennis</a> — 6 lut 2020, o 23:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jankoss]]></name></author>
<updated>2020-02-06T20:37:23+01:00</updated>
<published>2020-02-06T20:37:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22848&amp;p=224555#p224555</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22848&amp;p=224555#p224555"/>
<title type="html"><![CDATA[Licznik ilości na matrycy LED 32x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22848&amp;p=224555#p224555"><![CDATA[
Witam, <br />dawno mnie tu nie było :} <br />Aktualnie buduję układ licznika na matrycy led 32x16, założenie jest takie iż wyświetlacz podzielony jest na dwa oddzielne. Na dolnej części ustawi się przyciskami ilość ( ograniczyłem aby ta liczba nie mogła zejść poniżej 0)<br />Na górnej części ma działać funkcja która ma za zadanie, przyjmując impulsy z czujnika ( aktualnie przycisk)  zliczać (i wyświetlać na bieżąco wyświetlać) od 0 do wartości ustawionej na niższym wyświetlaczu, i po osiągnięciu tej liczby znów zliczać od 0 do tej liczby i tak w koło.   Chciałbym aby była możliwość &quot;zerowania&quot; odliczania bez resetowania dolnej nastawy ( funkcja reset pod pinem 12 ardu uno odpada) , jak nap zostanie liczba 5 to żeby  można było ustawić 0 i odliczać. <br />Nie  mam zielonego pojęcia jak tą funkcję skonstruować, poradziłem sobie z drganiami styków  ( chociaż gdy ustawiamy  nastawę to przycisk plus najpierw odejmuję 1 a potem liczy w górę a jak chcemy zmniejszyć to najpierw dodaję 1), z czyszczeniem ekranu ale ta funkcja mnie pokonała (tzn mocno wstrzymała ) <br />Jutro wkleję już istniejący kod, aby był wgląd w moje bazgroły :} <br />Domyślam się że ta funkcja nie będzie jakoś bardzo skomplikowana, ale za nic nie mam pomysłu jak ją zrobić aby działała poprawnie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17904">Jankoss</a> — 6 lut 2020, o 20:37</p><hr />
]]></content>
</entry>
</feed>