İçindekiler:

Arduino ile Gündoğumu Çalar Saat: 9 Adım (Resimli)
Arduino ile Gündoğumu Çalar Saat: 9 Adım (Resimli)

Video: Arduino ile Gündoğumu Çalar Saat: 9 Adım (Resimli)

Video: Arduino ile Gündoğumu Çalar Saat: 9 Adım (Resimli)
Video: 2020 için 30 Ultimate Windows 10 İpuçları ve Püf Noktaları 2024, Kasım
Anonim
Image
Image
Arduino ile Gündoğumu Çalar Saat
Arduino ile Gündoğumu Çalar Saat

Kış mevsimi üzücü olabilir. Uyandın, hava karanlık ve yataktan çıkman gerekiyor. Duymak isteyeceğiniz son şey çalar saatinizin gür sesidir. Londra'da yaşıyorum ve sabahları uyanmakta zorlanıyorum. Ayrıca, doğal ışıkla uyanmayı özledim.

Bu eğitimde, bir Gündoğumu Alarm Saati oluşturacağız. Uyanmak istediğiniz saat ve dakikayı ayarlayabileceğiniz, ancak sizi daha doğal bir şekilde uyandırmak için gün doğumu gibi bir süre boyunca yatak odanızı aydınlatmak için ışık kullanmanın ek faydası ile diğerleri gibi bir çalar saat.

Gündoğumu lambaları piyasada mevcuttur, ancak pahalı olabilirler (Amazon'da hızlı bir arama 100 sterlin aralığındaki ürünleri döndürür), kırılgan ve oldukça klinik görünümlü olabilir. Çok daha ucuz ve çok daha güzel bir şey yapacağız.

Tüm parçalar bir sonraki adımda listelenecektir. Kod, Github deposu altın-gündoğumu-saatimden indirilebilir. Vaka için tüm şemalar ve derleme dosyaları bu eğitimde indirilebilir.

Hadi gidelim:)

Sorunlarla karşılaşırsanız veya merhaba demek isterseniz, bana [email protected] yazın veya beni @celinechappert Instagram hesabından takip edin.

Adım 1: Bileşenleri Toplama

Bileşenlerin Toplanması
Bileşenlerin Toplanması

Başlangıç olarak, gün doğumumuzu simüle etmek için girişimiz olarak bir saat ve çıkışımız olarak ultra parlak bir LED kullanacağız.

Devreyi kurmak için ihtiyacımız olacak:

- bir saat. RTC DS3231'i (5 £) kullanacağız

- ışığın parlaklığını kontrol etmek için bir MOSFET (9 £)

- süper parlak bir LED (1 £)

- LED'e güç sağlamak için 9V pil (3 £)

- kolay montaj için bir breadboard (3 £)

- bir Arduino Uno (20 £)

- bir buton (isteğe bağlı - yalnızca demo amaçlı)

Toplam fiyat = 41 £

Evinizde zaten bir Arduino'nuz, bir devre tahtası ve 9V piliniz varsa, tüm proje size 15 £ 'dan daha azına mal olacak.

Akrilik kasayı yapmak için ihtiyacınız olacak:

- 2 yaprak 0.3mm Perspex akrilik levha, güneş ve kasa için renk başına 1 sayfa.

- lazer kesiciye erişim.

Okulumun atölyesine erişimim olduğu için şanslıyım, bu yüzden bu masrafların çoğu karşılandı. Fazladan bir akrilik levha aldım çünkü tasarımım güneş için turuncu bir ton gerektiriyordu, bu da levha başına 14 sterline mal oldu (Perspex pahalıdır!).

Adım 2: Devrenin Montajı

Image
Image
Devrenin Montajı
Devrenin Montajı
Devrenin Montajı
Devrenin Montajı

Devremin siyah beyaz taslağına (dağınıklığı affedin) ve Arduino'yu içeren şemaya (Fritzing ile yapılan) başvurabilirsiniz.

Esasen burada neyin neye bağlı olduğuna dair bir döküm var:

Saat:

(-) GND'ye bağlanır

NC, 'Bağlı Değil' anlamına gelir ve hiçbir şeye bağlanmaz

C/SCL, Arduino'daki A5 pinine bağlanır

D/SDA, Arduino'daki A4 pinine bağlanır

(+) Arduino'da 5V'a bağlanır

MOSFET

Kapı pimi Arduino Uno'da pin ~ 9'a gidiyor çünkü bu PWM

Tahliye pimi LED'in negatif tarafına gider

Kaynak pini Arduino'da GND'ye gider

LED

Negatif taraf MOSFET üzerindeki tahliye pimine bağlanır

Breadboard'da pozitif taraf 5V'a bağlanır

9V pil

(+) ile (+) arasında, (-) ile aynı.

Arduino Uno

5V'yi devre tahtasındaki (+)'ya ve GND'yi (-)'ye bağlamayı unutmayın. Breadboard'un bir tarafında (-) ile diğer tarafında (-) arasında bağlantı yapmayı unutmayın.

Sırada DS3231 kitaplığını kullanarak saatimizi ayarlayacağız.

Adım 3: Saati Kurma ve Ayarlama

Saatin Kurulması ve Ayarlanması
Saatin Kurulması ve Ayarlanması
Saati Kurma ve Ayarlama
Saati Kurma ve Ayarlama
Saati Kurma ve Ayarlama
Saati Kurma ve Ayarlama

Bu saati çalıştırmak için kullandığım kitaplık Rinky-Dink Electronics'te bulunabilir (yukarıdaki ekran görüntüleri). Bağlantıya tıklayın ve DS3231 sayfasında olduğunuzdan emin olun. Zip dosyasını indirin, kaydedin ve Arduino'nuzun /libraries klasörüne yerleştirin.

Şimdi saatte doğru zamanı ayarlamak için Arduino'yu açın ve Example/DS3231/Arduino/DS3231_Serial_Easy'ye gidin.

Üç kod satırını kaldırın (ekran görüntüsünde turuncu ile belirtilmiştir), askeri formattaki bu üç kod satırında doğru zamanı ve yeri kontrol edin.

Yükle'ye basın.

Şimdi bu üç satırın yorumunu kaldırabilir ve tekrar Yükle'ye basabilirsiniz.

Seri Monitörünüzü açın ve saatinizin doğru olup olmadığını kontrol edin.

Saatimiz ayarlandı! Devremiz hazır, şimdi kodlamaya başlayalım. Yine, repo Github'da mevcuttur.

Adım 4: Kodlama

Image
Image

Kodu indirin ve DS3231 kitaplığının doğru şekilde kurulduğundan emin olun.

Öncelikle ayarlarımızı tanımlamak istiyoruz.

fadeTime, ışığın dakikalar içinde 0'dan maksimum parlaklığına ne kadar süreyle söneceğini gösterir. setHour/setMin, uyanmak istediğimiz zamana karşılık gelir (not: bu askeri formattır, bu nedenle 24 saatlik zaman gereklidir). Arduino üzerindeki pin 9'u da ÇIKIŞIMIZ olarak tanımlıyoruz.

setup() içinde, SerialBegin numarasının (burada 96000 baud) Seri Monitörün numarasına karşılık geldiğinden emin olun.

loop() içinde, bir if ifadesi uyanma zamanının gelip gelmediğini kontrol eder. Kod bir döngü üzerinde çalışır ve saat tarafından döndürülen saat ve dakika değerlerinin setHour/setMin değişkenlerimize karşılık gelip gelmediğini her seferinde kontrol eder. Bu durumda, if ifadesi bir active() işlevi döndürür.

active() işlevi iki bölümden oluşur. İlk önce ışığı kademeli olarak soldurmaya başlıyoruz: gecikme işlevleri, fadeTime'ın 'erken' aşamalarında LED'in çok çabuk parlamasını önlemek için burada. Ardından bir for döngüsü, fadeTime'a bağlı olarak ışığın daha parlak ve daha parlak olması gereken hızı kontrol eder. Son olarak analogWrite() fonksiyonunda ledimize 0 değerini vererek ışığı kapatıyoruz.

Yukarıdaki video, prototip akrilik kasalardan birinde çalışan devreyi göstermektedir.

Adım 5: Karton Prototip (isteğe bağlı)

Karton Prototip (isteğe bağlı)
Karton Prototip (isteğe bağlı)
Karton Prototip (isteğe bağlı)
Karton Prototip (isteğe bağlı)

Bu projeden önce hiç lazer kesiciyle çalışmadım. Bir karton prototip yapmak, nesnenin gerçek uzayda ne kadar iyi göründüğünü (boyut, görünüm vb.) test ederken makineye aşina olmamı sağladı. Indirmek için vaka planları.

Önerilen: