İçindekiler:
- Adım 1: Bağlantı Talimatları
- Adım 2:
- Aşama 3:
- 4. Adım:
- Adım 5:
- 6. Adım:
- 7. Adım:
- Adım 8:
- Adım 9: Programlama Talimatları
- Adım 10:
- Adım 11:
- Adım 1/2:
- Adım 13:
- Adım 14:
Video: Arduino Çalar Saat Projesi: 14 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Bu projede, alarmın ayarlandığı zamanı ve zamanı göstermek için bir LCD ekranı kontrol etmek için Arduino Uno'yu kullanacağız. Her seferinde ayarlamak için düğmeleri kullanacağız.
Malzemeler:
- Arduino Uno -
- Breadboard -
- Atlama Kabloları (x13+) -
- 10 kohm direnç (x4) -
- LCD ekran -
- 7 Düğme -
- Piezo Hoparlör -
Adım 1: Bağlantı Talimatları
1. Arduino üzerindeki 5V pininden bir jumper kablosunu breadboard üzerindeki + raylarından birine bağlayın.
Adım 2:
2. Arduino üzerindeki GND pininden bir jumper kablosunu breadboard üzerinde seçtiğiniz + rayının yanındaki - rayına bağlayın.
Aşama 3:
3. LCD ekranı güce, toprağa ve TX pinine (pim 1) bağlayın.
4. Adım:
4. Bacakları devre tahtasındaki boşluğun karşısına gelecek şekilde 7 düğmeyi devre tahtasına yerleştirin.
Adım 5:
5. 10 kohm'luk dirençleri - raydan GND pimi kendisine bağlı olarak düğmelerin sol alt pimlerine yerleştirin.
6. Adım:
6. Devre tahtanızdaki düğmelerin sağ alt pimi ile 5V rayı arasına atlama telleri yerleştirin.
7. Adım:
7. Önce 6, ardından 8-13 pinleri ile direncin bağlı olduğu buton üzerindeki pin arasına jumper kabloları yerleştirin.
Adım 8:
8. Ardından, Piezo hoparlörünüzü devre tahtasına yerleştirin ve pim 7'yi güç pimine, ardından 100 ohm'luk bir direnci toprağa bağlayın.
Adım 9: Programlama Talimatları
1. Genel Bakış: Bu proje, kullanıcıdan ilk açılışta geçerli saati, mevcut saati ve alarmın ayarlandığı saati ayarlamasını isteyecektir. Her seferinde ayarlamak için yukarıda bağlanan düğmeler kullanılacaktır. Soldan sağa, geçerli saat ayarlanır, geçerli dakika ayarlanır, geçerli AM veya PM ayarlanır, alarm saati ayarlanır, alarm dakikası ayarlanır, alarm AM veya PM ayarlanır. Son düğme, çalarken alarmı susturmak için kullanılır.
Adım 10:
2. Yapmamız gereken ilk şey, kullanacağımız değişkenimizi başlatmak.
// Kullanılacak değişkenleri sıfırlaint saat = 0; // Geçerli saat için saat int dakika = 0; //
Geçerli saat için dakika int saniye = 0; // Şimdiki zaman için saniye
int saat_a = 0; int // Alarm zamanı için saat
dakika_a = 0; // Alarm zamanı için dakika
bool am_pm = yanlış; // AM/PM geçiş bayrağı. Yanlış AM, Doğru PM'dir
bool am_pm_a = yanlış; // AM/PM alarm için geçiş bayrağı. Yanlış AM, Doğru PM'dir
int set_hr = 13; // Saati ayarlamak için pin 13'ü kullanın
int set_min = 12; // Dakika int'yi ayarlamak için pin 12'yi kullanın
set_am_pm = 11; // am/pm ayarlamak için pin 11'i kullanın
int set_hr_a = 10; // Alarm saatini ayarlamak için pin 10'u kullanın int set_min_a = 9; // Alarm için dakikayı ayarlamak için pin 9'u kullanın int set_am_pm_a = 8; // Alarm için am/pm ayarlamak için pin 8'i kullanın
int konuşmacı = 7; // Hoparlör için kullanılacak sabitle sessiz = 6; // Hoparlörü durdurmak için sabitle
bool alarmı = yanlış; // Alarm vermeye devam etmek için geçiş yapmak için işaretle
bool sessizleştirilmiş = yanlış; // Sessiz gösteren bayrağa basılmamış
int cur_time = 0; // Şimdiki zaman için değişken
int zaman = 0; // Geçen süre için değişken
Adım 11:
3. Ardından, LCD ekranı kurmamız ve kullanıcıya mevcut saati ayarlamasını söylememiz gerekiyor. Bunun yalnızca bir kez yapılması gerektiğinden, kurulum rutininde yapacağız.
geçersiz kurulum() {
// LCD ekranı ayarla
Seri.başla(9600); // Seriyi 9600 baud'da başlat
Serial.write(17); // Arka ışığı aç
Serial.write(24); // İmleç ve yanıp sönme olmadan ekranı açın
Serial.write(12); // Ekranı temizle
Serial.write(128); // İmleci sol üst köşeye taşı// pinMode'larını ayarla pinMode(set_hr, GİRİŞ); pinMode(set_min, INPUT);
pinMode(set_am_pm, INPUT);
pinMode(set_hr_a, INPUT);
pinMode(set_min_a, INPUT);
pinMode(set_am_pm_a, INPUT);
pinMode(hoparlör, ÇIKIŞ);
pinMode(sessiz, GİRİŞ);
// İlk güçte, kullanıcının geçerli saati ayarlamasını sağlayın. Serial.print("Geçerli saati ayarlayın"); gecikme(2000);
Serial.write(12);
printTimes();
cur_time = millis(); // Geçerli saati kaydet}
Adım 1/2:
4. Ardından, döngü rutininde, zamanı takip eder ve kullanıcının herhangi bir zamanı ayarlayıp ayarlamadığını görmek için düğme durumlarını okuruz.
boşluk döngüsü () {
// Tempo tutmak
tempo tutmak();
// Alarm verme zamanının gelip gelmediğini kontrol edin!
if((saat == saat_a && dakika == dakika_a && !sessiz) || alarm){tone(hoparlör, 2000, 500); // 500 ms için hoparlöre 2000 Hz ses çıkışı
gecikme(500); // 500 ms gecikme if(!alarm){ // Alarm kapalıysa açın
}
}
// Kullanıcı sessiz düğmesine basarak alarmı susturursa, alarmı durdurun if(alarm && !quieted && digitalRead(quiet)){
alarm = yanlış;
sessiz = doğru; }
// Alarmı sıfırlayın if(!alarm && sessizleştirildi && dakika != dakika_a){ sessizleştirildi = false;
}
// Set pinlerinin yükselip yükselmediğini kontrol edin ve eğer öyleyse, karşılık gelen değeri artırınif(digitalRead(set_hr) && hour < 12){
saat++;
printTimes();
geri tepme();
}
else if (digitalRead(set_hr) && saat == 12){ saat = 1;
printTimes();
geri tepme();
}
Başka{}
if(digitalRead(set_min) && dakika < 59){
dakika++;printTimes();
geri tepme();
}
else if (digitalRead(set_min) && dakika == 59){ dakika = 0;
printTimes();
geri tepme();
}
else{}if(digitalRead(set_am_pm) && am_pm){
am_pm = yanlış;
printTimes();
geri tepme();
}
else if (digitalRead(set_am_pm) && !am_pm){ am_pm = true;printTimes();
geri tepme();
}
else{}if(digitalRead(set_hr_a) && hour_a < 12){
saat_a++;
printTimes();
geri tepme();
}
else if (digitalRead(set_hr_a) && hour_a == 12){hour_a = 1;
printTimes();
geri tepme();
}
else{}if(digitalRead(set_min_a) && dakika_a < 59){
dakika_a++;
printTimes();
geri tepme();
}
else if (digitalRead(set_min) && dakika_a == 59){dakika_a = 0;
printTimes();
geri tepme();
}
else{}if(digitalRead(set_am_pm_a) && am_pm_a){
am_pm_a = yanlış;
printTimes();
geri tepme();
}
else if (digitalRead(set_am_pm_a) && !am_pm_a){am_pm_a = true;
printTimes();
geri tepme();
}
Başka{}
}
Adım 13:
5. Burada, oluşturduğum birkaç alt yordam göreceksiniz - debounce() ve printTimes(). Debounce(), düğmeleri yalnızca bir kez okuduğumuzdan emin olmak için kullanılır. Arduino saniyede binlerce kez taradığından, yalnızca bir kez okunmasını istediğinizde düğmeye birkaç kez basıldığını düşünebilir. Debounce(), düğme bırakılana kadar programı donduracaktır. printTimes() LCD ekranı günceller, ancak bu birkaç komut olduğundan, onları bir kez yazdım ve sonra bir zaman değeri değiştiğinde alt programı çağırabilirim.
// Herhangi bir tuşa basılırken bu fonksiyonda kalın ve 250 ms geciktirin.
void debounce(){
while(digitalRead(set_hr) || digitalRead(set_min) ||
digitalRead(set_am_pm) || digitalRead(set_hr_a) ||
digitalRead(set_min_a) || digitalRead(set_am_pm_a)){} gecikme(250);
}
// Herhangi bir değişiklik varsa güncellenen saatleri yazdırır
geçersiz printTimes(){
Serial.write(12);
Serial.print("Güncel Saat:");
Serial.write(148);
if(saat < 10){
Seri.print("0");
}
Seri.baskı(saat);
Seri.print(":");
if(dakika < 10){
Seri.print("0");
}
Seri.print(dakika);Serial.print(":");
if(saniye < 10){
Seri.print("0");
}
Seri.baskı(saniye);
if (am_pm){
Seri.print("PM");
}
Başka{
Serial.print("AM");
}
Serial.write(168);
Serial.print("Alarm Seti:");
Serial.write(188);
if(saat_a < 10){
Seri.print("0");
}
Serial.print(saat_a);
Seri.print(":");
if(dakika_a < 10){
Seri.print("0");
}
Seri.print(dakika_a);
eğer (am_pm_a){
Seri.print("PM");
}
Başka{
Serial.print("AM");
}
}
// void zaman parametrelerini artır
tempo tutmak(){
etime = millis() - cur_time;
if(etime >= 1000 && saniye < 59){
ikinci++;
cur_time = millis();
printTimes();
}
else if(etime >= 1000 && saniye == 59 && dakika < 59){ saniye = 0;
dakika++;
cur_time = millis();
printTimes();
}
else if(etime >= 1000 && saniye == 59 && dakika == 59 && saat < 12){
saniye = 0; dakika =
0; saat++; cur_time =
milli(); printTimes();
}
else if(etime >= 1000 && saniye == 59 && dakika == 59 && saat == 12){
saniye = 0; dakika =
0; saat = 1; am_pm =
!am_pm;
cur_time = millis();
printTimes();
}
Başka{}
}
Adım 14:
6. İşte bu!
Derleyin ve yükleyin ve işiniz bitti!
Önerilen:
Arduino ve DFPlayer Mini MP3 Çalar Modülünü Kullanarak LCD'li MP3 Çalar Nasıl Yapılır: 6 Adım
Arduino ve DFPlayer Mini MP3 Çalar Modülü Kullanarak LCD'li MP3 Çalar Nasıl Yapılır: Bugün Arduino ve DFPlayer mini MP3 Çalar Modülü kullanılarak LCD'li MP3 Çalar Yapacağız.Proje SD karttaki MP3 dosyalarını okuyabilir ve duraklatabilir. ve 10 yıl önceki cihazla aynı şekilde oynayın. Bir de önceki şarkı ve sonraki şarkı eğlencesi var
Akıllı Çalar Saat: Raspberry Pi İle Yapılmış Akıllı Çalar Saat: 10 Adımda (Resimlerle)
Akıllı Çalar Saat: Raspberry Pi ile Yapılan Akıllı Çalar Saat: Hiç akıllı saat istediniz mi? Eğer öyleyse tam size göre bir çözüm! Akıllı Çalar Saat yaptım, siteye göre alarm saatini değiştirebileceğiniz bir saat bu. Alarm çaldığında bir ses (buzzer) duyulacak ve 2 ışık yanacaktır
RTC Olmadan ESP8266 Ağ Saati - Nodemcu NTP Saat RTC Yok - İNTERNET SAAT PROJESİ: 4 Adım
RTC Olmadan ESP8266 Ağ Saati | Nodemcu NTP Saat RTC Yok | İNTERNET SAAT PROJESİ: Projede RTC'siz saat projesi yapılacak, wifi kullanılarak internetten zaman alacak ve st7735 ekranında görüntülenecektir
Bir MP3 Çalar'ı Teyp Çalar'a Bağlama: 6 Adım (Resimlerle)
Bir MP3 Çalar'ı Teyp Çalar'a Bağlama: Müzik dinlemek için bir mp3 çalar veya başka bir stereo kaynağı bir kaset çalara nasıl bağlanır
"Bilge Saat 2" Montajı (Birçok Ekstra Özelliği Olan Arduino Tabanlı Çalar Saat): 6 Adım
"Wise Clock 2" Montajı (Birçok Ekstra Özelliğe Sahip Arduino Tabanlı Alarm Clock): Bu eğitim, bir açık kaynak (donanım ve yazılım) projesi olan Wise Clock 2 için kitin nasıl monte edileceğini gösterir. Eksiksiz bir Wise Clock 2 kiti buradan satın alınabilir. Özetle, Wise Clock 2 bunu yapabilir (mevcut açık kaynaklı yazılımla