Elektronik parçalar küçük genelde boyut olarak küçük parçalardan oluştuğu için masa aydınlatması ve oda aydınlatması bazen yetersiz kalabiliyor. Bende bundan dolayı hareket edebilen bir aydınlatmaya karar verdim.
Hareketli Masa Aydınlatması
Öncelikle yapmak istediğimin neye benzediğini sizlerle görsel olarak paylaşayım.
Bu işin en zor kısmı mekanik kısmı, arduino ve kodlama kısmında hiçbir sorun yok. Lambanın kenarlarının düz olmaması ve dönme eksenini ayarlamak en zor kısmıydı birkaç deneme sonunda başarıya ulaşabildim. Önce çift servo motor ile denedim baktım olmuyor tek motor da yeticek gibi görünüyor bende tek motor mekanizması hazırlamaya karar verdim.Sonuç olarak on derece memnun olduğum bir aydınlatma sistemim oldu.
Kullandığım malzemeler;
Arduino pro mini,
voltaj düşürücü devre 220v to 5 v,
10k potansiyometre,
mini breadbord,
bant armatür(şerit lamba),
servo motor,
6 numara civata,
köşebent.
Hem lamabaya hemde devreye elektiriği tek priz üzerinden çektim. (buna daha sonra aliexpressten ücretsiz gelen dokunmatik kumandalı lamba anahtarınıda dahil ettim).
Bağlantı görselleri bu şekilde;
Servo motor için yazılımımıza geçelim. Öncelikle 2 kez yazılım aktarımı yaptım birincide servo motoru sıfır pozisyonuna getirdim. Daha sonra lambayı motora bağladıktan sonra potansiyometre ile dönüş verecek yazılımı ekledim.
İlk yazılımımız bu şekilde;
#include <Servo.h> Servo motor; // bir servo objesi oluşturuyoruz int deger; // motorun alacağı pozisyon açısı için deger tanımını oluşturduk void setup() { servom.attach(9); // Servomuzu 9 numaralı dijital pine bağladığımızı tanımlıyoruz } void loop() { deger = 0; // istediğimiz açıyı veriyoruz. motor.write(deger); // motora olması gereken pozisyon bilgisini gönderiyoruz delay(15); // istediğimiz pozisyona gelene kadar gerekli süreyi tanıyoruz }
Motor sıfır açısına geldikten sonra bağlantıyı kesip lambayı ve motoru montajlıyoruz. Potansiyometre bilgisini içeren yazılımı ekliyoruz.
#include <Servo.h> Servo motor; // bir servo objesi oluşturuyoruz int deger; // motorun alacağı pozisyon açısı için deger tanımını oluşturduk int potpin = 0; // potansiyometreden okuyacağı değeri aktaran degeri tanımlıyoruz. void setup() { servom.attach(9); // Servomuzu 9 numaralı dijital pine bağladığımızı tanımlıyoruz } void loop() { deger = analogRead(potpin); // potansiyometreden değer okuyoruz deger = map(deger, 0, 1023, 0, 180); // okuduğumuz değeri 180 derece için map ediyoruz motor.write(deger); // motora olması gereken pozisyon bilgisini gönderiyoruz delay(15); // istediğimiz pozisyona gelene kadar gerekli süreyi tanıyoruz }
Bu şekilde çalıştırdığımızda enerji verildiği an önce sıfır pozisyonuna alır kendini sonra ise okuduğu potansiyometre değerine getirir.
Şimdi video ile ne yapmışız buna bakalım. Yeni yazılarda görüşmek üzere yorum yapmayı unutmayın.