To tě jako uživatele nemusí zajímatVladimir66 píše: ↑21 lis 2018, 20:15 jak se ulozi ten prvni parametr strip.Color(0, 25, 0) do promenne uint32_t c ?

To tě jako uživatele nemusí zajímatVladimir66 píše: ↑21 lis 2018, 20:15 jak se ulozi ten prvni parametr strip.Color(0, 25, 0) do promenne uint32_t c ?
Kód: Vybrat vše
strip.setPixelColor(1,0) ;strip.show();
delay(500);
strip.setPixelColor(0,0) ;strip.show();
delay(500);
Kód: Vybrat vše
for(int i=3; i>0; i--) {
strip.setPixelColor(i,0) ;
strip.show();
Kód: Vybrat vše
#include <Adafruit_NeoPixel.h>
#define PIN 6
Adafruit_NeoPixel strip = Adafruit_NeoPixel(4, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
Serial.begin(9600);
strip.begin();
strip.show();
}
void loop() {
//pásek napůl
for(int i=0; i<2; i++) {
Serial.println(i);
strip.setPixelColor(i, 655360) ;
strip.show();
delay(500);}
delay (2000);
for(int i=2; i<4; i++) {
Serial.println(i);
strip.setPixelColor(i, 655360) ;
strip.show();
delay(500);}
delay (2000);
for(int i=3; i>1; i--) {
Serial.println(i);
strip.setPixelColor(i,0) ;
strip.show();
delay(500);}
delay (2000);
for(int i=1; i> -1; i--) {
Serial.println(i);
strip.setPixelColor(i,0) ;
strip.show();
delay(500);}
delay(1000);
Serial.println("-----");
}
for(uint16_t i=5;i>0;i--)
, tak se na vykonání těla s nulou nedostane (naposled se provede tělo s 1, pak se i zmenší o 1, už to nebude >0 a tedy se tělo už neprovede). Pokud bych napsal for(uint16_t i=5;i>=0;i--)
, tak se sice na nulu dostanu, ALE ta podmínka bude splněná vždycky, protože proměnná i je vždycky nezáporná ze své podstaty.for(int i=5;i>=0;i--)
i for(int i=5;i>-1;i--)
bude fungovat tak, jak to na první pohled vypadá. Ale může to být v kontextu programu trochu matoucí. Anebo můžu použít jiný typ cyklu a tu podmínku patřičně upravit, například:
Kód: Vybrat vše
uint16_t i=6;
while (i>0)
{
i--;
strip.setPixelColor(i,0) ;
strip.show();
delay(500);
}
Kód: Vybrat vše
uint16_t i=6;
do {
i--;
strip.setPixelColor(i,0) ;
strip.show();
delay(500);
}while (i>0);