İçindekiler:
- Adım 1: Basit Başlayın: Bir Düğme Ekleyin
- Adım 2: Düğme Basmalarını Kaydetmek için Kodu Değiştirin
- 3. Adım: Çocuğunuz Olduğu Kadar Düğme Ekleyin
- 4. Adım: Bir Buzzer ekleyin
- Adım 5: Bir LCD Ekran Ekleyin
Video: Çocuk Davranış Değiştirici: 5 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-02-01 14:42
Child Behavior Modifier, çocuğunuzun kaç kez başının belaya girdiğini (diğer adıyla Strikes) kaydeder ve üçe ulaştığında bir sesli uyarı çalar ve bir lcd ekran onların cezalı olduğunu bildirir.
Adım 1: Basit Başlayın: Bir Düğme Ekleyin
Bu Projedeki ilk Adım basittir. 1 Düğme ekleyin. Bu adımda ihtiyacınız olan 4 Erkek - Erkek Tel, 1 220 Direnç ve bir buton.
- Güç tarafındaki 5V'yi devre tahtasındaki pozitif sıraya bağlayın
-
GND'yi breadboard'un negatif tarafına bağlayın
- Basmalı düğmeyi devre tahtasına yerleştirin
-
Pozitif sıradaki gücü basma düğmesinin sol alt kısmına bağlayın
- Düğmeyi, devre tahtasının negatif sırasına basma düğmesinin sağ alt kısmına bir direnç kullanarak topraklayın.
- Arduino'nun Dijital tarafındaki # 13'ü düğmenin sağ üst tarafına bağlayın.
Düğmenin kaydedildiğini kodunuzla doğrulayın:
int child1ButtonPin = 13;//Bu butonumuzun bağlı olduğu pin
int child1ButtonState = 0;//Düğmenin durumunu okur (açık/kapalı)
int child1Strike = 0; // Çocuğun kaç vuruşu var
// reset'e bastığınızda veya kartı çalıştırdığınızda kurulum işlevi bir kez çalışır
geçersiz kurulum() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // döngü işlevi sonsuza kadar tekrar tekrar çalışır void loop() { //düğmenin durumunu oku (açık veya kapalı) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState == HIGH)//Butona basılır { Serial.println("HIGH"); gecikme (5000); }
if(child1ButtonState == DÜŞÜK)
{ Serial.println("DÜŞÜK"); gecikme (5000); } }
Adım 2: Düğme Basmalarını Kaydetmek için Kodu Değiştirin
Bir düğmeye basmak için Kodu değiştirin:
int child1ButtonPin = 13;//Bu butonumuzun bağlı olduğu pindir int child1ButtonState = 0;//Düğmenin durumunu okur (on/off) int child1PreviousState = 0; // Önceki düğme durumu int child1Strike = 0;
// reset'e bastığınızda veya kartı çalıştırdığınızda kurulum işlevi bir kez çalışır
geçersiz kurulum() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // döngü işlevi sonsuza kadar tekrar tekrar çalışır void loop() { //düğmenin durumunu oku (açık veya kapalı) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState != child1PreviousState) { if(child1ButtonState == HIGH)//Button'a basılır { child1Strike ++; Serial.println(child1Strike); gecikme(1000); } }
}
Sonraki Kodu, çocuk 3 ihtar alacak ve ardından cezalı olduklarına dair bir mesaj alacak şekilde değiştirin:
int child1ButtonPin = 13;//Bu butonumuzun bağlı olduğu pindir int child1ButtonState = 0;//Düğmenin durumunu okur (on/off) int child1PreviousState = 0; int child1Strike = 0;
// reset'e bastığınızda veya kartı çalıştırdığınızda kurulum işlevi bir kez çalışır
geçersiz kurulum() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // döngü işlevi sonsuza kadar tekrar tekrar çalışır void loop() { //düğmenin durumunu oku (açık veya kapalı) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState != child1PreviousState) { if(child1ButtonState == HIGH)//Button'a basılır { child1Strike ++; Serial.println(child1Strike);
if(child1Strike >=3)
{ Serial.println("Çocuk 1 Yasaklandı!"); } gecikme(3000); } }
}
Seri Monitör, yukarıdaki resimdeki gibi görünmelidir.
Not: Gecikme konusunda rahat olduğunuzdan emin olun. Çok az bir gecikme ile 1 düğmeye birden fazla basıldığında kaydedilecektir!
3. Adım: Çocuğunuz Olduğu Kadar Düğme Ekleyin
Bu adımda, sadece son birkaç adımı kopyalıyoruz. Çocuklar kadar çok düğme ekleyin. Benim durumumda, dört tane ekliyorum. Düğmenin bağlı olduğu Dijital pin kodunuzu değiştirdiğinizden emin olun. Benim durumumda düğmelerimi eklemek için 12'den 10'a kadar olan pinleri kullandım. Burada hatırlatmanız gerekirse Adım 1:
-
Güç tarafındaki 5V'yi devre tahtasındaki pozitif sıraya bağlayın
- GND'yi breadboard'un negatif tarafına bağlayın
-
Basmalı düğmeyi devre tahtasına yerleştirin Arka sıradaki gücü basma düğmesinin sol alt kısmına bağlayın
- Düğmeyi, devre tahtasının negatif sırasına basma düğmesinin sağ alt kısmına bir direnç kullanarak topraklayın.
- Arduino'nun Dijital tarafındaki (pin numaranız) düğmenin sağ üst tarafına bağlayın.
Ayrıca tüm düğmelerinizi işlemek için kodu değiştirmeniz gerekecektir. Kullandığınız Dizelere dikkat etmeniz gerekiyorsa lütfen unutmayın. Küçük harflere birlikte ekleyemezsiniz. 1'i bir String nesnesi olarak bildirmek en iyisidir.
int child1ButtonPin = 13;//Bu butonumuzun bağlı olduğu pindir toint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0;//Düğmenin durumunu okur (açık/kapalı) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int çocuk1ÖncekiDurum = 0; int child2ÖncekiDurum = 0; int child3ÖncekiDurum = 0; int child4PreviousState = 0; int child1Strike = 0; int child2Strike = 0; int child3Strike = 0; int child4Strike = 0;
// reset'e bastığınızda veya kartı çalıştırdığınızda kurulum işlevi bir kez çalışır
geçersiz kurulum() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); } // döngü işlevi sonsuza kadar tekrar tekrar çalışır void loop() { //düğmenin durumunu oku (açık veya kapalı) child1ButtonState = digitalRead(child1ButtonPin);
child2ButtonState = digitalRead(child2ButtonPin);
child3ButtonState = digitalRead(child3ButtonPin);
child4ButtonState = digitalRead(child4ButtonPin);
if(child1ButtonState != child1PreviousState)
{ if(child1ButtonState == HIGH)//Butona basılır { child1Strike ++; Serial.println(String("Çocuk 1 Has: ") + child1Strike + " vuruşlar");
if(child1Strike >=3)
{ Serial.println("Çocuk 1 Yasaklandı!"); } gecikme(3000); } } if(child2ButtonState != child2PreviousState) { if(child2ButtonState == HIGH)//Button'a basılır { child2Strike ++; Serial.println(String("Çocuk 2'de: ") + child2Strike + " vuruşlar");
if(child2Strike >=3)
{ Serial.println("Çocuk 2 Yasaklandı!"); } gecikme(3000); } }
if(child3ButtonState != child3PreviousState)
{ if(child3ButtonState == HIGH)//Butona basılır { child3Strike ++; Serial.println(String("Çocuk 3'te: ") + child3Strike + " vuruşlar");
if(child3Strike >=3)
{ Serial.println("Çocuk 3 Cezalı!"); } gecikme(3000); } }
if(child4ButtonState != child4PreviousState)
{ if(child4ButtonState == HIGH)//Butona basılır { child4Strike ++; Serial.println(String("Çocuk 4'te: ") + child4Strike + " vuruşlar");
if(child4Strike >=3)
{ Serial.println("Çocuk 4 Cezalı!"); } gecikme(3000); } } }
4. Adım: Bir Buzzer ekleyin
Şimdi çocuklarınızın cezalı olduklarını bilmelerini sağlayalım. Bir buzzer ekleyelim. Buzzer'ı bağlamak için bu kolay adımları izleyin.
- Breadboard'unuza bir Buzzer ekleyin, bir LCD ekran geldiğinden yer için plan yapın.
- Pozitif tarafı (buzzer'ın pozitif tarafında + işareti olmalıdır) seçtiğiniz Pine bağlayın. 9 yaptım.
- Diğer tarafı breadboard'unuzun topraklanmış rayına bağlayın.
Ardından, bir çocuk topraklandığında sesli uyarıyı kapatmak için kodunuzu değiştirin. Buzzer'ınızı kodlamanın birkaç farklı yolu var ama ben tone(buzzerName, hertz, süre) basitliğinden dolayı seviyorum. Yani buna bir örnek tone(buzzer, 4000, 300).
int child1ButtonPin = 13;//Bu butonumuzun bağlı olduğu pindir toint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0;//Düğmenin durumunu okur (açık/kapalı) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int çocuk1ÖncekiDurum = 0; int child2ÖncekiDurum = 0; int child3ÖncekiDurum = 0; int child4PreviousState = 0; int child1Strike = 0; int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int buzzer = 2;
// reset'e bastığınızda veya kartı çalıştırdığınızda kurulum işlevi bir kez çalışır
geçersiz kurulum() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); pinMode(buzzer, OUTPUT); } // döngü işlevi sonsuza kadar tekrar tekrar çalışır void loop() { //düğmenin durumunu oku (açık veya kapalı) child1ButtonState = digitalRead(child1ButtonPin);
child2ButtonState = digitalRead(child2ButtonPin);
child3ButtonState = digitalRead(child3ButtonPin);
child4ButtonState = digitalRead(child4ButtonPin);
if(child1ButtonState != child1PreviousState)
{ if(child1ButtonState == HIGH)//Butona basılır { child1Strike ++; Serial.println(String("Çocuk 1 Has: ") + child1Strike + " vuruşlar");
if(child1Strike >=3)
{ Serial.println("Çocuk 1 Yasaklandı!"); ton(sesli uyarı, 5000, 500); // 5 milisaniye boyunca 5 hertz ses gönderir
}
gecikme(3000); } } if(child2ButtonState != child2PreviousState) { if(child2ButtonState == HIGH)//Button'a basılır { child2Strike ++; Serial.println(String("Çocuk 2'de: ") + child2Strike + " vuruşlar");
if(child2Strike >=3)
{ Serial.println("Çocuk 2 Yasaklandı!"); ton(sesli uyarı, 5000, 500); } gecikme(3000); } }
if(child3ButtonState != child3PreviousState)
{ if(child3ButtonState == HIGH)//Butona basılır { child3Strike ++; Serial.println(String("Çocuk 3'te: ") + child3Strike + " vuruşlar");
if(child3Strike >=3)
{ Serial.println("Çocuk 3 Cezalı!"); ton(sesli uyarı, 5000, 500); } gecikme(3000); } }
if(child4ButtonState != child4PreviousState)
{ if(child4ButtonState == HIGH)//Butona basılır { child4Strike ++; Serial.println(String("Çocuk 4'te: ") + child4Strike + " vuruşlar");
if(child4Strike >=3)
{ Serial.println("Çocuk 4 Cezalı!"); ton(sesli uyarı, 5000, 500); } gecikme(3000); } } }
Adım 5: Bir LCD Ekran Ekleyin
Şimdi net ve kolay okuma için bir LCD ekran sağlar.
- İlk olarak, lcd ekranı kontrol etmek için breadboard'unuza bir potansiyometre ekleyin. Nereye koyduğunuza dikkat edin, çünkü muhtemelen şimdiye kadar alanınız tükeniyor.
- Potansiyometrenizi güç rayına bağlamak için sol ön tarafı kullanın
- Potansiyometrenizi topraklamak için sağ ön tarafı kullanın.
- Arkası lcd ekrana bağlanacaktır.
- LCD ekranı breadboard'unuza ekleyin
- İlk ekran pimini topraklama rayına topraklayın
- İkinci pimi güç rayına bağlayın.
- Üçüncü LCD pini Arduino'daki Pin 8'e gider
- Dördüncü LCD pini Arduino'daki Pin 7'ye gider
- Beşincisi Arduino'daki Pin 6'ya gider
- Altıncı Pin Arduino'daki pin 5'e gider
- LCD ekrandaki 7 ile 10 arasındaki pinler boş
- Pin 11, Arduino'daki Pin 5'e gider
- Pim 12 topraklanmış raya gider
- Pin 13, Arduino'daki Pin 4'e gider
- Pim 14, potansiyometrenin arkasına gider
- Pim 15, Güç rayına gider
- Pim 16, Yer Rayına gider.
Şimdi lcd ekranı kullanmak için kodunuzu güncellemeniz gerekecek. Bunun için libary Liquid Crystal kullanacaksınız. Lcd baskı ifadelerinize dikkat edin. Yeni bir mesaja ihtiyacınız olduğunda ekranı temizlemeyi unutmayın. Ayrıca iki satır kullanmak istediğinizde imleci ayarlamayı unutmayın.
#Dahil etmek
LiquidCrystal lcd(3, 4, 5, 6, 7, 8); //LCD Ekranı ayarlar
int child1ButtonPin = 13;//Bu butonumuzun bağlı olduğu pin int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0;//Düğmenin durumunu okur (açık/kapalı) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int çocuk1ÖncekiDurum = 0; // Basılan butonun önceki durumu int child2PreviousState = 0; int child3ÖncekiDurum = 0; int child4PreviousState = 0; int child1Strike = 0; //Bir çocuğun kaç vuruşu vardır int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int buzzer = 9; // Zil sesi
// reset'e bastığınızda veya kartı çalıştırdığınızda kurulum işlevi bir kez çalışır
geçersiz kurulum() { Serial.begin(9600); lcd.begin(16, 2); lcd.print("Çocuk"); lcd.setCursor(0, 1); lcd.print("Davranış Değiştirici"); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); pinMode(buzzer, OUTPUT); } // döngü işlevi sonsuza kadar tekrar tekrar çalışır void loop() { lcd.setCursor(0, 0); //düğmenin durumunu oku (açık veya kapalı) child1ButtonState = digitalRead(child1ButtonPin);
child2ButtonState = digitalRead(child2ButtonPin);
child3ButtonState = digitalRead(child3ButtonPin);
child4ButtonState = digitalRead(child4ButtonPin);
if(child1ButtonState != child1PreviousState)
{ if(child1ButtonState == HIGH)//Butona basılır { lcd.clear(); child1Strike ++; Serial.println(String("Çocuk 1 Has: ") + child1Strike + " vuruşlar"); lcd.print("Çocuk 1 Var:"); lcd.setCursor(0, 1); lcd.print(child1Strike); lcd.print("Gerekirse!");
if(child1Strike >=3)
{ Serial.println("Çocuk 1 Yasaklandı!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Çocuk 1"); lcd.setCursor(0, 1); lcd.print("Topraklı!");
ton(sesli uyarı, 5000, 500); // 5 milisaniye boyunca 5 hertz ses gönderir
}
gecikme(3000); } } if(child2ButtonState != child2PreviousState) { lcd.clear(); if(child2ButtonState == HIGH)//Butona basılır { child2Strike ++; Serial.println(String("Çocuk 2'de: ") + child2Strike + " vuruşlar"); lcd.print("Çocuk 2'ye Sahiptir:"); lcd.setCursor(0, 1); lcd.print(child2Strike); lcd.print("Gerekirse!"); if(child2Strike >=3) { Serial.println("Çocuk 2 Yasaklandı!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Çocuk 2"); lcd.setCursor(0, 1); lcd.print("Topraklı!"); ton(sesli uyarı, 5000, 500); } gecikme(3000); } }
if(child3ButtonState != child3PreviousState)
{ lcd.clear(); if(child3ButtonState == HIGH)//Butona basılır { child3Strike ++; Serial.println(String("Çocuk 3'te: ") + child3Strike + " vuruşlar"); lcd.print("3. Çocuk:"); lcd.setCursor(0, 1); lcd.print(child3Strike); lcd.print("Gerekirse!"); if(child3Strike >=3) { Serial.println("Çocuk 3 Yasaklandı!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Çocuk 3"); lcd.setCursor(0, 1); lcd.print("Topraklı!"); ton(sesli uyarı, 5000, 500); } gecikme(3000); } }
if(child4ButtonState != child4PreviousState)
{ lcd.clear(); if(child4ButtonState == HIGH)//Butona basılır { child4Strike ++; Serial.println(String("Çocuk 4'te: ") + child4Strike + " vuruşlar"); lcd.print("Çocuk 4 Var:"); lcd.setCursor(0, 1); lcd.print(child4Strike); lcd.print("Gerekirse!");
if(child4Strike >=3)
{ Serial.println("Çocuk 4 Cezalı!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Çocuk 4"); lcd.setCursor(0, 1); lcd.print("Topraklı!"); ton(sesli uyarı, 5000, 500); } gecikme(3000); } } } Ve işte bu, kendi Çocuk Davranış Modiferinizi oluşturmak için ihtiyacınız olan tek şey bu
Önerilen:
Spartan Ses Değiştirici Kask: 14 Adım (Resimlerle)
Spartalı Ses Değiştirici Kask: Merhaba! Sorbonne Üniversitesi Politeknik Okulu'ndan 4 öğrenciden oluşan bir ekibiz: Louis BuchertBilal MelehiBao Tinh PiotMarco Longépé Bu proje, çalışmalarımızın bir parçası olarak gerçekleştirilir ve bir dizi aracı ele almayı ve aynı zamanda
UD-Uyarı. Otizmli Bir Çocuk İçin: 7 Adım (Resimlerle)
UD-Uyarı. Otizmli Bir Çocuk için: Ud-Alert veya daha iyisi Soyunma Uyarısı, ama ne için? Oğlumuz Scott, 13 yaşında, otizmden muzdarip. Sözsüz ve tuvalete gitmesi gerektiğinde bize göstermekte hala sorunları var. Sınırlı iletişimi nedeniyle kıyafetlerini çıkarıyor
DIY Synth'ler için Ses Değiştirici Hack: 9 Adım (Resimlerle)
DIY Synth'ler için Ses Değiştirici Hack: En son 'ibles'imi takip edenler için - son zamanlarda birkaç 555 zamanlayıcı synth inşa ettiğimi bileceksiniz. Geçenlerde yerel geri dönüşüm depoma yaptığım bir gezi sırasında bir çocuk sesi değiştirici buldum. Bir mikrofona konuştuğunuz türden
BİP Diyen Çocuk Mutfağı: 7 Adım (Resimlerle)
BİP Diyen Çocuk Mutfağı: İki yaşındaki kızımın üçüncü doğum günü için 'küçük' bir isteği vardı. Bip yazan küçük bir mutfak istedi. 'Ne istiyorsun?' benim cevabımdı. 'Bip diyen bir mutfak, tıpkı anneler mutfağı gibi!' dedi… Demek ilham kaynağı buydu (ben
Ses Değiştirici: 5 Adım (Resimlerle)
Ses Değiştirici: Merhaba ! Her zaman, sesinizi filtreleme veya modülasyon gibi efektlerle değiştirebilen bir kayıt/restitüsyon ses sistemi oluşturmak istediniz! Ses değiştirici sizin için yapıldı! Bu projenin yaklaşık 10 saate ihtiyacı var ve 173.78.1$ değerinde bir bütçeye sahip DE0 nano Yani