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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-09-20T17:09:08+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1561&amp;mode</id>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-09-20T17:09:08+01:00</updated>
<published>2012-09-20T17:09:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15564#p15564</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15564#p15564"/>
<title type="html"><![CDATA[Re: [ARDUINO] Sterowanie diodą, 2 przyciski + pwm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15564#p15564"><![CDATA[
no właśnie wiesz dlaczego ... widzisz milis nie liczy od 0 do 60  cały czas <br />millis zlicza czas od uruchomienia procesora , czyli liczy cały czas i ty chcąc uzyskać <br />właściwy efekt musisz odczytać wartość milis i zapamiętać i sprawdzić czy osiągnęła właściwy <br />rozmiar ....   rozumiesz <br /><br />ciekawostka jest to że 0 .... jest po resecie lub włączeniu zasilania , a jak procek chodzi to stale liczba milisekund jest większa<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 20 wrz 2012, o 17:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[paavo91]]></name></author>
<updated>2012-09-20T13:13:36+01:00</updated>
<published>2012-09-20T13:13:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15539#p15539</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15539#p15539"/>
<title type="html"><![CDATA[Re: [ARDUINO] Sterowanie diodą, 2 przyciski + pwm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15539#p15539"><![CDATA[
Bardzo proszę o pomoc, zastosowalem funkcję millis, ale w tym przypadku powinna ona chyba wyglądać inaczej. Nie wiem jak ją zastosować poprawnie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=515">paavo91</a> — 20 wrz 2012, o 13:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[paavo91]]></name></author>
<updated>2012-09-19T15:58:40+01:00</updated>
<published>2012-09-19T15:58:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15479#p15479</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15479#p15479"/>
<title type="html"><![CDATA[Re: [ARDUINO] Sterowanie diodą, 2 przyciski + pwm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15479#p15479"><![CDATA[
Dzięki za przydatny link, na pewno warto zastosować millis, ale po poprawieniu kodu, program działa lepiej ale nie do końca poprawnie. Nie chcę przerabiac całości z biblioteką a zrobić jak jest.<br /><br /><br />[syntax=cpp]<br /><br />int s1;  //prędkośc pierwsza<br />int s2;  //predkosc druga<br />int x=1000;<br /><br /><br /><br />void setup(){<br />  <br />  <br />  pinMode(4,INPUT); // wejscie 1 (speed1)<br />  pinMode(5,INPUT); //wejscie 2  (speed2)<br />  digitalWrite(4,HIGH); //podciąganie do plusa<br />  digitalWrite(5,HIGH); //podciaganie do plusa<br />  <br />  <br />  <br />  <br />}<br /><br /><br />unsigned long int old_millis=0;<br /> <br />void loop(){<br />  <br />  <br />  s1=analogRead(A0); //czytanie nastawionej wartosci na pot1<br />  s1=map(s1,0,1023,0,255); <br />  <br />  s2=analogRead(A1);  //czytanie nastawionej wawrtości na pot2<br />  s2=map(s2,0,1023,0,255);<br /><br />  <br /><br /><br />if(digitalRead(4)==0 &amp; digitalRead(5)==1) { //sygnał nr.1 włącza PWM nr.1<br /><br /> <br /><br />  <br />  <br />  analogWrite(9,s1); // PWM<br />  <br />  <br />  <br />}<br /><br />if(digitalRead(5)==0) { //sygnał nr. 2 włącza PWM nr. 2<br />    <br />   <br />      <br />      <br />      <br />  unsigned long currentMillis = millis();  <br />  if(currentMillis - previousMillis &gt; interval)<br />{<br />    previousMillis = currentMillis;  <br />    <br />    if(digitalRead(5) == 0) <br />        <br />                analogWrite(9,s2);<br />                                       <br />      <br />       <br />               else <br />                     analogWrite(9,0);<br />                    <br />    <br />  }<br />}<br /> <br />      <br />              <br />                               <br />       <br />     <br />                      <br />}<br />[/syntax]<br /><br />Niestety jak włączę tryb 1, to jest ok ale jak wcisnę tryb2 to nie odczekuje mi tej sekundy, oraz nie wyłącza się gdy puszczę przycisk.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=515">paavo91</a> — 19 wrz 2012, o 15:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-09-19T15:54:06+01:00</updated>
<published>2012-09-19T15:54:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15478#p15478</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15478#p15478"/>
<title type="html"><![CDATA[Re: [ARDUINO] Sterowanie diodą, 2 przyciski + pwm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15478#p15478"><![CDATA[
zapoznaj się z biblioteką Analog Switch w środowisku arduino <br />a co do delay to bardzo ładnie możesz go ominąć korzystając <br />np z mojego sposobu <br /><br />co opisałem szerzej tutaj ... <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic161.html" >topic161.html</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 19 wrz 2012, o 15:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[paavo91]]></name></author>
<updated>2012-09-19T15:44:21+01:00</updated>
<published>2012-09-19T15:44:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15477#p15477</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15477#p15477"/>
<title type="html"><![CDATA[[ARDUINO] Sterowanie diodą, 2 przyciski + pwm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1561&amp;p=15477#p15477"><![CDATA[
Witam. Mam problem z kodem w ARDUINO.<br />Sprawa polega na tym: Podaję sygnał na jeden z pinów(tutaj przyciskiem), jeśli procesor odbierze ten sygnał, nieważne, czy będzie on trwał chwilę czy może też będzie cały czas podawany, to ma zapalić diodę z określoną wartościa nr.1  PWMa. Dioda tak świeci i świeci, gdy nagle dostanie sygnał na inny pin ma zaczekać określony czas(zapisany w zmiennej) i po tym czasie zapalić diodę z wypełnieniem nr.2. Jeśli przestanę podawać sygnały dioda ma zgasnąć.<br /><br />Skleiłem taki kod:<br /><br />[syntax=cpp]<br />byte s1;  //pwm1<br />byte s2;  //wm2<br />int x=0;<br /><br /><br /><br /><br /><br />void setup(){<br />  <br />  <br />  pinMode(4,INPUT); // wejscie 1<br />  pinMode(5,INPUT); //wejscie 2 <br />  digitalWrite(4,HIGH); //podciąganie do plusa<br />  digitalWrite(5,HIGH); //podciaganie do plusa<br />  <br />  <br />  <br />}<br /> <br />void loop(){<br />  <br />  <br />  s1=analogRead(A0); //czytanie nastawionej wartosci na pot1<br />  s1=map(s1,0,1023,0,255); <br />  <br />  s2=analogRead(A1);  //czytanie nastawionej wawrtości na pot2<br />  s2=map(s2,0,1023,0,255);<br /><br />  <br /><br /><br />if(digitalRead(4)==0) { //sygnał nr.1 włącza PWM nr.1<br /><br />  while(digitalRead(5)==1) {<br />  <br />  analogWrite(9,s1); // PWM<br />  <br />  }<br />  <br />}<br /><br />if(digitalRead(5)==0) { //sygnał nr. 2 włącza PWM nr. 2<br />    <br />    if(digitalRead(4)==1) { // tutaj warunek, żeby sygnał nr.1 nie był podawany równocześnie<br />      <br />      delay(x);          //czekam określony czas<br />      <br />      while(digitalRead(4)==1) { //dopóki nie zostanie ponownie podany sygnał z nr. 1<br />        <br />      analogWrite(9,s2);<br />      }<br />    }<br />} [/syntax]<br /><br />Problem w tym, że jak już puszczę oba przyciski to zostaje pwm nr.2 i muszę też jakoś wyeliminować delay..<br /><br />Dzięki za pomoc!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=515">paavo91</a> — 19 wrz 2012, o 15:44</p><hr />
]]></content>
</entry>
</feed>