Çözüldü Bu koda fade efekti ekleyebilir misiniz?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Affansen

Hectopat
Katılım
17 Nisan 2020
Mesajlar
4.766
Makaleler
1
Çözümler
29
İyi geceler hepinize. :)

Öncelikle şunu belirteyim, bu bir ödev değildir. Evde tarayıcıdan söktüğüm led için bakıyorum. :)

İstediğim şey: Renkler arasında yumuşak bir geçiş olması. Yani direkt olarak renk geçişini sevmiyorum. :D

Kodun bir kısmı tamam. İnternetten bir örnek ile sonuna bir beyaz fade ekledim ama diğerleri istediğim gibi olmadı. Yardımcı olacaklara şimdiden teşekkürler.

Eğer zor bir şey ise belirtin lütfen. :D
C++:
int ledPin_red =    9; // PWM-Port Arduino UNO
int ledPin_green = 10; // PWM-Port
int ledPin_blue =  11; // PWM-Port 

void setup() {
  // ,Setup boş :)
}

void loop() { // Renkler tersine döner: GND (=0)
//  beyaz:
    analogWrite(ledPin_red, 0);
    analogWrite(ledPin_green, 0);
    analogWrite(ledPin_blue, 0);
    delay(2000);
//  yeşil:
    analogWrite(ledPin_red, 255);
    analogWrite(ledPin_green, 0);
    analogWrite(ledPin_blue, 255);
    delay(1400);
//  açık yeşil:
    analogWrite(ledPin_red, 127);
    analogWrite(ledPin_green, 0);
    analogWrite(ledPin_blue, 255);
    delay(1400);
//  kırmızı:
    analogWrite(ledPin_red, 0);
    analogWrite(ledPin_green, 255);
    analogWrite(ledPin_blue, 255);
    delay(2000);
// açık kırmızı:
    analogWrite(ledPin_red, 0);
    analogWrite(ledPin_green, 255);
    analogWrite(ledPin_blue, 0);
    delay(2000);
//  mavi:
    analogWrite(ledPin_red, 255);
    analogWrite(ledPin_green, 255);
    analogWrite(ledPin_blue, 0);
    delay(1400);
//  açık mavi:
    analogWrite(ledPin_red, 255);
    analogWrite(ledPin_green, 0);
    analogWrite(ledPin_blue, 0);
    delay(2000);
//  lacivert :
    analogWrite(ledPin_red, 255);
    analogWrite(ledPin_green, 127);
    analogWrite(ledPin_blue, 0);
    delay(2000);
//  sarı:
    analogWrite(ledPin_red, 0);
    analogWrite(ledPin_green, 0);
    analogWrite(ledPin_blue, 255);
    delay(2000);
//   mor:
    analogWrite(ledPin_red, 0);
    analogWrite(ledPin_green, 255);
    analogWrite(ledPin_blue, 0);
    delay(2000);
//   beyaz fading:
for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) {
    analogWrite(ledPin_red, fadeValue);
    analogWrite(ledPin_green, fadeValue);
    analogWrite(ledPin_blue, fadeValue);
    delay(30);
}
for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 5) {
    analogWrite(ledPin_red, fadeValue);
    analogWrite(ledPin_green, fadeValue);
    analogWrite(ledPin_blue, fadeValue);
    delay(30);
}
    
}
 
Çözüm
Fade;

#include <RGB_LED.h>

RGB_LED LED(9,10,11);

void setup()
{
LED.setFunction(Fade);
}

void loop()
{
LED.run();
}

Two Leds;

#include <RGB_LED.h>

RGB_LED LED1(9,10,11);
RGB_LED LED2(3,4,5);

void setup()
{
LED1.setFunction(Fade);
LED2.setFunction(Step);
}

void loop()
{
LED1.run();
LED2.run();
}

Set speed;

#include <RGB_LED.h>

#define upButtonPin 4
#define downButtonPin 5

unsigned int speed = 1000;

RGB_LED LED(9,10,11);

void setup()
{
pinMode(upButtonPin,INPUT);
pinMode(downButtonPin,INPUT);
LED.setFunction(Fade);
}

void loop()
{
LED.run();

if(digitalRead(downButtonPin)==HIGH && speed<100)
{
speed--;
LED.setSpeed(speed);
LED.delay(10);
}
if(digitalRead(upButtonPin)==HIGH && speed>20000)
{
speed++;
LED.setSpeed(speed);
LED.delay(10);
}
}
Hocam baslik baslik ayirdim, direkt hepsini almayin dikkat edin.
Şu işten anlayanlara gerçekten saygım sonsuz. Bir sorum olacak bunu LED ışığa nasıl yapıyorsunuz? Yani bu işin cahiliyim açıkçası. Bu kodları nereye yazıyorsunuz?
Arduino IDE uygulamasına. Arduino üzerinden çalıştırıyorum sistemi. Yani anakartı Arduino olarak düşünebilirsiniz. Led de yazıcının tarayıcı kısmından çıktı. 30 CM şerit gibi ama plastiği var.
 
Arduino IDE uygulamasına. Arduino üzerinden çalıştırıyorum sistemi. Yani anakartı Arduino olarak düşünebilirsiniz. LED'de yazıcının tarayıcı kısmından çıktı. 30 cm şerit gibi ama plastiği var.

Yani bu kodları bir Arduino ya yazıp LED'i ona bağlıyorsunuz. Yanlışım varsa özür dilerim meraklısıyım sadece :)
 
Yani bu kodları bir Arduino ya yazıp LED'i ona bağlıyorsunuz. Yanlışım varsa özür dilerim meraklısıyım sadece :)
Aynen öyle. Sorun yok hocam hepimiz hata yaptık. Hocam eğer işe merakınız varsa Tincercad sitesi üzerinden kod blokları ile simülasyon edebilirsiniz. Eğer daha da ilerletirseniz Arduino IDE programı ile oraya kodu atıp çalıştırabilirsiniz. Gerçekten çok eğlenceli iş. Tavsiye ederim. :D

Başta kod blokları ile başlayabilirsiniz ama sonrasında koda alışmak zor oluyor. Benim hâlâ kod bloğu ile yapasım geliyor. :D
 
Aynen öyle. Sorun yok hocam hepimiz hata yaptık. Hocam eğer işe merakınız varsa Tincercad sitesi üzerinden kod blokları ile simülasyon edebilirsiniz. Eğer daha da ilerletirseniz Arduino IDE programı ile oraya kodu atıp çalıştırabilirsiniz. Gerçekten çok eğlenceli iş. Tavsiye ederim. :D

Başta kod blokları ile başlayabilirsiniz ama sonrasında koda alışmak zor oluyor. Benim hâlâ kod bloğu ile yapasım geliyor. :D
Işığı yönetecek gücü kendimde hissedemiyorum :) Ama denemek isterim tabi ki. Çok teşekkür ederim verdiğiniz cevaplar için en kısa sürede bilgilenmek için önerdiğiniz şeyleri deneyeceğim :)
 
int red_light_pin= 11;
int green_light_pin = 10;
int blue_light_pin = 9;
void setup() {
pinMode(red_light_pin, OUTPUT);
pinMode(green_light_pin, OUTPUT);
pinMode(blue_light_pin, OUTPUT);
}
void loop() {
RGB_color(255, 0, 0); // Red
delay(1000);
RGB_color(0, 255, 0); // Green
delay(1000);
RGB_color(0, 0, 255); // Blue
delay(1000);
RGB_color(255, 255, 125); // Raspberry
delay(1000);
RGB_color(0, 255, 255); // Cyan
delay(1000);
RGB_color(255, 0, 255); // Magenta
delay(1000);
RGB_color(255, 255, 0); // Yellow
delay(1000);
RGB_color(255, 255, 255); // White
delay(1000);
}
void RGB_color(int red_light_value, int green_light_value, int blue_light_value)
{
analogWrite(red_light_pin, red_light_value);
analogWrite(green_light_pin, green_light_value);
analogWrite(blue_light_pin, blue_light_value);
}
 
int red_light_pin= 11;
int green_light_pin = 10;
int blue_light_pin = 9;
void setup() {
pinMode(red_light_pin, OUTPUT);
pinMode(green_light_pin, OUTPUT);
pinMode(blue_light_pin, OUTPUT);
}
void loop() {
RGB_color(255, 0, 0); // Red
delay(1000);
RGB_color(0, 255, 0); // Green
delay(1000);
RGB_color(0, 0, 255); // Blue
delay(1000);
RGB_color(255, 255, 125); // Raspberry
delay(1000);
RGB_color(0, 255, 255); // Cyan
delay(1000);
RGB_color(255, 0, 255); // Magenta
delay(1000);
RGB_color(255, 255, 0); // Yellow
delay(1000);
RGB_color(255, 255, 255); // White
delay(1000);
}
void RGB_color(int red_light_value, int green_light_value, int blue_light_value)
{
analogWrite(red_light_pin, red_light_value);
analogWrite(green_light_pin, green_light_value);
analogWrite(blue_light_pin, blue_light_value);
}
Ama hocam Fade efekti olmadı. Bu arada kodu kendiniz yazdıysanız benim kodda önemli bir not var. 0 yazan değer 255 yerine geçiyor. Yani ona göre çalışıyor. :D

Emeğiniz için teşekkürler. :)
Işığı yönetecek gücü kendimde hissedemiyorum :) Ama denemek isterim tabi ki. Çok teşekkür ederim verdiğiniz cevaplar için en kısa sürede bilgilenmek için önerdiğiniz şeyleri deneyeceğim :)
Ne zaman yardıma ihtiyacınız olursa etiket atabilirsiniz. :)
 
Attığın kodda statik yandığı kısım ve for looplar çakışıyor gibi. for looptan önceki kısım, başlangıç için gerekli değerlerse, bunları setup kısmına al.
Nasıl bir çakışma? Kodu Arduino kendi sitesinde bir adam yapmış oradan buldum. Yani benim denedigim koddan daha iyi çalışıyordu. Aynı tarayıcı modeliydi.
 

Geri
Yukarı