İçindekiler:
Video: Mutlu Hack Işık Anahtarı: 3 Adım
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Son 2 haftadır "Happy hacking" adlı bir okul projesi üzerinde çalıştık. Bu proje ile bir kamusal alan için "Happy hack" yapmaya çalıştık. Peki, "Mutlu kesmek" nedir? Bizim durumumuzda, bir hayal kırıklığı temelinde olumlu bir şey yapmamız gerekiyordu. Bu proje için Arduino kullanımı gerekliydi. Yapmaya karar verdiğimiz "Happy hack", ışık anahtarını uzaktan çevirmek için bir kurulumdu.
Adım 1: Malzemeler:
1x Arduino Uno
1x Ekmek Tahtası
2x servo
1x kızılötesi sensör
11x tel
1x kızılötesi gönderici (tv kaldırma)
kaset
Adım 2: Nasıl Bağlanılır:
Bir Arduino kızılötesi alıcısını devre tahtasına yerleştirin; alıcının ön tarafının üzerinde küre bulunan taraf olduğunu varsayarsak:
- En soldaki 'bacak'tan bir kabloyu Arduino uno bağlantı noktası '6'ya bağlayın.
- Ortadaki 'bacak'tan bir kabloyu devre tahtasındaki '-' sırasına bağlayın.
- En sağdaki 'bacak'tan bir kabloyu devre tahtasındaki '+' satırına bağlayın.
Breadboard'daki "-" satırı ile Arduino uno'daki "toprak" bağlantı noktası arasında bir kablo olduğundan emin olun ve bir kablonun devre tahtasındaki "+" satırı ile Arduino uno'daki "5V" bağlantı noktası arasında olduğundan emin olun.
Şimdi 2 servoyu bağlayın,
- Her ikisi de servodaki en koyu telden devre tahtasındaki '-' sırasına kadar bir tel ile.
- Her ikisi de servo üzerindeki orta telden breadboard üzerindeki '+' sırasına kadar bir tel ile.
Şimdi, servolardan biri için kalan servo telini Arduino uno portu '9'a ve diğer servoyu Arduino uno portu '10'a bağlayın.
Adım 3: Kod:
#Dahil etmek //
#Dahil etmek //
#Dahil etmek //
IRrecv değişmez(6);
decode_results sonuçları;
Servo Servo1;
Servo theServo2;
bool lightOn = yanlış;
bool disko = yanlış;
geçersiz kurulum(){
theServo1.attach(10);
theServo2.attach(9);
pinMode(6, GİRİŞ);
Seri.başla(9600);
irrecv.enableIRIn(); // alıcıyı başlat
irrecv.blink13(doğru);
}
boşluk döngüsü(){
if (irrecv.decode(&sonuçlar)) {
Serial.println(sonuçlar.değer); // Her buton için farklı bir sonuç alırsınız. Bu yüzden seri monitörde düğmelerinizin değerinin ne olduğunu kontrol edin.
if (results.value == 3772793023){ // Bu, güç düğmesi sonucumuzdur (3772793023). Bu muhtemelen sizin uzaktan kumandanızdan farklıdır.
lightOn = !lightOn;
if(ışıkAçık){
theServo1.write(65);
theServo2.write(15);
}
if(!lightOn){
theServo1.write(95);
theServo2.write(95);
}
gecikme(1000);
}
if (results.value == 3772839943){ // Bu, bilgi düğmesi sonucumuz (37728).
disko = !disko;
gecikme(1000);
}
Serial.println(sonuçlar.değer);
irrecv.özgeçmiş(); // sonraki değeri al
}
if(disko){
lightOn = !lightOn;
if(ışıkAçık){
theServo1.write(65);
theServo2.write(15);
}
if(!lightOn){
theServo1.write(95);
theServo2.write(90);
}
gecikme(2000);
}
}