• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Odliczanie diodami ws2812b
#1
Witam, program składa się z pięciu diod. Po załączeniu zasilania 3 razy błyskają wszystkie diody i program czeka na wciśniecie przycisku. Po wciśnięciu przycisku zapalają się wszystkie diody na kolor niebieski potem jedna gaśnie i cztery świecą się na zielono --- na koniec zapala się jedna czerwona dioda i po upływie 5 sekund wszystkie diody migają 3 razy na kolor czerwony.
W ten sposób to działa - jednak chciałbym, aby w przypadku naciśnięcia przycisku przed upływem 5 sekund wszystkie diody mignęły 3 razy i program ponownie czekał, aż wciśnie się ponownie przycisk.

Proszę o pomoc.

Kod:
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define ILOSCDIOD 5
Adafruit_NeoPixel pasek = Adafruit_NeoPixel(ILOSCDIOD,PIN,NEO_GRB + NEO_KHZ800);
void setup() {
  pasek.begin();
  pinMode(8, INPUT_PULLUP);
 
  for (int i=0; i<5; i++){
  pasek.setPixelColor(i,pasek.Color(0,255,0));}
  pasek.show();
  delay(250);
for (int i=0; i<5; i++){
  pasek.setPixelColor(i,pasek.Color(0,0,0));}
  pasek.show();
  delay(250);
for (int i=0; i<5; i++){ 
  pasek.setPixelColor(i,pasek.Color(0,255,0));}
  pasek.show();
  delay(250);
for (int i=0; i<5; i++){ 
  pasek.setPixelColor(i,pasek.Color(0,0,0));}
  pasek.show();
  delay(250);
  for (int i=0; i<5; i++){ 
  pasek.setPixelColor(i,pasek.Color(0,255,0));}
  pasek.show();
  delay(250);
for (int i=0; i<5; i++){ 
  pasek.setPixelColor(i,pasek.Color(0,0,0));}
  pasek.show();
  delay(250);}
 
 
  // put your setup code here, to run once:



void loop() {

if (digitalRead(8) == LOW){

 
  for(int i=0; i<5; i++){
    pasek.setPixelColor(i,0,0,255);  //wszystkie na niebiesko
    pasek.show();}
    delay(1000);
  for(int i=0; i<5; i++){ 
    pasek.setPixelColor(i,0,0,0);}
    pasek.show();
    delay(10);

  for (int i=0; i<4; i++){
    pasek.setPixelColor(i,0,255,00);   //cztery na zielono
    }
    pasek.show();

    delay(1000); 
   
  for (int i=0; i<5; i++){
    pasek.setPixelColor(i,0,0,0);}   
    pasek.show();
    delay(10);

  for (int i=0; i<3; i++) { 
    pasek.setPixelColor(i,255,255,0);  } //trzy na ��to
    pasek.show();
    delay(1000);

     for (int i=0; i<5; i++){
    pasek.setPixelColor(i,0,0,0);}
    pasek.show();
    delay(10);

  for (int i=0; i<2; i++) { 
    pasek.setPixelColor(i,255,132,19);  } //dwie na pomara�czowo
    pasek.show();
    delay(1000);

for (int i=0; i<5; i++){
    pasek.setPixelColor(i,0,0,0);}
    pasek.show();
    delay(10);

  for (int i=0; i<1; i++) { 
    pasek.setPixelColor(i,255,0,0);  } //jedna na czerwono
    pasek.show();
    delay(1000);

  for (int i=0; i<5; i++){
    pasek.setPixelColor(i,0,0,0);}
    pasek.show();
    delay(250); 

    for (int i=0; i<5; i++){ //po czasie 5 sekund wszyskie migaj� trzy razy na czerwono
  pasek.setPixelColor(i,pasek.Color(255,0,0));}
  pasek.show();
  delay(250);
for (int i=0; i<5; i++){
  pasek.setPixelColor(i,pasek.Color(0,0,0));}
  pasek.show();
  delay(250);
for (int i=0; i<5; i++){ 
  pasek.setPixelColor(i,pasek.Color(255,0,0));}
  pasek.show();
  delay(250);
for (int i=0; i<5; i++){ 
  pasek.setPixelColor(i,pasek.Color(0,0,0));}
  pasek.show();
  delay(250);
  for (int i=0; i<5; i++){ 
  pasek.setPixelColor(i,pasek.Color(255,0,0));}
  pasek.show();
  delay(250);
for (int i=0; i<5; i++){ 
  pasek.setPixelColor(i,pasek.Color(0,0,0));}
  pasek.show();
  delay(250);}

 
while(digitalRead(8) == LOW){
   for (int i=0; i<5; i++){
  pasek.setPixelColor(i,pasek.Color(0,255,0));}
  pasek.show();
  delay(250);
for (int i=0; i<5; i++){
  pasek.setPixelColor(i,pasek.Color(0,0,0));}
  pasek.show();
  delay(250);
for (int i=0; i<5; i++){ 
  pasek.setPixelColor(i,pasek.Color(0,255,0));}
  pasek.show();
  delay(250);
for (int i=0; i<5; i++){ 
  pasek.setPixelColor(i,pasek.Color(0,0,0));}
  pasek.show();
  delay(250);
  for (int i=0; i<5; i++){ 
  pasek.setPixelColor(i,pasek.Color(0,255,0));}
  pasek.show();
  delay(250);
for (int i=0; i<5; i++){ 
  pasek.setPixelColor(i,pasek.Color(0,0,0));}
  pasek.show();
  delay(250);
  }

}

 
// for(int i=0; i<ILOSCDIOD; i++) {
   // pasek.setPixelColor(i,255,0,0);
   // pasek.show();
   // delay(500);}
   // delay(3000);
// for(int i=0; i<ILOSCDIOD; i++) {
   // pasek.setPixelColor(i,0,0,0);
   // pasek.show();
   // delay(500); }

// for(int i=0; i<ILOSCDIOD; i++) {
   // pasek.setPixelColor(i,0,0,255);
   // pasek.show();
   // delay(500);}
   // delay(3000);
  // for(int i=0; i<ILOSCDIOD; i++) {
   // pasek.setPixelColor(i,0,0,0);
   // pasek.show();
   // delay(500); }

   // for(int i=0; i<ILOSCDIOD; i++) {
   // pasek.setPixelColor(i,0,255,0);
   // pasek.show();
   // delay(500);}
  //  delay(3000);
// for(int i=0; i<ILOSCDIOD; i++) {
  //  pasek.setPixelColor(i,0,0,0);
  //  pasek.show();
   // delay(500); }

   //  for(int i=0; i<255; i++) {
    //  pasek.setPixelColor(0,i,(255-i),i);
    //  pasek.setPixelColor(1,i,(255-i),i);
    //  pasek.setPixelColor(2,i,(255-i),i);
    //  pasek.setPixelColor(3,i,(255-i),i);
    //  pasek.setPixelColor(4,i,(255-i),i);
    //  pasek.show();
    //  delay(50); }

 
  // put your main code here, to run repeatedly:


Załączone pliki
.txt   diody.txt (Rozmiar: 4.6 KB / Pobrań: 3)
 
Odpowiedź
  


Wiadomości w tym wątku
Odliczanie diodami ws2812b - przez Taktisz - 19-03-2020, 19:41
RE: Odliczanie diodami ws2812b - przez Robson Kerman - 20-03-2020, 09:09
RE: Odliczanie diodami ws2812b - przez Taktisz - 20-03-2020, 18:08
RE: Odliczanie diodami ws2812b - przez kaczakat - 20-03-2020, 20:39
RE: Odliczanie diodami ws2812b - przez Taktisz - 21-03-2020, 00:44
RE: Odliczanie diodami ws2812b - przez Taktisz - 21-03-2020, 00:48
RE: Odliczanie diodami ws2812b - przez kaczakat - 21-03-2020, 01:42
RE: Odliczanie diodami ws2812b - przez frbabos - 12-08-2020, 16:49

Skocz do:


Przeglądający: 1 gości