Arduino ile Led Rotating beacon Uygulaması

Zafer ŞAHİN

Mahna Mahna ...
Katılım
29 Ağu 2013
Mesajlar
1,313
Tepkime puanı
2,193
Yaş
47
Konum
İstanbul
İlgi Alanı
Multikopter
Hakan Ülgenalp' Alıntı:
Zafer hocam , bu kart ile rotating bacon lamp yapma imkanımız var mı , hangi rc modelde görürsem göreyim , hep ilgimi çekmiştir.Nette birkaç kaynak buldum ama malesef elektronik bilgim yetersiz olunca , öyle baktım sadece.PİC programlama işi oldum olası bana da çok çekici gelmiştir.Eğer buna benzer bir çalışmanız olursa ilerde, dört gözle paylaşımınızı bekliyor olacağım , Sümer abimin kumanda askı ölçülerini beklediğim gibi... :p :lol:

Led ile rotating beacon şunun gibi bir şey midir ?
Bu VIDEOYU görmek için izniniz yok. Giriş yap veya üye ol

Eğer yukarıdaki gibi bir şeyse, rahatlıkla yapılabilir :). Bu arada parmağı sonradan farkedip videoyu yeniden çekmeye üşendim ...

Bu konu aşağıdaki konudaki mesajların taşınması ile oluşturulmuştur.
 
Arduino ile Led Rotating beacon Uygulaması

Hakan Ülgenalp' Alıntı:
Aslında navigasyon ışıklandırmada strobe led diyorlar buna galiba ama benim kastettiğim şöyle bir ışık sistemi...

Bu VIDEOYU görmek için izniniz yok. Giriş yap veya üye ol

Soldakine sonsuz dönen servo motor ile bir düzenek yapılmış , sürekli yanan bir ledi mekanik olarak gerçeği gibi simüle etmiş arkadaş ama , bu mekanik sistem çok yer kaplayıp gereksiz ağırlık.Sağdaki ise 4 smd ledi elektronik bir ekipmanla simüle etmiş ve bence çok gerçekçi , bunu araştırıyorum Zafer bey......... :RCKolik:

Hakan bende buna kafa yoruyordum, 4 led i sarıp yapmışlar gerisi yürüyen ışık devresiyle hallolur biraz daha kafa yoralım bakalım.

Bu VIDEOYU görmek için izniniz yok. Giriş yap veya üye ol

Here is my first verry small "virtual" rotating LED beacon.

I soldered them from 4 x 0603 SMD LEDs. They only need a room about 2,5 mm^3.

To make the round tripping more realistic I programmed a PIC Microchip 12F629 with 4 PWM outputs signals.

nasıl yaptığını da burada anlatmış




Bu VIDEOYU görmek için izniniz yok. Giriş yap veya üye ol

Rotating Beacon with 4x 0603 led's and custom board. Will have single and dual units for sale in a few weeks! Board is .4" x .5" and Beacon is about 1.3mm x 1.3mm x 1.6mm. Great for models, trains, dioramas, Faller cars, ect. Available in Red, Blue, Amber and single or double beacons. Also 5vdc - 24vdc units or 2.4vdc - 5vdc units available special order no additional cost. I will post more info in a couple weeks once I get the new designed boards back. Single units $30 and double $50

Bu VIDEOYU görmek için izniniz yok. Giriş yap veya üye ol
 
Arduino ile Led Rotating beacon Uygulaması

Celalettin abi, o devreyi arduino ile yapmak için gerekenler.

- 1 tane Arduino :)
- 4 tane SMD led
- 4 tane akım sınırlayıcı direnç(tercihen 150 Ohm)

Başka hiç bir şeye gerek yok. Tabii bende olmayan ince el işçiliğini saymazsak :).
 
Arduino ile Led Rotating beacon Uygulaması

Zafer SAHIN' Alıntı:
Celalettin abi, o devreyi arduino ile yapmak için gerekenler.

- 1 tane Arduino :)
- 4 tane SMD led
- 4 tane akım sınırlayıcı direnç(tercihen 150 Ohm)

Başka hiç bir şeye gerek yok. Tabii bende olmayan ince el işçiliğini saymazsak :).

Bize de arduino bulaştı artık bir şeyler yaparız :bravo: .Hele banggood a siparişi verelim hayırlısıyla bir gelsin bakalım. :)
Bu arada arduino için ayrı bir konu açıp(nasıl başlamalı, ilk etapta neler almalıyız gibi) oradan devam etsek diyorum burada ki bilgileri de oraya transfer ederiz.
Yazılarını zevkle okuyorum eline emeğine sağlık üşenmeden o kadar bilgiyi buraya yazıyorsun sağolasın. :saygilar:
 
Arduino ile Led Rotating beacon Uygulaması

Olayın mekanik çözümü güç. Bence ilk aşamada tek bir LED ile denemek lazım. Sürekli artıp azalan bir PWM sinyali ile LED'in yumuşak yanıp sönmesi sağlanabilir. Zamanlamalarla biraz oynanarak gayet güzel bir beacon etkisi elde edilebilir gibime geliyor.
 
Arduino ile Led Rotating beacon Uygulaması

Aslında ilk yayınladığım videoda PWM vasıtası ile yumuşak yanıp sönen tek LED'i göstermeye çalışmıştım ama diğer anahtar pozisyonları işin içine girdiği için kafa karıştırıcı olmuş. Video'nun gerekli kısımları şöyle.

Bu VIDEOYU görmek için izniniz yok. Giriş yap veya üye ol

Tek led ile yazılmış kod, dört led ile yapılmış PWM'siz basit kod, dört LED ile yapılmış PWM'li gelişmiş kodu, müsait olunca atacağım.
 
Arduino ile Led Rotating beacon Uygulaması

Zafer SAHIN' Alıntı:
Tek led ile yazılmış kod, dört led ile yapılmış PWM'siz basit kod, dört LED ile yapılmış PWM'li gelişmiş kodu, müsait olunca atacağım.
Harikasınız Zafer Bey :thumbup:

Bu arada aslında Multi Led kullanılsa sanırım Rotating etkisi çok daha bariz bir şekilde elde edilebilir.
 
Arduino ile Led Rotating beacon Uygulaması

Bu iş için en uygun malzeme SMD led gibi görünüyor ama SMD ile çalışmakta zordur. Aşağıda kullanılabilecek SMD ölçüleri var. Tercih ederken boyutları ve lehimleme güçlüğünü de gözönünde bulundurmak lazım.


0402 (1005): 0.04" × 0.02" (1.0 mm × 0.5 mm)
0603 (160:coolxf:: 0.063" × 0.031" (1.6 mm × 0.8 mm)
0805 (2012): 0.08" × 0.05" (2.0 mm × 1.25 mm)
1206 (3216): 0.126" × 0.063" (3.2 mm × 1.6 mm)

Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol
 
Arduino ile Led Rotating beacon Uygulaması

12AWG kabloyu lehimlerken bile canım çıkıyor. SMD lehimlemeyi düşünecek arkadaşlara şimdiden kolaylıklar diliyorum :). Bende olmayan bir yetenek.
 
Arduino ile Led Rotating beacon Uygulaması

Zafer hocam sen yolu göster , lehimleme işini ben hallederim , loop altında 5-10 dakka sürer en çok , hele ekipmanı ve programlamasını bilelim yeter.Bahar geliyor , model hazır , ne yapıp edip , ışıklandırmasıyla scaleyi uçurmam lazım... :D
 
Arduino ile Led Rotating beacon Uygulaması - Emulated Rotating Led

Hakan bey, öncelikle tek led için, 16 parlaklık adımına sahip, yumuşak yanıp sönen LED.

Kod:
/* Emulated Rotating Led with One led
 by Zafer SAHIN 
 License of this example code is TEA-WARE.
 modified 12/01/2015 by Zafer SAHIN
 version 0.31
 * ----------------------------------------------------------------------------
 * "THE TEA-WARE LICENSE" (Revision 01):
 * Zafer SAHIN wrote this file.  As long as you retain this notice you
 * can do whatever you want with this stuff. If we meet some day, and you think
 * this stuff is worth it, you can treat me a tea in return. Zafer SAHIN
 * ----------------------------------------------------------------------------
*/

int beaconLed = 11;
int brightness = 0;
int iCnt = 0;
double baseVal = 0;

void setup() {
  pinMode(beaconLed, OUTPUT);
  baseVal = sqrt(2);
}

void loop() {
// 16 step resolution
  for (iCnt = 1; iCnt <= 16; iCnt++) {
    brightness = (pow(baseVal, iCnt) - 0.5);
    analogWrite(beaconLed, brightness);
    // Wait 50 milliseconds in every brightness level
    delay(50);
  }
// Wait 100 milliseconds while led is at maximum brightness
delay(100);
  for (iCnt = 16; iCnt >= 1; iCnt--) {
    brightness = (pow(baseVal, iCnt) - 0.5);
    analogWrite(beaconLed, brightness);
    // Wait 50 milliseconds in every brightness level
    delay(50);
  }
// Wait 100 milliseconds while led is at minimum brightness
delay(100);
}

16 adım parlaklığın niye öyle bir formülle hesaplandığını merak diyorsanız telefonda açıklayabilirim, yazmak için biraz karışık :).

Düzenleme: 0.31 versiyonu ile beraber BUG düzeltmesi ve minimum parlaklık ile ilgili güncellemeler yapıldı.
 
Arduino ile Led Rotating beacon Uygulaması - 4 Rotating left without PWM

Bu kod da 4 ledli basit bir beacon'a ait. PWM olmadığı için yumuşatma efekti yok. Ama zaten daha önceki videolarda görüldüğü üzere, yumuşatma efekti çok da bariz bir fark yaratmıyor. Bu kodda PWM kullanılmadığı için Nano ve ProMini mini gibi kartların sahip olduğu 13 dijital pinden D02 - D12 arasındaki 10 pin için bu kod kullanılabilir.

Kod:
/* 4 Rotating Led without PWM
 by Zafer SAHIN 
 License of this example code is TEA-WARE.
 modified 12/01/2015 by Zafer SAHIN
 version 0.2
 * ----------------------------------------------------------------------------
 * "THE TEA-WARE LICENSE" (Revision 01):
 * Zafer SAHIN wrote this file.  As long as you retain this notice you
 * can do whatever you want with this stuff. If we meet some day, and you think
 * this stuff is worth it, you can treat me a tea in return. Zafer SAHIN
 * ----------------------------------------------------------------------------
*/

int beaconLed[] = {3,9,10,11};  // Pin numbers to attach the leds :

void setup() {
  pinMode(beaconLed[0], OUTPUT);
  pinMode(beaconLed[1], OUTPUT);
  pinMode(beaconLed[2], OUTPUT);
  pinMode(beaconLed[3], OUTPUT);
}

void loop() {
// STEP1
  digitalWrite(beaconLed[0], HIGH);
  digitalWrite(beaconLed[1], LOW);
  digitalWrite(beaconLed[2], LOW);
  digitalWrite(beaconLed[3], LOW);
  // Wait 100 milliseconds in every rotating position
  delay(100);

// STEP2
  digitalWrite(beaconLed[0], LOW);
  digitalWrite(beaconLed[1], HIGH);
  digitalWrite(beaconLed[2], LOW);
  digitalWrite(beaconLed[3], LOW);
  // Wait 100 milliseconds in every rotating position
  delay(100);

// STEP3
  digitalWrite(beaconLed[0], LOW);
  digitalWrite(beaconLed[1], LOW);
  digitalWrite(beaconLed[2], HIGH);
  digitalWrite(beaconLed[3], LOW);
  // Wait 100 milliseconds in every rotating position
  delay(100);

// STEP4
  digitalWrite(beaconLed[0], LOW);
  digitalWrite(beaconLed[1], LOW);
  digitalWrite(beaconLed[2], LOW);
  digitalWrite(beaconLed[3], HIGH);
  // Wait 100 milliseconds in every rotating position
  delay(100);
}
 
Arduino ile Led Rotating beacon Uygulaması - 4 Rotating LED with simple PWM

Bu kodda da PWM kullanılarak basit bir yumuşatma efekti veriliyor. Asıl yanan ledin yanındaki 2 ledin parlaklığı 8'de 1 kadar. Parlaklık dereceleri ve adım sayıları arttırılabilir ama bu kodu ciddi derecede karmaşıklaştıracaktır.

Ayrıca Nano ve ProMini gibi kartlarda sadece 3, 5, 6, 9, 10, 11 numaralı pinler PWM çıkışı verme yeteneğine sahiptir. Yani,PWM kullandığımız takdirde tek kartla sadece 6 led kullanılabilir. Daha karışık kodlama teknikleri ile PWM efekti taklit edilebilir ama kod karışır .... :).

Kod:
/* Simple 4 Rotating Led with PWM
 by Zafer SAHIN 
 License of this example code is TEA-WARE.
 modified 12/01/2015 by Zafer SAHIN
 version 0.21
 * ----------------------------------------------------------------------------
 * "THE TEA-WARE LICENSE" (Revision 01):
 * Zafer SAHIN wrote this file.  As long as you retain this notice you
 * can do whatever you want with this stuff. If we meet some day, and you think
 * this stuff is worth it, you can treat me a tea in return. Zafer SAHIN
 * ----------------------------------------------------------------------------
*/

int beaconLed[] = {3,9,10,11};  // pin numbers to attach the leds

void setup() {
}

void loop() {
// STEP1
  analogWrite(beaconLed[0], 255);
  analogWrite(beaconLed[1], 31);
  analogWrite(beaconLed[2], 0);
  analogWrite(beaconLed[3], 31);
  // Wait 100 milliseconds in every rotating position
  delay(100);

// STEP2
  analogWrite(beaconLed[0], 31);
  analogWrite(beaconLed[1], 255);
  analogWrite(beaconLed[2], 31);
  analogWrite(beaconLed[3], 0);
  // Wait 100 milliseconds in every rotating position
  delay(100);

// STEP3
  analogWrite(beaconLed[0], 0);
  analogWrite(beaconLed[1], 31);
  analogWrite(beaconLed[2], 255);
  analogWrite(beaconLed[3], 31);
  // Wait 100 milliseconds in every rotating position
  delay(100);

// STEP4
  analogWrite(beaconLed[0], 31);
  analogWrite(beaconLed[1], 0);
  analogWrite(beaconLed[2], 31);
  analogWrite(beaconLed[3], 255);
  // Wait 100 milliseconds in every rotating position
  delay(100);
}
 
Arduino ile Led Rotating beacon Uygulaması

Zafer Bey kodlara bakamadım henüz. Videodaki LED gayet iyi. Arada hiç sıfıra inmemeli. Tek eksik bu.
 
Arduino ile Led Rotating beacon Uygulaması

Sümer Yamaner' Alıntı:
Zafer Bey kodlara bakamadım henüz. Videodaki LED gayet iyi. Arada hiç sıfıra inmemeli. Tek eksik bu.

Kod:
for (iCnt = 0; iCnt <= 16; iCnt++) {
...
for (iCnt = 16; iCnt >= 0; iCnt--) {

yerine

Kod:
for (iCnt = 1; iCnt <= 16; iCnt++) {
...
for (iCnt = 16; iCnt >= 1; iCnt--) {
yazıldığı anda parlaklık asla sıfıra inmeyecektir. Tabii aradaki "delay" değerlerinide uygun bir şekilde değiştirmek lazım.