Mundarija:

Bolaning xulq -atvorini o'zgartiruvchi: 5 qadam (rasmlar bilan)
Bolaning xulq -atvorini o'zgartiruvchi: 5 qadam (rasmlar bilan)

Video: Bolaning xulq -atvorini o'zgartiruvchi: 5 qadam (rasmlar bilan)

Video: Bolaning xulq -atvorini o'zgartiruvchi: 5 qadam (rasmlar bilan)
Video: Hayotingiz uchun 5 SONIYA QOIDASI! MILLIONLAB kishilarni O'ZGARTIRGAN VIDEO 2024, Noyabr
Anonim
Bolaning xatti -harakatlarini o'zgartiruvchi
Bolaning xatti -harakatlarini o'zgartiruvchi

Bolaning xulq -atvori modifikatori sizning farzandingiz necha marta muammoga duch kelganini yozadi (aka Strikes) va ular uchga yetganda, ovozli signal o'chadi va LCD displeyi ularning ishdan chiqqanligini e'lon qiladi.

1 -qadam: oddiy boshlash: tugma qo'shing

Oddiy boshlang: tugma qo'shing
Oddiy boshlang: tugma qo'shing

Loyihaning birinchi bosqichi oddiy. 1 tugma qo'shing. Ushbu bosqichda sizga 4 ta erkakdan erkakgacha simlar, 1 220 ta rezistor va tugma kerak.

  1. Quvvat tomonidagi 5V ni non panelidagi ijobiy qatorga ulang
  2. GND -ni non panelining salbiy tomoniga ulang

  3. Tugmani non paneliga joylashtiring
  4. Pozitsion qatordagi quvvatni tugmachaning chap pastki qismiga ulang

  5. Rezistor yordamida tugmachaning o'ng pastki qismidagi non panelining salbiy qatorini bosing.
  6. Arduinoning raqamli tomonidagi 13 -sonni tugmachaning o'ng yuqori qismiga ulang.

Tugma ro'yxatdan o'tayotganligini kodingiz bilan tasdiqlang:

int child1ButtonPin = 13; // Bu bizning tugmachamiz ulangan pin

int child1ButtonState = 0; // Tugma holatini o'qiydi (yoqish/o'chirish)

int child1Strike = 0; // Bolaning qancha zarbasi bor

// taxtani qayta o'rnatish yoki quvvat tugmasini bosganingizda sozlash funktsiyasi bir marta ishlaydi

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // loop funktsiyasi qayta -qayta ishlaydi abadiy void loop () {// tugma holatini o'qish (yoqish yoki o'chirish) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Tugma bosiladi {Serial.println ("HIGH"); kechikish (5000); }

agar (child1ButtonState == LOW)

{Serial.println ("LOW"); kechikish (5000); }}

2 -qadam: tugmachalarni bosish uchun kodni o'zgartiring

Tugma bosishni ro'yxatdan o'tkazish uchun kodni o'zgartiring
Tugma bosishni ro'yxatdan o'tkazish uchun kodni o'zgartiring
Tugma bosishni ro'yxatdan o'tkazish uchun kodni o'zgartiring
Tugma bosishni ro'yxatdan o'tkazish uchun kodni o'zgartiring

Tugmani bosish uchun kodni o'zgartiring:

int child1ButtonPin = 13; // Bu bizning tugmachamiz child1ButtonState = 0 ga ulangan pin; // tugma holatini o'qiydi (yoqish/o'chirish) int child1PreviousState = 0; // Oldingi tugma holati int child1Strike = 0;

// taxtani qayta o'rnatish yoki quvvat tugmasini bosganingizda sozlash funktsiyasi bir marta ishlaydi

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // loop funktsiyasi qayta -qayta ishlaydi abadiy void loop () {// tugma holatini o'qish (yoqish yoki o'chirish) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Tugma bosiladi {child1Strike ++; Serial.println (child1Strike); kechikish (1000); }}

}

Keyin kodni o'zgartiring, shunda bola 3 ta zarba oladi, shundan so'ng ular asoslanmaganligi to'g'risida xabar oladi:

int child1ButtonPin = 13; // bu bizning tugmachamiz child1ButtonState = 0 ga ulangan pin; // tugma holatini o'qadi (yoqish/o'chirish) int child1PreviousState = 0; int child1Strike = 0;

// taxtani qayta o'rnatish yoki quvvat tugmasini bosganingizda sozlash funktsiyasi bir marta ishlaydi

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // loop funktsiyasi qayta -qayta ishlaydi abadiy void loop () {// tugma holatini o'qish (yoqish yoki o'chirish) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Tugma bosiladi {child1Strike ++; Serial.println (child1Strike);

agar (child1Strike> = 3)

{Serial.println ("1 -bola asoslantirilgan!"); } kechikish (3000); }}

}

Serial monitori yuqoridagi rasmga o'xshash bo'lishi kerak.

Eslatma: Kechiktirish sizga qulay ekanligiga ishonch hosil qiling. Biroz kechikish va u 1 tugmachani bir martadan ko'proq bosadi!

3 -qadam: Farzandingiz boricha ko'p tugmachalarni qo'shing

Farzandlaringiz boricha ko'p tugmachalarni qo'shing
Farzandlaringiz boricha ko'p tugmachalarni qo'shing
Farzandlaringiz boricha ko'p tugmachalarni qo'shing
Farzandlaringiz boricha ko'p tugmachalarni qo'shing

Bu bosqichda biz faqat oxirgi ikki qadamni nusxa ko'chiramiz. Bolalar kabi qancha tugmachani qo'shsangiz. Menimcha, men to'rttasini qo'shaman. Tugma bog'langan raqamli pin kodini o'zgartirganingizga ishonch hosil qiling. Mening holatimda tugmachalarni qo'shish uchun 12 dan 10 gacha pimlardan foydalanardim. Agar sizga bu erda eslatish kerak bo'lsa, 1 -qadam:

  1. Quvvat tarafidagi 5V ni non panelidagi ijobiy qatorga ulang
  2. GND -ni non panelining salbiy tomoniga ulang

  3. Tugmachani non paneliga joylashtiring Quvvatni tugmachaning chap pastki qismiga qo'ying.
  4. Rezistor yordamida tugmachaning o'ng pastki qismidagi non panelining salbiy qatorini bosing.

  5. Arduinoning raqamli tomonidagi (pin raqamingizni) tugmani o'ng yuqori qismiga ulang.

Shuningdek, siz barcha tugmachalarni boshqarish uchun kodni o'zgartirishingiz kerak bo'ladi. Shuni yodda tutingki, agar siz ishlatgan satrlarga ehtiyot bo'lishingiz kerak bo'lsa. Siz kichik harflarga birgalikda qo'sha olmaysiz. String obyekti sifatida 1 deb e'lon qilish eng yaxshisidir.

int child1ButtonPin = 13; // Bu bizning tugmachamiz child2ButtonPin = 12 ga ulangan pin; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // tugma holatini o'qiydi (yoqish/o'chirish) 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;

// taxtani qayta o'rnatish yoki quvvat tugmasini bosganingizda sozlash funktsiyasi bir marta ishlaydi

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // loop funktsiyasi qayta -qayta ishlaydi abadiy void loop () {// tugma holatini o'qish (yoqish yoki o'chirish) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

agar (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Tugma bosiladi {child1Strike ++; Serial.println (String ("1 -bolada:") + child1Strike + "urish");

agar (child1Strike> = 3)

{Serial.println ("1 -bola asoslantirilgan!"); } kechikish (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Tugma bosiladi {child2Strike ++; Serial.println (String ("2 -bolada:") + child2Strike + "urish");

agar (child2Strike> = 3)

{Serial.println ("2 -bola asoslantirilgan!"); } kechikish (3000); }}

agar (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Tugma bosiladi {child3Strike ++; Serial.println (String ("3 -bolada:") + child3Strike + "urish");

agar (child3Strike> = 3)

{Serial.println ("3 -bola asoslantirilgan!"); } kechikish (3000); }}

agar (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Tugma bosiladi {child4Strike ++; Serial.println (String ("4 -bolada:") + child4Strike + "urish");

agar (child4Strike> = 3)

{Serial.println ("4 -bola asosli!"); } kechikish (3000); }}}

4 -qadam: Buzzer qo'shish

Buzzer qo'shish
Buzzer qo'shish
Buzzer qo'shish
Buzzer qo'shish

Keling, sizning bolalaringiz ular asosli ekanligini bilishlariga ishonch hosil qilaylik. Qo'ng'iroq qilaylik. Buzzerni ulash uchun quyidagi oddiy qadamlarni bajaring.

  1. O'zingizning taxtangizga Buzzer -ni qo'shing, LCD displey paydo bo'lgandan keyin bo'sh joyni rejalashtiring.
  2. Postiv tomonni (zilzilaning pozitsiyali tomonida + belgisi bo'lishi kerak) siz tanlagan Pinga ulang. Men 9 qildim.
  3. Boshqa tomonni non taxtangizning erga ulangan relsiga ulang.

Keyin, bola erga tushganda signal signalini o'chirish uchun kodingizni o'zgartiring. Sizning ovozli signalingizni kodlashning bir necha xil usullari bor, lekin men ohangni (buzzerName, herts, davomiyligi) soddaligi bilan yaxshi ko'raman, shuning uchun bunga misol bo'la oladi (buzzer, 4000, 300).

int child1ButtonPin = 13; // Bu bizning tugmachamiz child2ButtonPin = 12 ga ulangan pin; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // tugma holatini o'qiydi (yoqish/o'chirish) 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;

// taxtani qayta o'rnatish yoki quvvat tugmasini bosganingizda sozlash funktsiyasi bir marta ishlaydi

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (signal, OUTPUT); } // loop funktsiyasi qayta -qayta ishlaydi abadiy void loop () {// tugma holatini o'qish (yoqish yoki o'chirish) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

agar (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Tugma bosiladi {child1Strike ++; Serial.println (String ("1 -bolada:") + child1Strike + "urish");

agar (child1Strike> = 3)

{Serial.println ("1 -bola asoslantirilgan!"); ohang (signal, 5000, 500); // 5 millisekundga 5 gertsli ovoz yuboradi

}

kechikish (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Tugma bosiladi {child2Strike ++; Serial.println (String ("2 -bolada:") + child2Strike + "urish");

agar (child2Strike> = 3)

{Serial.println ("2 -bola asoslantirilgan!"); ohang (signal, 5000, 500); } kechikish (3000); }}

agar (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Tugma bosiladi {child3Strike ++; Serial.println (String ("3 -bolada:") + child3Strike + "urish");

agar (child3Strike> = 3)

{Serial.println ("3 -bola asoslantirilgan!"); ohang (signal, 5000, 500); } kechikish (3000); }}

agar (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Tugma bosiladi {child4Strike ++; Serial.println (String ("4 -bolada:") + child4Strike + "urish");

agar (child4Strike> = 3)

{Serial.println ("4 -bola asosli!"); ohang (signal, 5000, 500); } kechikish (3000); }}}

5 -qadam: LCD displey qo'shing

Image
Image
LCD displey qo'shing
LCD displey qo'shing

Endi LCD displeyi aniq va oson o'qish uchun ruxsat beradi.

  1. Birinchidan, LCD displeyni boshqarish uchun non paneliga potentsiometr qo'shing. Qaerga qo'yganingizga ehtiyot bo'ling, chunki hozir bo'sh joyingiz tugab qolgandir.
  2. Potentsiometrni elektr tarmog'iga ulash uchun old chapdan foydalaning
  3. Potentsiometrni erga ulash uchun old o'ngdan foydalaning.
  4. Orqa tomon LCD displeyga ulanadi.
  5. LCD displeyni taxtangizga qo'shing
  6. Birinchi ekran pinini topraklama rayiga ulang
  7. Ikkinchi pinni elektr tarmog'iga ulang.
  8. Uchinchi LCD -pin Arduino -dagi 8 -pinga o'tadi
  9. To'rtinchi LCD pin Arduino -dagi 7 -pinga o'tadi
  10. Beshinchisi Arduino -dagi 6 -pinga o'tadi
  11. Oltinchi pin Arduino 5 -piniga o'tadi
  12. LCD displeyda 7 dan 10 gacha bo'lgan pinlar bo'sh
  13. 11 -pin Arduino -dagi 5 -pinga o'tadi
  14. 12 -chi pin yerga o'rnatilgan temir yo'lga o'tadi
  15. 13 -pin Arduino -dagi 4 -pinga o'tadi
  16. 14 -pin potensiometrning orqa tomoniga o'tadi
  17. 15 -pin quvvat rayiga o'tadi
  18. 16 -pin yer osti temir yo'liga o'tadi.

Endi siz LCD ekranni ishlatish uchun kodingizni yangilashingiz kerak bo'ladi. Buning uchun siz libary suyuq kristalidan foydalanasiz. Lcd bosma bayonotlaringizga ehtiyot bo'ling. Yangi xabar kerak bo'lganda ekranni tozalashni unutmang. Shuningdek, ikkita satrdan foydalanmoqchi bo'lganingizda kursorni o'rnatishni unutmang.

#qo'shing

LiquidCrystal LCD (3, 4, 5, 6, 7, 8); // LCD ekranni o'rnatadi

int child1ButtonPin = 13; // Bu bizning tugmachamiz int child2ButtonPin = 12 ga ulangan pin; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // tugma holatini o'qiydi (yoqish/o'chirish) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // tugmachaning oldingi holati int child2PreviousState = 0 bosilgan; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Bolada qancha bola bor int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int buzzer = 9; // Buzzer

// taxtani qayta o'rnatish yoki quvvat tugmasini bosganingizda sozlash funktsiyasi bir marta ishlaydi

void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Bola"); lcd.setCursor (0, 1); lcd.print ("Xatti -harakatni o'zgartiruvchi"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (signal, OUTPUT); } // loop funktsiyasi qayta -qayta ishlaydi abadiy void loop () {lcd.setCursor (0, 0); // tugma holatini o'qish (yoqish yoki o'chirish) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

agar (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Tugma bosiladi {lcd.clear (); child1Strike ++; Serial.println (String ("1 -bolada:") + child1Strike + "urish"); lcd.print ("1 -bolada bor:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("Ish tashlashlar!");

agar (child1Strike> = 3)

{Serial.println ("1 -bola asoslantirilgan!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("1 -bola"); lcd.setCursor (0, 1); lcd.print ("Tuproqli!");

ohang (signal, 5000, 500); // 5 millisekundga 5 gertsli ovoz yuboradi

}

kechikish (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Tugma bosiladi {child2Strike ++; Serial.println (String ("2 -bolada:") + child2Strike + "urish"); lcd.print ("2 -bolada:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Ish tashlashlar!"); if (child2Strike> = 3) {Serial.println ("2 -bola asosli!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("2 -bola"); lcd.setCursor (0, 1); lcd.print ("Tuproqli!"); ohang (signal, 5000, 500); } kechikish (3000); }}

agar (child3ButtonState! = child3PreviousState)

{lcd.clear (); if (child3ButtonState == HIGH) // Tugma bosiladi {child3Strike ++; Serial.println (String ("3 -bolada:") + child3Strike + "urish"); lcd.print ("3 -bolada:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Ish tashlashlar!"); if (child3Strike> = 3) {Serial.println ("3 -bola asosli!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("3 -bola"); lcd.setCursor (0, 1); lcd.print ("Tuproqli!"); ohang (signal, 5000, 500); } kechikish (3000); }}

agar (child4ButtonState! = child4PreviousState)

{lcd.clear (); if (child4ButtonState == HIGH) // Tugma bosiladi {child4Strike ++; Serial.println (String ("4 -bolada:") + child4Strike + "urish"); lcd.print ("4 -bolada:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Ish tashlashlar!");

agar (child4Strike> = 3)

{Serial.println ("4 -bola asosli!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("4 -bola"); lcd.setCursor (0, 1); lcd.print ("Tuproqli!"); ohang (signal, 5000, 500); } kechikish (3000); }}} Va bu, o'z shaxsiy bolalar xulq -atvorini yaratish uchun kerak bo'lgan narsa

Tavsiya: