İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
GEREÇLER
-2 ekmek tahtası
-sesli uyarı
- atlama telleri
-2 arduino/genuino ile güç kabloları
-rf verici ve alıcı
-butona basınız
-100 ohm direnç
Adım 1: İşlev
Bu proje, ana işlevi arduino'yu verici ile basma düğmesinin zil ve alıcı ile alıcı uca bir sinyal gönderecek şekilde arduino'yu programlamak için kod kullanan çalışan bir kapı zilidir..
Adım 2: Adım 1: Verici Kartı
Bu projenin nasıl çalışması gerekiyor, 2 ekmek tahtası ve bunlara 2 arduiono/genuinos bağlı. Verici kartı için, 100 ohm'luk rezistör toprağa bağlı olan basmalı düğmeyi ve devre tahtasındaki güce bağlı bir kabloyu bağlarız. Ardından vericiyi devre tahtasına bağlayın ve düğmeyi resimde gösterildiği gibi hem vericiye hem de arduinoya bağlayın.
Adım 3: Adım 2: Alıcı Kartı
Alıcı kartında, sesli uyarının gittiği yerdir. Bir kabloyu alıcı üzerinden toprağa bağlayın ve daha sonra kodunuzda özelleştirebileceğiniz seçtiğiniz bir pime bir kablo bağlayın. Alıcıyı devre tahtasına bağlayın ve resimde gösterildiği gibi arduinoya bağlayın.
Adım 4: Adım 3: Verici Kodu
// ask_transmitter.pde
// -*- kip: C++ -*-
// Mesajları iletmek için RadioHead'in nasıl kullanılacağına dair basit bir örnek
// basit bir ASK vericisi ile çok basit bir şekilde.
// TX-C1 modülüyle tek yönlü (tek yönlü) bir verici uygular
#Dahil etmek
#include // Aslında kullanılmadı ama derlemek için gerekli
RH_ASK sürücüsü;
// RH_ASK sürücüsü(2000, 2, 4, 5); // ESP8266 veya ESP32: pin 11'i kullanmayın
geçersiz kurulum()
{
Seri.başla(9600); // Yalnızca hata ayıklama
pinMode(5, GİRİŞ);
if (!driver.init())
Serial.println("başlatma başarısız");
}
boşluk döngüsü()
}
if(digitalRead(5)==YÜKSEK){
const char *msg = "a";
driver.send((uint8_t *)msg, strlen(msg));
driver.waitPacketSent();
gecikme(200);
}
}
Adım 5: Adım 4: Alıcı Kodu
#Dahil etmek
#include // Aslında kullanılmadı ama derlemek için gerekli
#include "pitchs.h" // nota için Eşdeğer frekans ekle
#include "themes.h" // Not değeri ve süresi ekleyin
RH_ASK sürücüsü;
geçersiz kurulum()
{
Seri.başla(9600); // Yalnızca hata ayıklama
if (!driver.init())
Serial.println("başlatma başarısız");
Başka
Serial.println("bitti");
RH_ASK sürücüsü;
geçersiz kurulum()
{
Seri.başla(9600); // Yalnızca hata ayıklama
if (!driver.init())
Serial.println("başlatma başarısız");
Başka
Serial.println("bitti");
}
geçersiz Play_Pirates()
{
for (int thisNote = 0; thisNote < (sizeof(Pirates_note)/sizeof(int)); thisNote++) {
int noteDuration = 1000 / Pirates_duration[thisNote];//süreyi zaman gecikmesine çevir
tone(8, Pirates_note[buNot], notSüresi);
int duraklamaBetweenNotes = notDuration * 1.05; //Burada 1.05 tempo, daha yavaş çalmak için artırın
gecikme (duraklatBetweenNotes);
tonsuz(8); // pin 8'deki müziği durdur
}
}
boşluk döngüsü()
{
uint8_t buf[1];
uint8_t buflen = sizeof(tampon);
if (driver.recv(buf, &buflen)) // Engellemeyen
{
Serial.println("Seçildi -> 'O bir Korsandır' ");
Play_Pirates();
Serial.println("dur");
}
}