YERLİ ANAKART gibi YALAN haberlere komik bir TEPKİ aslında bu videonun başlığı 🙂 Kullanıla kullanıla yozlaştırılan, içi boşaltılan, önemsizleştirilen ve duyulduğunu güven sarsan bir kelime haline geldi ülkemizde bence “milli ve yerli” kelimeleri. Bu kavramların ciddi ciddi tartışılarak tanımlarının baştan yapılması gerek. Bu videoda yapıldığı gibi olur olmadık her şeyin yanına iliştirilmemeli.

Bu videoda uzun zamandır internette gördüğüm  akrilik cam kullanarak yapılmış aydınlatma eşyalarını, biraz geliştirerek bizde yapıyoruz. Videonun, gerçekten üretmek isteyen yaşı küçük genç kardeşlerimin hoşuna gideceğini düşünüyorum 🙂 Yazılımdan donanıma, 3 boyutlu baskısından montajına, sprey boyasından testine kadar tüm sürece şahit olabileceğiniz eğlenceli bir proje videosu. Ayrıca projede yapılan pek ayrıntı gerektiren konu için minik minik videolarda mevcut. Proje videosunu izledikten sonra bu küçüklere de göz atmak isteyebilirsiniz. Çayınız, çereziniz hazırsa İyi seyirler 🙂

►Şuan izlemek üzere olduğunuz video video, şu videoyu izlediğiniz varsayılarak hazırlanmıştır. Meraklı bir hobiciyseniz buna bakmak isteyebilirsiniz: Çalışma Dolmuşa Çevirmek (Masa Aydınlatma): https://youtu.be/7G0Fx3hrOK4

► Rotary Switch Kullanımı : https://youtu.be/anJ_ZDFcgQI
► PCB tasarımı hakkında eksra video : https://youtu.be/yi2lE8ZXLR0
► Yazılım kısmı merak edenler için ekstra video : https://youtu.be/rElaaP0s30c,

► Gökhan Abi’nin ilgili tasarım videosu : https://youtu.be/fjC9NwjmkkI

MALZEMELER

Videoda pek çok malzeme kullanıldı. Proje malzemelerinin yanı sıra bazı el aletleri ve cihazlarda vardı. Kendi yaratıcılığınızı kullanarak projenin şeklini, yapılış adımlarını değiştirebilirsiniz. Bu kısımda ağırlıklı olarak kullandığım komponent grubu ürünleri göreceksiniz. Videoyu izlemeden satın alma yapmamanızı tavsiye ederim.

  1. 5M 5050 RGB Şerit Led ( Su Geçirmez) — https://goo.gl/VCXB1u
  2. 2M 5050 RGB Şerit Led ( Normal – Ucuz Alternatif) — https://goo.gl/tj1Gb6
  3. Arduino Nano — https://goo.gl/DBwBqg
  4. 40Pin 2.54mm Dişi Header — https://goo.gl/qfB4X2
  5. Ic-180 Yeşil Buton — https://goo.gl/wHkM3M
  6. Potansiyometre — https://goo.gl/KEFx61
  7. Alternatif Potansiyometre Başlığı — https://goo.gl/LwkVVd
  8. Potansiyometre Başlığı — https://goo.gl/Acfoat
  9. 10K lık dirençler
  10. Breadboard tipi push buton
  11. 12V adaptör
  12. Dişi şase tipi barrel jack
  13. IRLZ44N ( breadboard protoipi için )
  14. Rotary Switch ( şunu izlemek isteyebilirsiniz https://youtu.be/anJ_ZDFcgQI )
  15. Tunik konnektörler
  16. Arduino için ses sensörü
  17. Akrilik plaka ( üzerine lazer ile türk bayrağı kazınmış )

DEVRE ŞEMASI

ARDUINO KODU

//PİN TANIMLAMALARI
#define RED_LED 10
#define GREEN_LED 11
#define BLUE_LED 9
#define SOUND_SENSOR A2
#define ANALOG_SEED A4
#define ROTARY_SWICH A0
#define SPEED_POT A1
//GLOBAL DEĞİŞKENLER
int  ROT_VALUE = 0, FADE_SPEED = 50;
byte ROT_POSITION = 0;
void setup()
{
Serial.begin(9600);
Serial.println("**sistem basladi**");
pinMode(RED_LED, OUTPUT);
pinMode(GREEN_LED, OUTPUT);
pinMode(BLUE_LED, OUTPUT);
pinMode(SOUND_SENSOR, INPUT);
pinMode(ROTARY_SWICH, INPUT);
pinMode(SPEED_POT, INPUT);
randomSeed(analogRead(ANALOG_SEED));
}
void loop()
{
int sound_value = analogRead(SOUND_SENSOR);
ROT_VALUE = analogRead(ROTARY_SWICH);
ROT_POSITION = find_position(ROT_VALUE);
switch (ROT_POSITION)
{
case 0: // off
led_control(0, 0, 0);
break;
case 1: // white
led_control(255, 255, 255);
break;
case 2: // red
led_control(255, 0, 0);
break;
case 3:// green
led_control(0, 255, 0);
break;
case 4:// blue
led_control(0, 0, 255);
break;
case 5:// purple
led_control(255, 0, 255);
break;
case 6:// orange
led_control(255, 75, 0);
break;
case 7:// sound dance
dance();
break;
case 8:// fade
fade();
break;
default:
break;
}
// Serial monitör ile debug için
update_serial(ROT_VALUE, ROT_POSITION, sound_value);
}
void dance()
{
int analogNumber1 = random(255);
int analogNumber2 = random(255);
int analogNumber3 = random(255);
if (analogRead(SOUND_SENSOR) < 500)
{
analogWrite(RED_LED , analogNumber1);
analogWrite(GREEN_LED , analogNumber2);
analogWrite(BLUE_LED , analogNumber3);
// müzik ritminde tek renk istenirse üstteki analogNumber içeren satırlar yorum yapılıp,
//alt satırdaki fonksiyon ile istenilen renk çağırılabilir.
// led_control(255, 75, 0);
}
else
{
analogWrite(RED_LED , 0);
analogWrite(GREEN_LED , 0);
analogWrite(BLUE_LED , 0);
}
}
void led_control(float r, float g, float b)
{
FADE_SPEED = analogRead(SPEED_POT);
FADE_SPEED = map(FADE_SPEED, 0, 1023, 0, 100);
r=(r*(FADE_SPEED/100.0));
g=(g*(FADE_SPEED/100.0));
b=(b*(FADE_SPEED/100.0));
analogWrite(RED_LED , r);
analogWrite(GREEN_LED , g);
analogWrite(BLUE_LED , b);
}
byte find_position(int a)
{
byte b;
if (a < 50)
b = 0;
else if (a >= 50 && a < 140)
b = 1;
else if (a >= 140 && a < 230)
b = 2;
else if (a >= 230 && a < 320)
b = 3;
else if (a >= 320 && a < 410)
b = 4;
else if (a >= 410 && a < 500)
b = 5;
else if (a >= 500 && a < 610)
b = 6;
else if (a >= 610 && a < 700)
b = 7;
else if (a >= 700 && a < 790)
b = 8;
else if (a >= 790 && a < 880)
b = 9;
else if (a >= 880 && a < 970)
b = 10;
else
b = 11;
return b;
}
void update_serial(int a, byte b, int c)
{
Serial.print("rot= "); Serial.print(a); Serial.print("   position= "); Serial.print(b);
Serial.print("  sound= "); Serial.println(c);
}
void fade()
{
int sinOut, i;
float rad;
analogWrite(RED_LED, 255);
analogWrite(BLUE_LED, 255);
analogWrite(GREEN_LED, 255);
for (i = 90; i <= 270; i++)
{
checkModChange();
if (ROT_POSITION != 8)
break;
checkFadeSpeed();
rad = DEG_TO_RAD * i;
sinOut = constrain((sin(rad) * 128) + 128, 0, 255);
analogWrite(GREEN_LED, sinOut);
delay(FADE_SPEED);
}
for (i = 90; i <= 270; i++)
{
checkModChange();
if (ROT_POSITION != 8)
break;
checkFadeSpeed();
rad = DEG_TO_RAD * i;
sinOut = constrain((sin(rad) * 128) + 128, 0, 255);
analogWrite(BLUE_LED, sinOut);
delay(FADE_SPEED);
}
for (i = 270; i >= 90; i--)
{
checkModChange();
if (ROT_POSITION != 8)
break;
checkFadeSpeed();
rad = DEG_TO_RAD * i;
sinOut = constrain((sin(rad) * 128) + 128, 0, 255);
analogWrite(GREEN_LED, sinOut);
delay(FADE_SPEED);
}
for (i = 90; i <= 270; i++)
{
checkModChange();
if (ROT_POSITION != 8)
break;
checkFadeSpeed();
rad = DEG_TO_RAD * i;
sinOut = constrain((sin(rad) * 128) + 128, 0, 255);
analogWrite(RED_LED, sinOut);
delay(FADE_SPEED);
}
for (i = 270; i >= 90; i--)
{
checkModChange();
if (ROT_POSITION != 8)
break;
checkFadeSpeed();
rad = DEG_TO_RAD * i;
sinOut = constrain((sin(rad) * 128) + 128, 0, 255);
analogWrite(BLUE_LED, sinOut);
delay(FADE_SPEED);
}
for (i = 90; i <= 270; i++)
{
checkModChange();
if (ROT_POSITION != 8)
break;
checkFadeSpeed();
rad = DEG_TO_RAD * i;
sinOut = constrain((sin(rad) * 128) + 128, 0, 255);
analogWrite(GREEN_LED, sinOut);
delay(FADE_SPEED);
}
for (i = 270; i >= 90; i--)
{
checkModChange();
if (ROT_POSITION != 8)
break;
checkFadeSpeed();
rad = DEG_TO_RAD * i;
sinOut = constrain((sin(rad) * 128) + 128, 0, 255);
analogWrite(GREEN_LED, sinOut);
analogWrite(RED_LED, sinOut);
delay(FADE_SPEED);
}
}
void checkModChange()
{
ROT_VALUE = analogRead(ROTARY_SWICH);
ROT_POSITION = find_position(ROT_VALUE);
}
void checkFadeSpeed()
{
FADE_SPEED = analogRead(SPEED_POT);
FADE_SPEED = map(FADE_SPEED, 0, 1023, 0, 20);
}
[

2$ karşılığında 10 adet profesyonel PCB üretmek için:
https://jlcpcb.com