Arama butonu
Bu konudaki kullanıcılar: 1 misafir
10
Cevap
307
Tıklama
0
Öne Çıkarma
Arduino WS211 led flaş effecti yapamıyorum.
İ
2 yıl
Yarbay

İlk başta park, fren ve acilde tek LED olacak şekilde ana fonksiyonu bir yazın. Ana fonksiyonun sorunsuz çalıştığından emin olduktan sonra efektleri yapan alt fonksiyona geçip orayı yazmaya başlayın.

Daha kısa anlatırsam projeyi iki alt proje ile iki alt fonksiyona bölün. Lambaları yakıp söndüren ana fonksiyon ve efekt yapan alt fonksiyon. İki fonksiyonu da olgunlaştırdıktan sonra projeye include ederek kullanabilirsiniz.

Hepsini tek fonksiyonda yapmaya çalışırsanız sorunun nerde olduğunu bulmak zor olur.





< Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 17 Haziran 2023; 15:52:29 >

< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
K
2 yıl
Yarbay

https://forum.donanimhaber.com/onemli-konular-onemli-uyeler-onemli-bilgiler--155252903 konusundan alakalı uzman üyelerden etiketleyebilirsiniz.

#include "Arduino.h"

#include <FastLED.h>
Yukarıdaki pencereyi kopyalalayıp yapıştırıp içindekileri değiştirerek kod ekranı gibi yazabilirsiniz komutlarınızı.





< Bu mesaj bu kişi tarafından değiştirildi karafetva -- 16 Haziran 2023; 21:59:17 >
Bu mesaja 1 cevap geldi.
E
2 yıl
Er
Konu Sahibi

teşekkür ederim . düzenledim


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @karafetva
K
2 yıl
Yarbay

Helal olsun.
AMa maalesef bu ekran düzgün çalışmıyor belki sadece bu bölümde. Renkler karışık çıkıyor.
Diğer taraftan fazlaca çıkan boşluklar silinebilir, gereksiz uzaması engellenebilir.




Bu mesajda bahsedilenler: @Emreöztrk
E
2 yıl
Er
Konu Sahibi

Merhaba

ben 3. fren lambami arduino ile effectli hale getirmek istiyorum.

2 haftadır arduino ile ilgileniyorum. mevcut yazılan kodları inceliyorum. zaman buldukca video derslere bakıyorum. bir şeyler yapmaya çalıştım. bir yerde tıkandı olay.

flash effecti yapıp ardından ışığın sabit bir şekilde pinden sinyal geldiği sürece yanmasını istiyorum. void FRENONS kısmına ne yaptıysam 3 kere yakıp söndürüp ardından sabit bir renk yakamadım.

Yardım ederseniz sevinirim.

@rafet32
@japon_japon
@ipli jeton



 

Ayrıca hem devreyi hemde kodu canlı yürütmek için similasyon sitesindede düzenledim. isteyene link atarım.

Kod Bloğu 




#include "Arduino.h"

#include <FastLED.h>


#define LED_PIN 2 //Bilgi pin

#define park 3 //park ledi

#define fren 5 //fren ledi

#define acil 7 //fordan çık


#define NUM_LEDS 21 //toplam led


int durum=0;


CRGB leds[NUM_LEDS];



void setup() {

FastLED.addLeds<WS2811, LED_PIN, GRB>(leds, NUM_LEDS);

pinMode(park, INPUT);

pinMode(fren, INPUT);

pinMode(7, INPUT);







}




void loop()

{




if(digitalRead(fren)==0) // fren ledi söndür

{

if(digitalRead(park)==0)

{  

FRENOFF();

}

}




if(digitalRead(fren)==1)

{

if(digitalRead(park)==0) // fren ledini yak

{  

FRENONS();

}

}




if(digitalRead(park)==1)

{

if(digitalRead(fren)==1) //Fren ledini yak

{  

FRENONS();

}

}




if(digitalRead(park)==1)

{

if(digitalRead(fren)==0) // park ledini yak

{  

PARKON();

}

}







}




void ALLOFF() // hepsini söndür.

{

  for (int i = 0; i > NUM_LEDS; i++)

  {

    leds[i] = CRGB(0, 0, 0);

  }

    FastLED.show();  

}




void FRENONS() // FREN LEDİNİ YAK

{

  for (int i = 0; i < NUM_LEDS; i++)

  {

    leds[i].setRGB(255, 0, 0);

    FastLED.show();

  }

    delay(80);

   

  for (int i = 0; i < NUM_LEDS; i++)

  {

    leds[i].setRGB(0, 0, 0);

    FastLED.show();

  }

    delay(80);




      for (int i = 0; i < NUM_LEDS; i++)

  {

    leds[i].setRGB(255, 0, 0);

    FastLED.show();

  }

    delay(80);




      for (int i = 0; i < NUM_LEDS; i++)

  {

    leds[i].setRGB(255, 0, 0);

    FastLED.show();

  }

    delay(80);




 

 

     for (int i = 21; i >=0; i++)

  {

    leds[i] = CRGB(255, 0, 0);

  }

    FastLED.show();  

 




}




void FRENOFF() // fren söndür.

{

  for (int i = 0; i < NUM_LEDS; i++)

  {

    leds[i] = CRGB(0, 0, 0);

  }

    FastLED.show();  

}













void PARKON() // PARK lambasini yak

{




for (int i = 4; i < 16; i++)

{




leds[i].setRGB(0, 0, 0);

leds[i+1].setRGB(255, 0, 0);

leds[i+2].setRGB(255, 0,0 );

   delay(100);

 

  durum = digitalRead(7);







   if(durum == HIGH) // fordan yedi piniyle çık

   {

    break;

    }

   

     FastLED.show();

    }




for (int j = 16; j > 4; j--)

{




leds[j].setRGB(255, 0, 0);

leds[j+1].setRGB(255, 0, 0);

leds[j+2].setRGB(0, 0,0 );







   delay(100);




     durum = digitalRead(7);







   if(durum == HIGH) // fordan 7 piniyle çık

   {

    break;

    }

   

     FastLED.show();    

  }




}



< Resime gitmek için tıklayın >





< Bu mesaj bu kişi tarafından değiştirildi Emreöztrk -- 17 Haziran 2023; 12:47:31 >


Bu mesajda bahsedilenler: @rafet32 , @japon_japon , @ipli jeton
E
2 yıl
Er
Konu Sahibi

Bahsettiginiz gibi olabilir. Ben simulasyon sitesinde çalıştırdım. Fakat renk karışmasından kastınızı anlamadim. Cevap verdiğiniz için teşekkürler. Umarim etiketledigim kişilerde cevap verir. @karafetva





< Bu mesaj bu kişi tarafından değiştirildi Emreöztrk -- 17 Haziran 2023; 8:30:18 >

< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @karafetva
K
2 yıl
Yarbay

Sadece bu konudaki siyah ekranlardan bahsediyorum. Satırlar arası fazlaca boşluk var belki kopyalayıp-yapıştırılınca kendi kendine oldu. Yine bu ekranda renkler karışık çıkmış harflerin, takibini zorlaştırıyor.
Tamamen görsel konu...




Bu mesajda bahsedilenler: @Emreöztrk
E
2 yıl
Er
Konu Sahibi

Anladim. Evet duzenliyim onuda tesekkurler
@karafetva





< Bu mesaj bu kişi tarafından değiştirildi Emreöztrk -- 17 Haziran 2023; 9:36:25 >

< Bu ileti mobil sürüm kullanılarak atıldı >

E
2 yıl
Er
Konu Sahibi

teşekkür ederim. deneyeceğim.




Bu mesajda bahsedilenler: @ipli jeton
R
2 yıl
Binbaşı

Arduinoyu aktif olarak kullanmıyorum ama aşağıdaki pseude code (sözde kod) örneği kurmanız gereken algoritma konusunda size fikir verebilir.


int step=0; // 0 : ledler sondu 1: ledler animasyon 2: ledler sabit yansın
int ani_index = 0; // animasyon index

void loop()
{

//fren pedalına basıldı ilk stepden başla
if (fren_pini == 1) and (step == 0) step = 1;

//fren pedalı bırakıldı
if fren_pini == 0) step = 0;


switch(step)
{
default:
case 0:
led_sondur();
ani_index = 0; //sonraki pedala basmada animasyon tekrar 0 dan başlasın
break;

case 1:
animasyon(ani_index);
ani_index++; //20x100ms = 2sn animasyon kısmı çalışsın
if (ani_index > 20) step = 2;
break;

case 2:
ledler_sabit_yan();
break;
}

delay(100); // animasyon lar arası geçiş ve
// fren pedalını bırakında ledlerin sönme gecikmesi.
// Çok fazla uzun olmaması iyi olur.


}

void led_sondur()
{
// ledleri söndürmek için gerekli kodlar
}

void ledler_sabit_yan()
{
// sabit yanması için gerekli kodlar
}

void animasyon(ax)
{
if (ax % 2 == 0)
{
//animasyon 1. frame için ledleri uygun şekilde yak
}
else
{
//animasyon 2. frame için ledleri uygun şekilde yak
}
// 2 frame haricinde başaka bir animasyon için bu yapı uygun şekilde düzenlenebir.

}


Bu mesaja 1 cevap geldi.
E
2 yıl
Er
Konu Sahibi

çok teşekkür ederim. paylaştığınız kod üzerinde değişiklikler yapıcam. sanırım bu yapı benimkinden daha sade ve anlaşılır.




Bu mesajda bahsedilenler: @rafet32
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.