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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-09-03T21:03:46+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=47&amp;t=8393&amp;mode</id>
<entry>
<author><name><![CDATA[krisp74]]></name></author>
<updated>2014-09-03T21:03:46+01:00</updated>
<published>2014-09-03T21:03:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8393&amp;p=94160#p94160</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8393&amp;p=94160#p94160"/>
<title type="html"><![CDATA[Arduino i przerwanie od uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8393&amp;p=94160#p94160"><![CDATA[
Witam.<br />Mam taki problem. Program obsługuje podczerwień i port szeregowy. Są dwie pętla jedna główna loop i kilka pętli while i teraz zasadnicze pytanie jak zrobić aby móc przerwać pętle while informacją przychodzącą z portu szeregowego?<br />[syntax=c]#include &lt;IRremote.h&gt;<br />#include &lt;Adafruit_NeoPixel.h&gt;<br />#define irPin 11<br />#define PIN 6<br />IRrecv irrecv(irPin);<br />decode_results results;<br />Adafruit_NeoPixel strip = Adafruit_NeoPixel(5, PIN, NEO_RGB + NEO_KHZ800);<br /><br />int red;<br />int green;<br />int blue;<br />int jasnosc = 64;<br />long int dane;<br />void setup() {<br />  Serial.begin(9600);<br />  irrecv.enableIRIn();<br />  strip.begin();<br />  strip.setBrightness(jasnosc);<br />  strip.show(); <br />}<br /><br />void loop() {<br />  if (irrecv.decode(&amp;results)){<br /> //   Serial.print(results.value);<br />  //  podczerwien();<br /> test();  <br /> {<br />      irrecv.resume();<br />    } <br />  }<br />  if (Serial.available() &gt; 0 ) {<br />    dane = Serial.parseInt();<br />  if(dane==1){<br />              <br />              red = Serial.parseInt();<br />              blue = Serial.parseInt();<br />              green = Serial.parseInt();<br />           }<br /> if (Serial.read() == '\n') {<br />               for(int i=0; i&lt;strip.numPixels(); i++) {<br />    strip.setPixelColor(i, red,blue,green);<br />    strip.show();<br />           }<br /> }<br />if(dane==2){<br />dane = Serial.parseInt();<br />test();<br />  }<br /><br />  }<br />}<br /><br />void rainbow(uint8_t wait) {<br />  int x=0;<br />  do{<br />    uint16_t i, j;<br /><br />    for(j=0; j&lt;256; j++) {<br />      for(i=0; i&lt;strip.numPixels(); i++) {<br />        strip.setPixelColor(i, Wheel((i+j) &amp; 255));<br />      }<br />      strip.show();<br />      delay(wait); <br />    }<br />    x++; <br />  }<br />  while(x&lt;10);<br />}<br /><br />void kolory() {<br />  int x=0;<br />  do {<br />    colorWipe(strip.Color(255, 0, 0), 50); // Red<br />    colorWipe(strip.Color(0, 255, 0), 50); // Green<br />    colorWipe(strip.Color(0, 0, 255), 50); // Blue<br />    colorWipe(strip.Color(255,255,255), 50);// biały<br />    colorWipe(strip.Color(0,0,0), 255); // nieświeci      <br />    colorWipe(strip.Color(255, 255, 0), 50);//żółty<br />    colorleft(strip.Color(0, 0, 255), 50); //niebieski<br />    colorleft(strip.Color(0, 255, 0), 50); //zielony<br />    colorleft(strip.Color(165,42,42),255);//brązowy<br />    x++;  <br />  }<br />  while(x&lt;5);<br />}<br /><br /><br /><br /><br />uint32_t Wheel(byte WheelPos) {<br />  if(WheelPos &lt; 85) {<br />    return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);<br />  } <br />  else if(WheelPos &lt; 170) {<br />    WheelPos -= 85;<br />    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);<br />  } <br />  else {<br />    WheelPos -= 170;<br />    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);<br />  }<br />}<br /><br />void colorleft(uint32_t c, uint8_t wait) {<br />  for(uint16_t i=strip.numPixels(); i&lt;11; i--){<br />    strip.setPixelColor(i,c);<br />    strip.show();<br />    delay(wait);<br />  }<br />}<br />void colorWipe(uint32_t c, uint8_t wait) {<br />  for(uint16_t i=0; i&lt;strip.numPixels(); i++) {<br />    strip.setPixelColor(i, c);<br />    strip.show();<br />    delay(wait);<br />  }<br />}<br />void knightRider() {<br />  int x=0;<br />  do{<br />    int loops = 2;<br />    int count = 0;<br />    int timer = 20; <br />    uint32_t low = strip.Color(random(0,255), random(0,255), random(0,255)); <br />    uint32_t high = strip.Color(random(0,255),0,random(0,255));<br />    // Flash Lights<br />    for(int i = 0; i &lt; loops; i++){<br />      for (count=0;count&lt;strip.numPixels();count++) {<br />        strip.setPixelColor(count, high); <br />        strip.show();<br />        delay(timer);<br />        strip.setPixelColor(count+1,high);<br />        strip.show();<br />        delay(timer);<br />        strip.setPixelColor(count, low);<br />        strip.show();<br />        delay(timer*2);<br />      }<br />      for (count=strip.numPixels();count&gt;0;count--) {<br />        strip.setPixelColor(count, high); <br />        strip.show();<br />        delay(timer);<br />        strip.setPixelColor(count-1, high); <br />        strip.show();<br />        delay(timer);<br />        strip.setPixelColor(count, low); <br />        strip.show();<br />        delay(timer*2);<br />      }<br />    }<br />    // Turn them off<br />    for( int i = 0; i&lt;strip.numPixels(); i++){<br />      strip.setPixelColor(i, low);<br />      strip.show();<br />    }   <br />    x++;  <br />  }<br />  while(x&lt;10);<br />}<br />void theaterChase(uint32_t c, uint8_t wait) {<br />  for (int j=0; j&lt;10; j++) {  //do 10 cycles of chasing<br />    for (int q=0; q &lt; 3; q++) {<br />      for (int i=0; i &lt; strip.numPixels(); i=i+3) {<br />        strip.setPixelColor(i+q, c);    //turn every third pixel on<br />      }<br />      strip.show();<br /><br />      delay(wait);<br /><br />      for (int i=0; i &lt; strip.numPixels(); i=i+3) {<br />        strip.setPixelColor(i+q, 0);        //turn every third pixel off<br />      }<br />    }<br />  }<br />}<br /><br />//Theatre-style crawling lights with rainbow effect<br />void theaterChaseRainbow(uint8_t wait) {<br />  for (int j=0; j &lt; 256; j++) {     // cycle all 256 colors in the wheel<br />    for (int q=0; q &lt; 3; q++) {<br />      for (int i=0; i &lt; strip.numPixels(); i=i+3) {<br />        strip.setPixelColor(i+q, Wheel( (i+j) % 255));    //turn every third pixel on<br />      }<br />      strip.show();<br /><br />      delay(wait);<br /><br />      for (int i=0; i &lt; strip.numPixels(); i=i+3) {<br />        strip.setPixelColor(i+q, 0);        //turn every third pixel off<br />      }<br />    }<br />  }<br />}<br />void czerwony(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {<br />    strip.setPixelColor(i, 255,0,0);<br />    strip.show();<br />    delay(250);<br />  }<br />}<br />void orange(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {    //orange 1<br />      strip.setPixelColor(i, 255,0,127);<br />      strip.show();<br />      delay(250);  <br />    }<br />}<br /><br />void yellow_dark(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {    //yellow dark 2<br />      strip.setPixelColor(i, 255,0,170);<br />      strip.show();<br />      delay(250);  <br />    }<br />}<br /><br /> void yellow_medium(){<br />   for(int i=0; i&lt;strip.numPixels(); i++) {    //yellow medium 3<br />      strip.setPixelColor(i, 255,0,212);<br />      strip.show();<br />      delay(250);  <br />    }<br /> }<br /><br />void yellow_light(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {    //yellow light 4<br />      strip.setPixelColor(i, 255,0,255);<br />      strip.show();<br />      delay(250);  <br />    }<br />}<br /><br />void zielony(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {<br />    strip.setPixelColor(i, 0,0,255);<br />    strip.show();<br />    delay(250);<br />  }<br />}<br /><br />void green_light(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {    //green light 1<br />      strip.setPixelColor(i, 0,170,255);<br />      strip.show();<br />      delay(250);  <br />    }<br />}<br /><br />void green_blue1(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {    //green blue1 2<br />      strip.setPixelColor(i, 0,255,255);<br />      strip.show();<br />      delay(250);  <br />    }<br />}<br /><br />void green_blue2(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {    //green blue2 3<br />      strip.setPixelColor(i, 0,255,170);<br />      strip.show();<br />      delay(250);  <br />    }<br />}<br /><br />void green_blue3(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {    //green blue3 4<br />      strip.setPixelColor(i, 0,255,85);<br />      strip.show();<br />      delay(250);  <br />    }<br />}<br /><br />void niebieski(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {    //niebieski<br />    strip.setPixelColor(i, 0,255,0);<br />    strip.show();<br />    delay(250);<br />  }<br />}<br /><br />void blue_red(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {    //blue red 1<br />      strip.setPixelColor(i, 0,128,0);<br />      strip.show();<br />      delay(250);  <br />    }<br />}<br /><br />void purple_dark(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {    //purple dark 2<br />      strip.setPixelColor(i, 63,128,00);<br />      strip.show();<br />      delay(250);  <br />    }<br />}<br /><br />void purple_light(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {    //purple light 3<br />      strip.setPixelColor(i, 122,191,0);<br />      strip.show();<br />      delay(250);  <br />    }<br />}<br /><br />void pink(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {    //pink 4<br />      strip.setPixelColor(i, 255,255,0);<br />      strip.show();<br />      delay(250);  <br />    }<br />}<br /><br />void bialy(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {    //bialy<br />    strip.setPixelColor(i, 255,255,255);<br />    strip.show();<br />    delay(250);<br />  }<br />}<br />void wylacz(){<br />  for(int i=0; i&lt;strip.numPixels(); i++) {    //wylaczone<br />      strip.setPixelColor(i, 0,0,0);<br />      strip.show();<br />      delay(250);  <br />    }<br />}<br />void jasniej(){<br />  if(jasnosc &lt; 255)<br />    {<br />      jasnosc = jasnosc + 32;<br />      if (jasnosc &gt;= 255)<br />        jasnosc = 255; <br />    }<br />    strip.setBrightness(jasnosc);<br />    strip.show();<br />}<br />void ciemniej(){<br />  if(jasnosc &gt; 0)<br />    {<br />      jasnosc = jasnosc - 32;<br />      if(jasnosc &lt;= 0)<br />        jasnosc = 1;<br />    }<br />    strip.setBrightness(jasnosc);<br />    strip.show();<br />}<br /><br />void test(){<br />  if (((results.value) == 16748655)|| (dane == 16748655)){<br />    czerwony();<br />}<br /> if (((results.value) == 16756815) || (dane == 16756815)){<br />    orange();<br /> }<br />  if (((results.value) == 16754775) || (dane == 16754775)){<br />    yellow_dark();<br />  }<br />  <br />  if (((results.value) == 16750695) || (dane == 16750695)){<br />    yellow_medium();<br />  }<br />  <br />  if (((results.value) == 16746615) || (dane == 16746615)){<br />    yellow_light();<br />  }<br />  <br />  if (((results.value) == 16716015) || (dane == 16716015)){<br />    zielony();<br />}<br />  <br />  if (((results.value) == 16724175) || (dane == 16724175)){<br />    green_light();<br />  }<br />  <br />  if (((results.value) == 16722135) || (dane == 16722135)){<br />    green_blue1();<br />  }<br />  <br />  if (((results.value) == 16718055) || (dane == 16718055)){<br />    green_blue2();<br />  }<br />  <br />  if (((results.value) == 16713975) || (dane == 16713975)){<br />    green_blue3();<br />  }<br />  <br />  if (((results.value) == 16732335) || (dane == 16732335)){<br />   niebieski();<br />}<br />  if (((results.value) == 16740495) || (dane == 16740495)){<br />   blue_red();<br />  }<br />  if (((results.value) == 16738455) || (dane == 16738455)){<br />   purple_dark();<br />  }<br />  if (((results.value) == 16734375) || (dane == 16734375)){<br />   purple_light();<br />  }<br />  if (((results.value) == 16730295) || (dane == 16730295)){<br />   pink(); <br />  }<br />  <br />  if (((results.value) == 16764975) || (dane == 16764975)){<br />  bialy();<br />}<br /> if (((results.value) == 16773135) || (dane == 16773135)){<br />   rainbow(30);<br /> }<br /> <br /> if (((results.value) == 16771095) || (dane == 16771095)){<br />   kolory();<br /> }<br /> if (((results.value) == 16767015) || (dane == 16767015)){<br />   knightRider();<br /> }<br /> <br /> if (((results.value) == 16762935) || (dane == 16762935)){<br />   theaterChase(strip.Color(127, 127, 127), 50); // White<br />    theaterChase(strip.Color(127,   0,   0), 50); // Red<br />    theaterChase(strip.Color(  0,   0, 127), 50); // Blue<br />    theaterChaseRainbow(50);<br /> }<br /> <br /> if (((results.value) == 16736415) || (dane == 16736415)){<br />   wylacz();<br /> }<br />if (((results.value) == 16752735) || (dane == 16752735)){<br />  jasniej();<br />}<br />if (((results.value) == 16720095) || (dane == 16720095)){<br />  ciemniej();<br />}<br />{<br />  results.value = 0;<br />  dane = 0;<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5700">krisp74</a> — 3 wrz 2014, o 21:03</p><hr />
]]></content>
</entry>
</feed>