Uşaq Davranış Dəyişdiricisi: 5 addım (şəkillərlə birlikdə)
Uşaq Davranış Dəyişdiricisi: 5 addım (şəkillərlə birlikdə)
Anonim
Uşaq Davranış Dəyişdiricisi
Uşaq Davranış Dəyişdiricisi

Uşaq Davranışı Dəyişdiricisi uşağınızın neçə dəfə problem yaşadığını (aka Strikes) qeyd edir və üçə çatdıqda bir səs siqnalı sönür və bir lcd ekran əsaslandırıldığını bildirir.

Addım 1: Sadə Başlayın: Bir Düymə əlavə edin

Sadə Başlayın: Bir Düymə əlavə edin
Sadə Başlayın: Bir Düymə əlavə edin

Bu layihədə ilk addım sadədir. 1 Düymə əlavə edin. Bu addımda sizə 4 Male -to Wire Tel, 1 220 Resisitor və bir düyməyə ehtiyacınız var.

  1. Güc tərəfindəki 5V -ni çörək lövhəsindəki müsbət sıraya bağlayın
  2. GND -ni çörək panelinin mənfi tərəfinə bağlayın

  3. Düyməni çörək taxtasına daxil edin
  4. Pozitiv cərgədəki gücü düymənin sol alt hissəsinə qoşun

  5. Düymənin sağ alt hissəsindəki bir müqavimətdən istifadə edərək düyməni çörək taxtasının mənfi cərgəsinə qoyun.
  6. Arduinonun Rəqəmsal tərəfindəki 13 nömrəli düyməni sağ üst tərəfə bağlayın.

Düymənin qeydiyyatdan keçdiyini kodunuzla doğrulayın:

int child1ButtonPin = 13; // Bu, düyməmizin bağlı olduğu pindir

int child1ButtonState = 0; // Düymənin vəziyyətini oxuyur (aç/söndür)

int child1Strike = 0; // Uşağın neçə zərbəsi var

// lövhəni sıfırladığınızda və ya gücə basdığınızda quraşdırma funksiyası bir dəfə işləyir

void setup () {Serial.begin (9600); pinMode (uşaq1ButtonPin, GİRİŞ); } // döngə funksiyası təkrar -təkrar işləyir sonsuza qədər void loop () {// düymənin vəziyyətini oxuyun (yandırın və ya söndürün) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Düyməyə basılır {Serial.println ("HIGH"); gecikmə (5000); }

əgər (child1ButtonState == LOW)

{Serial.println ("LOW"); gecikmə (5000); }}

Addım 2: Düyməni basmaq üçün kodu dəyişdirin

Düyməni basmaq üçün kodu dəyişdirin
Düyməni basmaq üçün kodu dəyişdirin
Düyməni basmaq üçün kodu dəyişdirin
Düyməni basmaq üçün kodu dəyişdirin

Bir düyməni basmaq üçün kodu dəyişdirin:

int child1ButtonPin = 13; // Bu, düyməmizin child1ButtonState = 0 ilə əlaqəli olduğu pin; // Düymənin vəziyyətini oxuyur (açma/söndürmə) int child1PreviousState = 0; // Əvvəlki düymə vəziyyəti int child1Strike = 0;

// lövhəni sıfırladığınızda və ya gücə basdığınızda quraşdırma funksiyası bir dəfə işləyir

void setup () {Serial.begin (9600); pinMode (uşaq1ButtonPin, GİRİŞ); } // döngə funksiyası təkrar -təkrar işləyir sonsuza qədər void loop () {// düymənin vəziyyətini oxuyun (yandırın və ya söndürün) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Düyməyə basılır {child1Strike ++; Serial.println (child1Strike); gecikmə (1000); }}

}

Sonra Məcəlləni dəyişdirin ki, uşaq 3 zərbə alsın və bundan sonra əsaslandırılmış bir mesaj alsın:

int child1ButtonPin = 13; // Bu, düyməmizin child1ButtonState = 0 ilə əlaqəli olduğu pin; // Düymənin vəziyyətini oxuyur (açma/söndürmə) int child1PreviousState = 0; int child1Strike = 0;

// lövhəni sıfırladığınızda və ya gücə basdığınızda quraşdırma funksiyası bir dəfə işləyir

void setup () {Serial.begin (9600); pinMode (uşaq1ButtonPin, GİRİŞ); } // loop funksiyası təkrar -təkrar işləyir void loop () {// düymənin vəziyyətini oxuyun (yandırın və ya söndürün) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Düyməyə basılır {child1Strike ++; Serial.println (child1Strike);

əgər (child1Strike> = 3)

{Serial.println ("1 -ci Uşaq Torpaqlıdır!"); } gecikmə (3000); }}

}

Serial İzləyicisi yuxarıdakı şəklə bənzəməlidir.

Qeyd: Gecikmə ilə rahat olduğunuzdan əmin olun. Bir az gecikmə və birdən çox düyməni basmağı qeyd edəcək!

Addım 3: Uşaqlarınız olduğu qədər düymə əlavə edin

Uşaqlarınız olduğu qədər çox düymə əlavə edin
Uşaqlarınız olduğu qədər çox düymə əlavə edin
Uşaqlarınız olduğu qədər çox düymə əlavə edin
Uşaqlarınız olduğu qədər çox düymə əlavə edin

Bu addımda sadəcə son iki addımı kopyalayırıq. Uşaqlar etdiyiniz qədər çox düymə əlavə edin. Mənim vəziyyətimdə dörd əlavə edirəm. Düymənin bağlı olduğu rəqəmsal pin kodunuzu dəyişdirdiyinizə əmin olun. Mənim vəziyyətimdə düymələrimi əlavə etmək üçün 12 -dən 10 -a qədər sancaqlar istifadə etdim. Burada xatırlatmaq lazımdırsa, 1 -ci addımdır:

  1. Güc tərəfindəki 5V -ni çörək lövhəsindəki müsbət sıraya bağlayın

  2. GND -ni çörək panelinin mənfi tərəfinə bağlayın
  3. Düyməni çörək taxtasına daxil edin Düymənin sol alt hissəsindəki pozitiv cərgədəki gücü qoşun

  4. Düymənin sağ alt hissəsindəki bir müqavimətdən istifadə edərək düyməni çörək taxtasının mənfi cərgəsinə qoyun.
  5. Arduinonun Rəqəmsal tərəfindəki (pin nömrənizi) düymənin sağ üst tərəfinə bağlayın.

Bütün düymələrinizi idarə etmək üçün kodu da dəyişdirməlisiniz. Zəhmət olmasa unutmayın ki, istifadə etdiyiniz Stringlərə diqqətli olmaq lazımdır. Kiçik hərflərə birlikdə əlavə edə bilməzsiniz. 1 -i String obyekti elan etmək ən yaxşısıdır.

int child1ButtonPin = 13; // Bu, düyməmizin child2ButtonPin = 12 ilə bağlı olduğu pin; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Düymənin vəziyyətini oxuyur (açma/söndürmə) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; int child2Strike = 0; int child3Strike = 0; int child4Strike = 0;

// lövhəni sıfırladığınızda və ya gücə basdığınızda quraşdırma funksiyası bir dəfə işləyir

void setup () {Serial.begin (9600); pinMode (uşaq1ButtonPin, GİRİŞ); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // loop funksiyası təkrar -təkrar işləyir void loop () {// düymənin vəziyyətini oxuyun (yandırın və ya söndürün) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

əgər (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Düyməyə basılır {child1Strike ++; Serial.println (String ("Uşaq 1 Var:") + uşaq1Strike + "vurur");

əgər (child1Strike> = 3)

{Serial.println ("1 -ci Uşaq Torpaqlıdır!"); } gecikmə (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Düyməyə basılır {child2Strike ++; Serial.println (String ("Uşaq 2 var:") + child2Strike + "zərbələr");

əgər (child2Strike> = 3)

{Serial.println ("2 -ci Uşaq Torpaqlıdır!"); } gecikmə (3000); }}

əgər (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Düyməyə basılır {child3Strike ++; Serial.println (String ("3 -cü uşaq:") + child3Strike + "zərbələr");

əgər (child3Strike> = 3)

{Serial.println ("3 -cü Uşaq Torpaqlıdır!"); } gecikmə (3000); }}

əgər (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Düyməyə basılır {child4Strike ++; Serial.println (String ("Uşaq 4 var:") + child4Strike + "zərbələr");

əgər (child4Strike> = 3)

{Serial.println ("4 -cü Uşaq Torpaqlıdır!"); } gecikmə (3000); }}}

Addım 4: Buzzer əlavə edin

Buzzer əlavə edin
Buzzer əlavə edin
Buzzer əlavə edin
Buzzer əlavə edin

İndi uşaqlarınızın əsaslı olduğunu bildiklərindən əmin olun. Bir səs siqnalı əlavə edək. Səs siqnalı bağlamaq üçün bu sadə addımları izləyin.

  1. Çörək taxtanıza bir Buzzer əlavə edin, bir LCD ekranı göründüyü üçün yer planlayın.
  2. Postiv tərəfi (səs siqnalı postiv tərəfində + işarəsi olmalıdır) seçdiyiniz Pin -ə qoşun. 9 etdim.
  3. Digər tərəfi çörək taxtanızın topraklanmış rayına bağlayın.

Sonra, bir uşaq yerdən düşəndə səs siqnalı söndürmək üçün kodunuzu dəyişdirin. Səs siqnalınızı kodlaşdırmağın bir neçə fərqli yolu var, amma sadəliyi üçün tonu (buzzerName, hertz, müddəti) bəyənirəm. Buna misal olaraq ton ola bilər (buzzer, 4000, 300).

int child1ButtonPin = 13; // Bu, düyməmizin child2ButtonPin = 12 ilə bağlı olduğu pin; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Düymənin vəziyyətini oxuyur (açma/söndürmə) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int buzzer = 2;

// lövhəni sıfırladığınızda və ya gücə basdığınızda quraşdırma funksiyası bir dəfə işləyir

void setup () {Serial.begin (9600); pinMode (uşaq1ButtonPin, GİRİŞ); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (səs siqnalı, ÇIXIŞ); } // loop funksiyası təkrar -təkrar işləyir void loop () {// düymənin vəziyyətini oxuyun (yandırın və ya söndürün) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

əgər (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Düyməyə basılır {child1Strike ++; Serial.println (String ("Uşaq 1 Var:") + uşaq1Strike + "vurur");

əgər (child1Strike> = 3)

{Serial.println ("1 -ci Uşaq Torpaqlıdır!"); ton (səs siqnalı, 5000, 500); // 5 millisekund üçün 5 hertz səs göndərir

}

gecikmə (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Düyməyə basılır {child2Strike ++; Serial.println (String ("2 -ci uşaq:") + child2Strike + "zərbələr");

əgər (child2Strike> = 3)

{Serial.println ("2 -ci Uşaq Torpaqlıdır!"); ton (səs siqnalı, 5000, 500); } gecikmə (3000); }}

əgər (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Düyməyə basılır {child3Strike ++; Serial.println (String ("3 -cü uşaq:") + child3Strike + "zərbələr");

əgər (child3Strike> = 3)

{Serial.println ("3 -cü Uşaq Torpaqlıdır!"); ton (səs siqnalı, 5000, 500); } gecikmə (3000); }}

əgər (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Düyməyə basılır {child4Strike ++; Serial.println (String ("Uşaq 4 var:") + child4Strike + "zərbələr");

əgər (child4Strike> = 3)

{Serial.println ("4 -cü Uşaq Torpaqlıdır!"); ton (səs siqnalı, 5000, 500); } gecikmə (3000); }}}

Addım 5: LCD ekran əlavə edin

Image
Image
LCD ekran əlavə edin
LCD ekran əlavə edin

İndi aydın və asan oxumaq üçün bir LCD ekrana sahib olun.

  1. Birincisi, lcd ekranı idarə etmək üçün çörək taxtanıza bir potansiyometr əlavə edin. Harada qoyduğunuza diqqətli olun, çünki ehtimal ki, artıq yeriniz tükənir.
  2. Potansiyometrenizi elektrik rayına bağlamaq üçün sol öndən istifadə edin
  3. Potansiyometrinizi yerə bağlamaq üçün ön sağdan istifadə edin.
  4. Arxa tərəfi lcd ekrana bağlanacaq.
  5. LCD ekranı çörək taxtanıza əlavə edin
  6. İlk ekran pinini topraklama rayına bağlayın
  7. İkinci pimi elektrik rayına bağlayın.
  8. Üçüncü LCD pin, Arduino -da Pin 8 -ə gedir
  9. Dördüncü LCD pin, Arduino -da Pin 7 -ə gedir
  10. Beşinci Arduino -da Pin 6 -a gedir
  11. Altıncı Pin, Arduino -da 5 -ci pinə gedir
  12. LCD ekranda 7 -dən 10 -a qədər olan pinlər boşdur
  13. Pin 11 Arduino -da 5 -ci Pin -ə gedir
  14. Pin 12 topraklanmış dəmir yolu gedir
  15. 13 -cü pin Arduino -da 4 -cü pinə gedir
  16. Pin 14 potensiometrin arxasına gedir
  17. Pin 15 güc rayına gedir
  18. Pin 16 Yerüstü Dəmiryoluna gedir.

İndi LCD ekrandan istifadə etmək üçün kodunuzu yeniləməlisiniz. Bunun üçün libary Liquid Crystal istifadə edəcəksiniz. LCD çap ifadələrinizə diqqətli olun. Yeni bir mesaj lazım olduqda ekranı silməyi unutmayın. Həm də iki sətirdən istifadə etmək istədiyiniz zaman imleci qurmağı unutmayın.

#daxil edin

LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // LCD Ekranı təyin edir

int child1ButtonPin = 13; // Bu, düyməmizin int child2ButtonPin = 12 ilə bağlı olduğu pin; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Düymənin vəziyyətini oxuyur (açma/söndürmə) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // düymənin əvvəlki vəziyyəti basıldı int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Bir uşağın int child2Strike = 0 neçə zərbəsi var; int child3Strike = 0; int child4Strike = 0; const int buzzer = 9; // Buzzer

// lövhəni sıfırladığınızda və ya gücə basdığınızda quraşdırma funksiyası bir dəfə işləyir

void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Uşaq"); lcd.setCursor (0, 1); lcd.print ("Davranışı dəyişdirən"); pinMode (uşaq1ButtonPin, GİRİŞ); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (səs siqnalı, ÇIXIŞ); } // loop funksiyası təkrar -təkrar işləyir void loop () {lcd.setCursor (0, 0); // düymənin vəziyyətini oxuyun (yandırın və ya söndürün) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

əgər (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Düyməyə basılır {lcd.clear (); child1Strike ++; Serial.println (String ("Uşaq 1 Var:") + uşaq1Strike + "vurur"); lcd.print ("1 -ci Uşaq:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("Zərbələr!");

əgər (child1Strike> = 3)

{Serial.println ("1 -ci Uşaq Torpaqlıdır!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Uşaq 1 -dir"); lcd.setCursor (0, 1); lcd.print ("Toplanmış!");

ton (səs siqnalı, 5000, 500); // 5 millisekund üçün 5 hertz səs göndərir

}

gecikmə (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == YÜKSEK) // Düymə basıldığında {child2Strike ++; Serial.println (String ("2 -ci uşaq:") + child2Strike + "zərbələr"); lcd.print ("2 -ci Uşaq:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Zərbələr!"); if (child2Strike> = 3) {Serial.println ("Uşaq 2 Zəmindir!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Uşaq 2 -dir"); lcd.setCursor (0, 1); lcd.print ("Toplanmış!"); ton (səs siqnalı, 5000, 500); } gecikmə (3000); }}

əgər (child3ButtonState! = child3PreviousState)

{lcd.clear (); if (child3ButtonState == YÜKSEK) // Düyməyə basılır {child3Strike ++; Serial.println (String ("3 -cü uşaq:") + child3Strike + "zərbələr"); lcd.print ("3 uşaq var:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Zərbələr!"); if (child3Strike> = 3) {Serial.println ("3 -cü Uşaq Torpaqlıdır!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("3 -cü uşaqdır"); lcd.setCursor (0, 1); lcd.print ("Toplanmış!"); ton (səs siqnalı, 5000, 500); } gecikmə (3000); }}

əgər (child4ButtonState! = child4PreviousState)

{lcd.clear (); if (child4ButtonState == YÜKSEK) // Düyməyə basıldığında {child4Strike ++; Serial.println (String ("Uşaq 4 var:") + child4Strike + "zərbələr"); lcd.print ("Uşaq 4 Var:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Zərbələr!");

əgər (child4Strike> = 3)

{Serial.println ("4 -cü Uşaq Torpaqlıdır!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("4 -cü uşaqdır"); lcd.setCursor (0, 1); lcd.print ("Toplanmış!"); ton (səs siqnalı, 5000, 500); } gecikmə (3000); }}} Budur, öz Uşaq Davranış Dəyişdiricisini qurmaq üçün lazım olan hər şey budur