Başka bir örnek - 1:


Bahsettiğiniz projeyi gerçekleştirmek için Arduino ve uygun bir RGB LED şeridi kullanabilirsiniz. İşte bağlantıları ve Arduino kodunu sağlayan bir rehber:

Bağlantılar:

  1. RGB LED şeridini Arduino'ya bağlamak için aşağıdaki gibi bağlantılar yapabilirsiniz:
    • RGB LED şeridi VCC pinini Arduino'nun 5V pinine bağlayın.
    • RGB LED şeridi GND pinini Arduino'nun GND pinine bağlayın.
    • RGB LED şeridi DIN (Data In) pinini Arduino'nun herhangi bir dijital pinine bağlayın (örneğin, D2).
  2. Step motor için sürücü bir kart kullanmanız gerekebilir. Bu projede örnek olarak A4988 step motor sürücü kartı kullanalım. Bağlantılar:
    • Step motorun her iki bobini de sürücü kartına bağlayın.
    • Sürücü kartının EN (Enable), DIR (Direction), ve STEP pinlerini Arduino'nun herhangi üç dijital pinine bağlayın. Bu pinleri aşağıdaki Arduino kodunda kullanacağız.

Arduino Kodu:


#include <Adafruit_NeoPixel.h>

#define LED_PIN 2            // RGB LED şeridinin bağlı olduğu pin
#define NUM_LEDS 20          // RGB LED sayısı
#define MOTOR_EN_PIN 3       // Step motor sürücüsünün Enable pin
#define MOTOR_DIR_PIN 4      // Step motor sürücüsünün Direction pin
#define MOTOR_STEP_PIN 5     // Step motor sürücüsünün Step pin
#define MOTOR_STEPS_PER_REV 200 // Step motorun her turdaki adım sayısı
#define DELAY_BETWEEN_STEPS 1000 // Step motorun her adım arasındaki gecikme (1 saniye)

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
  strip.show(); // LED şeridini başlat

  pinMode(MOTOR_EN_PIN, OUTPUT);
  pinMode(MOTOR_DIR_PIN, OUTPUT);
  pinMode(MOTOR_STEP_PIN, OUTPUT);
  digitalWrite(MOTOR_EN_PIN, LOW); // Step motor sürücüsünü etkinleştirin

  // Step motorun dönüş yönünü ayarlayın (saat yönü veya saat yönünün tersi)
  digitalWrite(MOTOR_DIR_PIN, HIGH); // Saat yönü
  // digitalWrite(MOTOR_DIR_PIN, LOW); // Saat yönünün tersi
}

void loop() {
  // RGB LED şeridini her bir saniyede bir renk değiştirme
  for (int i = 0; i < 255; i++) {
    for (int j = 0; j < strip.numPixels(); j++) {
      strip.setPixelColor(j, Wheel((j + i) & 255));
    }
    strip.show();
    delay(1000); // 1 saniye bekle
  }

  // Step motoru tam bir tur (360 derece) döndür
  for (int steps = 0; steps < MOTOR_STEPS_PER_REV; steps++) {
    digitalWrite(MOTOR_STEP_PIN, HIGH);
    delayMicroseconds(DELAY_BETWEEN_STEPS);
    digitalWrite(MOTOR_STEP_PIN, LOW);
    delayMicroseconds(DELAY_BETWEEN_STEPS);
  }
}

// RGB renk geçişleri için yardımcı bir fonksiyon
uint32_t Wheel(byte WheelPos) {
  if (WheelPos < 85) {
    return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  } else if (WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else {
    WheelPos -= 170;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
}


Başka bir örnek - 2:

Bahsettiğiniz projeyi gerçekleştirmek için Arduino ve gerekli bileşenleri kullanabilirsiniz. İşte projenin bağlantıları ve Arduino kodu:
Malzemeler:
  1. Arduino (örneğin, Arduino Uno)
  2. 20 adet RGB LED (veya tek renk LED'ler de kullanabilirsiniz)
  3. 1 adet Step Motor (Servo Motor değil)
  4. 20 adet 220 ohm direnç
  5. Jumper kabloları
  6. Breadboard (veya prototip kartı)
  7. Step motor sürücü (örneğin, L298N)
Devre Bağlantısı:
  1. RGB LED'leri bağlantı yapmak için birbirlerine paralel olarak bağlayabilirsiniz. Her bir RGB LED'nin 3 pinini (R, G ve B) birbirine bağlayın ve bu pinleri bir Arduino pinine bağlayın. Anot uçlarına 220 ohm dirençler bağlayarak Arduino'nun dijital pinlerine bağlayın. RGB LED'ler için toplam 20 adet 220 ohm direnç kullanacaksınız.
  2. Step motoru bir step motor sürücü (örneğin, L298N) kullanarak Arduino'ya bağlayın. Sürücünün IN1, IN2, IN3 ve IN4 pinlerini Arduino'nun dijital pinlerine bağlayın. Ayrıca, step motorun beslemesini ve toprak bağlantısını sağlamak için uygun güç kaynağına bağlayın.
Arduino Kodu: Aşağıda, RGB LED'lerin renk değiştirdiği ve step motorun döndüğü bir Arduino kodu örneği bulunmaktadır. Bu kod, her bir RGB LED'nin renklerini yavaşça değiştirir ve step motoru tam bir tur yapar. Bir dakika sonra döngüyü yeniden başlatır.

#include <Servo.h>

Servo myservo;
int pos = 0;

int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, A0, A1, A2, A3, A4, A5, A6, A7};
int numLEDs = 20;
int delayTime = 1000; // 1 saniyede bir renk değişimi

void setup() {
  myservo.attach(9);  // Servo motor 9. pine bağlı
  for (int i = 0; i < numLEDs; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
}

void loop() {
  // RGB LED'lerin renk değişimi
  for (int i = 0; i < 255; i++) {
    for (int j = 0; j < numLEDs; j++) {
      analogWrite(ledPins[j], i);
      delay(delayTime / 255);
    }
  }
  
  // RGB LED'leri sıfırla
  for (int i = 0; i < numLEDs; i++) {
    analogWrite(ledPins[i], 0);
  }

  // Step motoru bir tur döndür
  for (pos = 0; pos <= 180; pos += 1) {
    myservo.write(pos);
    delay(1000 / 180); // 1 saniyede 1 dönme
  }
  for (pos = 180; pos >= 0; pos -= 1) {
    myservo.write(pos);
    delay(1000 / 180); // 1 saniyede 1 dönme
  }

  delay(60000); // 1 dakika bekle
}
Bu kod, her bir RGB LED'nin rengini yavaşça değiştirir ve step motoru tam bir tur yapar. Ardından 1 dakika bekleme süresi ekler ve döngüyü yeniden başlatır. Bu şekilde projenizi bir saat boyunca çalıştırabilirsiniz. Bağlantıları doğru bir şekilde yaparak ve kodu Arduino'ya yükleyerek projenizi hayata geçirebilirsiniz.