İçindekiler:
- Adım 1: Malzemeler
- Adım 2: Arduino'nun İnşası
- Adım 3: Arduino'yu Kodlamak
- Adım 4: İsteğe bağlı: LCD Ekran
- Adım 5: Basılı Parçalar
- 6. Adım: Yerleştirme
Video: Işık Kontrollü Step Motor + Duvar Braketi/Standı: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bu stand, odadaki ışık seviyesine göre bir perdeyi otomatik olarak kontrol etmek için tasarlanmış Arduino kontrollü step motoru barındırmak için kullanılır. Işık seviyesini yazdırmak için bir LCD ekran da ekleyebilirsiniz. 3D donanım sadece tanıtım amaçlıdır, perde gibi pratik uygulamalar için gerçek bir donanıma ihtiyaç duyulabilir ve aynı zamanda aklınıza gelebilecek herhangi bir başka uygulama da gerekebilir.
Adım 1: Malzemeler
Bu projeye başlamak için ihtiyacınız olacak;
- 2 Arduino chip-set- Arduino motor shield- Arduino LCD Ekran- 1 Breadboard- 1 bi-polar Step Motor- 1 D pil- 1 Işık Bağımlı Direnç - 1 10k Ω Direnç- 10 Erkek-erkek kablo- 6 Erkek- dişi teller - 3D yazıcıya erişim
Adım 2: Arduino'nun İnşası
İlk önce motor kalkanını Arduino pinleriyle hizalayın ve sıraya girdikten sonra sıkıca yerleştirin. Ardından step motorun kablolarını motor blendajının 8, 9, 10 ve 11 numaralı pinlerine takın. Bundan sonra, D pilini şemada gösterildiği gibi yuvalara bağlayın. Ardından, 6 kabloyu (erkekten dişiye) almak isteyeceksiniz. LDR'yi devre şemasında gösterildiği gibi diğer Arduino ünitesine takın. Daha sonra LDR'yi yukarıda gösterildiği gibi direnç negatif sıraya bağlayarak kurun. LDR'yi eklerken direncin olduğu tarafa ekleyin A0 bağlantıları ve karşı tarafta, kullandığınız her kart için 1 5V giriş ekleyin, bu nedenle 2 kart kullanıyorsanız, her birinin LDR'ye giden bir 5V ve A0 pinine sahip olmasını isteyeceksiniz.
Tüm kabloları şemadaki gibi olacak şekilde bağlayın - LDR'ye 2 Giriş - LDR'den 2 Çıkış ve toprağa bağlanan bir direnç - LCD'ye 8 kablo, 1 5V, 1 Toprak ve 6 giriş - 4 kablo ağa bağlanır stepper- aküye 2 bağlantı- Breadboard topraklaması bağlanmalıdır
Adım 3: Arduino'yu Kodlamak
LDR'ye göre vitesin durumunu değiştirmek için bazı örnek kodlar
Bu, projenin bir perdeyi otomatik olarak kontrol etmesini sağlayacak koddur. Yukarıdaki fotoğraf, perdenin yukarı, aşağı veya olduğu yerde kalması açısından iç içe IF ifadelerinde farklı yolları açıklamaktadır. (biçimlendirme sorunları olduğu için tam olarak görmek için resmin üzerine tıklayın)
#defineLDRA0//"LDR" değişkenini A0 pinine tanımlar#include
constintstepsPerRevolution=200;//Adım motor etkinleştirildiğinde, tam dönüşü 200 adıma eşittir
SteppermyStepper(stepsPerRevolution, 8, 9, 10, 11);//stepper'a girişi pin 8, 9, 10, 11 olarak tanımlar
voidsetup(){myStepper.setSpeed(60);//Motorun bir rotasyonpinMode(LDR, INPUT) ne kadar hızlı yapacağını ayarlar;//"LDR" değişkenini bir giriş olarak tanımlar Serial.begin(9600);//Seri okumayı başlatır }
voidloop(){intlightlevel=analogRead(LDR);//"LDR"Serial.print("Light Level: ");Serial.println(lightlevel);// değerini okuyan bir eylem olarak "lightlevel" değişkenini tanımlar Yukarıdaki başlık ile "lightlevel" değerini yazdırır
/* Artık yolun her noktasında ışık seviyesini algılayan bir döngü var * 3 seçenek mevcut, yukarı git, aşağı git, aynı pozisyonda kal* Işık seviyesi aynı kalırsa, ışık seviyesi aynı kalacak şekilde tasarlanmıştır. aynı kal yoksa değişir* yani 950 ise 952'ye gider bir şey olmaz ama 950'den 600'e çıksa perdeyi çeker tam tersi * Her adım bir harfle belirtilir adımın önünde, seri monitör aracılığıyla döngüde nerede olduğunu izlemek için */
if(lightlevel>=900){Serial.println("A");// loopmyStepper.step(3*stepsPerRevolution);//Adım 3 ileri devir yapar. Negatif ise, geri giderdelay(30000);// 5 dakika orada bırakır intlightlevel=analogRead(LDR);// "lightlevel" değişkenini LDRSerial.print("Işık Düzeyi: ")'den alınan en son okuma olarak tanımlar.;//Metni Serial.println(lightlevel) değişkeninin önüne yazdırır// Işık seviyesinin değerini yazdırır
if(lightlevel>=900){Serial.println("B");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Işık Seviyesi: ");Serial.println (ışık seviyesi);
if(lightlevel>=900){Serial.println("C");myStepper.step(3*-stepsPerRevolution);delay(500);intlightlevel=analogRead(LDR);Serial.print("Işık Seviyesi: "); Serial.println(ışık seviyesi);}
else{Serial.println("D");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Işık Seviyesi: ");Serial.println(ışık seviyesi);}}
else{Serial.println("E");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Işık Seviyesi: ");Serial.println(ışık seviyesi);
if(lightlevel>=900){Serial.println("F");myStepper.step(0);delay(500);intlightlevel=analogRead(LDR);Serial.print("Işık Seviyesi: ");Serial.println (ışık seviyesi);}
else{Serial.println("G");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Işık Seviyesi: ");Serial.println(lightlevel);}}
}
else{Serial.println("H");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Işık Seviyesi: ");Serial.println(ışık seviyesi);
if(lightlevel>=900){Serial.println("I");myStepper.step(3*stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Işık Seviyesi: ");Seri.println(ışık seviyesi);
if(lightlevel>=900){Serial.println("J");myStepper.step(3*-stepsPerRevolution);delay(500);intlightlevel=analogRead(LDR);Serial.print("Işık Seviyesi: "); Serial.println(ışık seviyesi);}
else{Serial.println("K");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Işık Seviyesi: ");Serial.println(ışık seviyesi);
}}
else{Serial.println("L");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Işık Seviyesi: ");Serial.println(ışık seviyesi);
if(lightlevel>=900){Serial.println("M");myStepper.step(0);delay(500);intlightlevel=analogRead(LDR);Serial.print("Işık Seviyesi: ");Serial.println (ışık seviyesi);}
else{Serial.println("N");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Işık Seviyesi: ");Serial.println(ışık seviyesi);
}}
}
}
Adım 4: İsteğe bağlı: LCD Ekran
Bu, LDR tarafından algılanan ışık seviyesini LCD ekrana yazdırır.
#Dahil etmek
-
//Ek kodla likit kristal kitaplığını ekler#define ldr A0 //"ldr" değişkenini A0 pinine tanımlar
LiquidCrystal lcd (8, 9, 4, 5, 6, 7); // kütüphaneyi arayüz pinlerinin numaralarıyla başlat
voidsetup() { //startlcd.begin(16, 2); // LCD'nin sütun ve satır sayısını sırasıyla ayarlayınpinMode(ldr, INPUT); // ldr'yi pinSerial.begin(9600) girişi olarak tanımlar; // Seri monitör ile iletişimi başlatır
}
voidloop() { //sürekli tekrarlanacak kodSerial.println(analogRead(ldr)); // ldr'nin aldığı okumayı (0-1023 arasında bir sayı) seri monitorlcd.setCursor(6, 0); // imleci sütun 6, satır 0lcd.print(analogRead(ldr)); // Bu okumayı LCD ekran gecikmesine yazdırır(1000); // Sonraki komutu bir saniye geciktirir
}
Adım 5: Basılı Parçalar
Standı ve donanımı yazdırmak için aşağıdaki dosyaları kullanın. Donanımı kendi amaçlarınız için özelleştirebilir ve braketi duvara veya ekran olarak monte etmek için kullanabilirsiniz. 3D dişli zayıf olduğundan, kontrol edeceği perdeye uyduğu sürece onun yerine gerçek bir dişli kullanılabilir.
3D baskılı dişli kullanılacaksa dişlinin dişlerinden biri sökülerek ayar vidası ile motora sabitlenebilir.
Duvara monte edilecekse, duvar braketinin ön 2 ayağı da çıkarılabilir. Sadece biz test ederken ayağa kalkması için eklendiler.
6. Adım: Yerleştirme
Artık tüm parçalar hazır olduğuna göre, son yerleştirmeye başlama zamanı.
Öncelikle step motorunu stand üzerinde verilen kutuya yerleştirin ve dişliyi dingilin üzerine yerleştirinSonra, telleri standın arkasına geçecek şekilde hareket ettirinSon olarak arduino ve pili standın arkasına yerleştirin
Tahtanız şimdi yukarıdaki resimdeki gibi görünmelidir.
Tebrikler!
Vites, otomatik perdeler veya LDR tarafından kontrol edilmesini istediğiniz herhangi bir şey için kullanılabilir.
Bitirdiniz. Yeni yaratımınızın keyfini çıkarın.
Önerilen:
Hareketli Aydınlatmalı DIY Patlayan Duvar Saati: 20 Adım (Resimlerle)
Hareketli Aydınlatmalı DIY Patlayan Duvar Saati: Bu talimat / videoda, entegre hareketli aydınlatma sistemi ile yaratıcı ve benzersiz görünümlü duvar saatinin nasıl yapıldığını adım adım göstereceğim. Bu oldukça benzersiz saat tasarımı fikri, saati daha etkileşimli hale getirmeye yöneliktir. . Yürüdüğümde
Arduino - Labirent Çözen Robot (MicroMouse) Duvar Takip Robotu: 6 Adım (Resimli)
Arduino | Labirent Çözen Robot (MicroMouse) Duvar Takipçi Robot: Hoş Geldiniz Ben Isaac ve bu benim ilk robotum "Striker v1.0". Bu Robot basit bir Labirenti çözmek için tasarlandı. Yarışmada iki labirentimiz vardı ve robot onları tanımlayabildi. Labirentteki diğer herhangi bir değişiklik, labirentte bir değişiklik gerektirebilir
Gizli Duvar Tipi Ev Otomasyon Tableti: 6 Adım
Gizli Duvara Monte Ev Otomasyon Tableti: Bu talimat, bir openHAB tableti (https://www.openhab.org/) için tabletin herhangi bir zamanda çıkarılabileceği, nerede şarj edileceği bir bağlantının nasıl oluşturulacağını ele alacaktır. kablo ve tablet olmadığında duvarın tamamen normal görünmesini sağlayın
Ev Otomasyonu Kontrol Paneli Olarak IPad Duvar Montajı, Servo Kontrollü Mıknatıs ile Ekranı Etkinleştiriyor: 4 Adım (Resimli)
IPad için Duvar Montajı Ev Otomasyonu Kontrol Paneli Olarak, Ekranı Etkinleştirmek için Servo Kontrollü Mıknatısın Kullanılması: Son zamanlarda evimin içinde ve çevresinde işleri otomatikleştirmek için epey zaman harcıyorum. Ev Otomasyonu uygulamam olarak Domoticz'i kullanıyorum, ayrıntılar için www.domoticz.com adresine bakın. Tüm Domoticz bilgilerini gösteren bir pano uygulaması arayışımda
IPhone Şarj Duvar Standı/Dock: 4 Adım
IPhone Şarj Duvar Standı/Dock: Duvar şarj cihazını, USB kablosunu ve kesilmiş bir şişe şampuanı kullanarak iPhone/iPod'unuz için bir DIY şarj duvar standı oluşturun. Bu Eğitilebilir Kitap, Popular Science'ın Kendin Yap bölümünde 5 dakikalık bir proje olarak gösterildi. Şunlara ihtiyacınız olacak: Bir şampuan şişesi (bu