Isi kandungan:

Pengubah Tingkah Laku Kanak-kanak: 5 Langkah (dengan Gambar)
Pengubah Tingkah Laku Kanak-kanak: 5 Langkah (dengan Gambar)

Video: Pengubah Tingkah Laku Kanak-kanak: 5 Langkah (dengan Gambar)

Video: Pengubah Tingkah Laku Kanak-kanak: 5 Langkah (dengan Gambar)
Video: Tingkah laku positif dan negatif || Pendidikan Sahsiah || KSSMPK KR 2024, November
Anonim
Pengubah Tingkah Laku Kanak-kanak
Pengubah Tingkah Laku Kanak-kanak

Pengubah Tingkah Laku Kanak-kanak mencatatkan berapa kali anak anda menghadapi masalah (aka Strikes) dan ketika mereka mencapai tiga, bel berbunyi dan skrin lcd mengumumkan bahawa mereka dibumikan.

Langkah 1: Mulakan Ringkas: Tambah Butang

Mulakan Ringkas: Tambah Butang
Mulakan Ringkas: Tambah Butang

Langkah pertama dalam Projek ini adalah mudah. Tambah 1 Butang. Dalam langkah ini, anda memerlukan, 4 Kabel Male to Male, 1 220 Resisitor dan butang tekan.

  1. Sambungkan 5V di sisi Kuasa ke baris positif di papan roti
  2. Sambungkan GND ke sisi negatif papan roti

  3. Masukkan butang tekan ke papan roti
  4. Sambungkan kuasa pada baris pasif ke bahagian bawah kiri butang tekan

  5. Arahkan butang dengan menggunakan perintang ke bahagian kanan bawah butang tekan ke baris negatif papan roti.
  6. Sambungkan # 13 di sisi Digital Arduino ke bahagian kanan atas butang.

Sahkan dengan kod anda bahawa butang mendaftar:

int child1ButtonPin = 13; // Ini adalah pin yang disambungkan oleh butang tekan kami

int child1ButtonState = 0; // Membaca keadaan butang (hidup / mati)

int child1Strike = 0; // Berapa banyak teguran yang dilakukan oleh kanak-kanak itu

// fungsi persediaan berjalan sekali apabila anda menekan semula atau menghidupkan papan

batal persediaan () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // fungsi gelung berulang-ulang selamanya kekosongan gelung () {// baca keadaan butang (hidup atau mati) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == TINGGI) // Butang ditekan {Serial.println ("TINGGI"); kelewatan (5000); }

jika (child1ButtonState == RENDAH)

{Serial.println ("RENDAH"); kelewatan (5000); }}

Langkah 2: Ubahsuai Kod untuk Mendaftar Tekanan Butang

Ubahsuai Kod untuk Mendaftar Tekanan Butang
Ubahsuai Kod untuk Mendaftar Tekanan Butang
Ubahsuai Kod untuk Mendaftar Tekanan Butang
Ubahsuai Kod untuk Mendaftar Tekanan Butang

Ubahsuai Kod untuk mendaftarkan butang tekan:

int child1ButtonPin = 13; // Ini adalah pin butang tekan kami disambungkan ke child1ButtonState = 0; // Membaca keadaan butang (hidup / mati) int child1PreviousState = 0; // Nyatakan butang sebelumnya int child1Strike = 0;

// fungsi penyediaan berjalan sekali apabila anda menekan semula atau menghidupkan papan

batal persediaan () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // fungsi gelung berulang-ulang kali selamanya kekosongan gelung () {// baca keadaan butang (hidup atau mati) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == TINGGI) // Butang ditekan {child1Strike ++; Serial.println (child1Strike); kelewatan (1000); }}

}

Seterusnya Ubah Kod sehingga anak mendapat 3 teguran dan selepas itu mereka akan menerima mesej bahawa mereka dibumikan:

int child1ButtonPin = 13; // Ini adalah pin butang tekan kami disambungkan ke child1ButtonState = 0; // Membaca keadaan butang (hidup / mati) int child1PreviousState = 0; int child1Strike = 0;

// fungsi persediaan berjalan sekali apabila anda menekan semula atau menghidupkan papan

batal persediaan () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // fungsi gelung berulang-ulang kali selamanya kekosongan gelung () {// baca keadaan butang (hidup atau mati) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == TINGGI) // Butang ditekan {child1Strike ++; Serial.println (child1Strike);

jika (child1Strike> = 3)

{Serial.println ("Anak 1 Dibumikan!"); } kelewatan (3000); }}

}

Serial Moniter harus seperti gambar di atas.

Catatan: Pastikan anda selesa dengan kelewatan. Untuk sedikit kelewatan dan ia akan mendaftar 1 butang tekan lebih dari satu!

Langkah 3: Tambah Sebilangan Butang Semasa Anda Mempunyai Anak

Tambah Sebilangan Butang Semasa Anda Mempunyai Anak
Tambah Sebilangan Butang Semasa Anda Mempunyai Anak
Tambah Sebilangan Butang Semasa Anda Mempunyai Anak
Tambah Sebilangan Butang Semasa Anda Mempunyai Anak

Dalam langkah ini, kami hanya menyalin beberapa langkah terakhir. Tambahkan seberapa banyak butang seperti yang anda lakukan kanak-kanak. Dalam kes saya, saya menambah empat. Pastikan untuk menukar kod anda pin Digital yang diikat oleh butang. Dalam kes saya, saya menggunakan pin 12 hingga 10 untuk menambah butang saya. Sekiranya anda perlu mengingatkan di sini adalah Langkah 1:

  1. Sambungkan 5V di sisi Kuasa ke baris positif di papan roti
  2. Sambungkan GND ke sisi negatif papan roti

  3. Masukkan butang tekan ke papan roti Sambungkan kuasa pada baris pasif ke bahagian bawah kiri butang tekan
  4. Arahkan butang dengan menggunakan perintang ke bahagian kanan bawah butang tekan ke baris negatif papan roti.

  5. Sambungkan (nombor pin anda) di sisi Digital Arduino ke bahagian kanan atas butang.

Anda juga perlu mengubah kod untuk mengendalikan semua butang anda. Perlu diingat bahawa jika anda perlu berhati-hati dengan Strings yang anda gunakan. Anda tidak boleh menambah huruf kecil bersama-sama. Yang terbaik untuk menyatakan 1 sebagai objek String.

int child1ButtonPin = 13; // Ini adalah pin butang tekan kami dihubungkan ke child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Membaca keadaan butang (hidup / mati) 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;

// fungsi persediaan berjalan sekali apabila anda menekan semula atau menghidupkan papan

batal persediaan () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // fungsi gelung berulang-ulang kali selamanya kekosongan gelung () {// baca keadaan butang (hidup atau mati) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

jika (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == TINGGI) // Butang ditekan {child1Strike ++; Serial.println (Rentetan ("Anak 1 Mempunyai:") + child1Strike + "strike");

jika (child1Strike> = 3)

{Serial.println ("Anak 1 Dibumikan!"); } kelewatan (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == TINGGI) // Butang ditekan {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strike");

jika (child2Strike> = 3)

{Serial.println ("Anak 2 Dibumikan!"); } kelewatan (3000); }}

jika (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == TINGGI) // Butang ditekan {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strike");

jika (child3Strike> = 3)

{Serial.println ("Anak 3 Dibumikan!"); } kelewatan (3000); }}

jika (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == TINGGI) // Butang ditekan {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strike");

jika (child4Strike> = 3)

{Serial.println ("Anak 4 Dibumikan!"); } kelewatan (3000); }}}

Langkah 4: Tambahkan Buzzer

Tambahkan Buzzer
Tambahkan Buzzer
Tambahkan Buzzer
Tambahkan Buzzer

Sekarang mari pastikan bahawa anak-anak anda tahu bahawa mereka dibumikan. Mari tambah buzzer. Untuk menyambungkan bel, ikuti langkah mudah ini.

  1. Tambahkan Buzzer ke papan roti anda, rencanakan ruang kerana skrin LCD akan muncul.
  2. Sambungkan sisi Postive (buzzer harus mempunyai + di sisi postive) ke Pin pilihan anda. Saya melakukan 9.
  3. Sambungkan bahagian lain ke landasan landasan papan roti anda.

Seterusnya, ubah kod anda untuk mematikan bel semasa anak kecil dibumikan. Terdapat beberapa cara yang berbeza untuk membuat kod untuk buzzer anda tetapi saya suka nada (buzzerName, hertz, durasi) kerana kesederhanaannya. Contohnya ialah nada (buzzer, 4000, 300).

int child1ButtonPin = 13; // Ini adalah pin butang tekan kami disambungkan ke child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Membaca keadaan butang (hidup / mati) 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;

// fungsi persediaan berjalan sekali apabila anda menekan semula atau menghidupkan papan

batal persediaan () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (buzzer, OUTPUT); } // fungsi gelung berulang-ulang kali selamanya kekosongan gelung () {// baca keadaan butang (hidup atau mati) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

jika (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == TINGGI) // Butang ditekan {child1Strike ++; Serial.println (Rentetan ("Anak 1 Mempunyai:") + child1Strike + "strike");

jika (child1Strike> = 3)

{Serial.println ("Anak 1 Dibumikan!"); nada (bel, 5000, 500); // Menghantar bunyi 5 hertz selama 5 milisaat

}

kelewatan (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == TINGGI) // Butang ditekan {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strike");

jika (child2Strike> = 3)

{Serial.println ("Anak 2 Dibumikan!"); nada (bel, 5000, 500); } kelewatan (3000); }}

jika (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == TINGGI) // Butang ditekan {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strike");

jika (child3Strike> = 3)

{Serial.println ("Anak 3 Dibumikan!"); nada (bel, 5000, 500); } kelewatan (3000); }}

jika (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == TINGGI) // Butang ditekan {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strike");

jika (child4Strike> = 3)

{Serial.println ("Anak 4 Dibumikan!"); nada (bel, 5000, 500); } kelewatan (3000); }}}

Langkah 5: Tambahkan Skrin LCD

Image
Image
Tambahkan Skrin LCD
Tambahkan Skrin LCD

Sekarang biarkan skrin LCD untuk bacaan yang jelas dan mudah.

  1. Pertama, tambahkan potensiometer ke papan roti anda untuk mengawal skrin lcd. Berhati-hatilah di mana anda meletakkannya kerana sekarang anda mungkin kehabisan ruang.
  2. Gunakan kiri depan untuk menyambungkan potensiometer anda ke rel kuasa
  3. Gunakan bahagian depan kanan untuk membumikan potensiometer anda.
  4. Bahagian belakang akan disambungkan ke skrin lcd.
  5. Tambahkan skrin LCD ke papan roti anda
  6. Arahkan pin skrin pertama ke landasan landasan
  7. Kawat pin kedua ke rel kuasa.
  8. Pin LCD ketiga menuju ke Pin 8 di Arduino
  9. Pin LCD keempat menuju ke Pin 7 di Arduino
  10. Kelima menuju Pin 6 di Arduino
  11. Pin Keenam masuk ke pin 5 di Arduino
  12. Pin 7 hingga 10 pada skrin LCD kosong
  13. Pin 11 menuju ke Pin 5 di Arduino
  14. Pin 12 menuju ke landasan rel
  15. Pin 13 menuju ke Pin 4 di Arduino
  16. Pin 14 menuju ke bahagian belakang potensiometer
  17. Pin 15 menuju ke Power rail
  18. Pin 16 menuju ke Landasan Rel.

Sekarang anda perlu mengemas kini kod anda untuk menggunakan skrin lcd. Untuk itu anda akan menggunakan perpustakaan Liquid Crystal. Berhati-hati dengan penyata cetak lcd anda. Ingatlah untuk membersihkan skrin apabila anda memerlukan mesej baru. Juga ingat untuk menetapkan kursor semasa anda ingin menggunakan dua baris.

#sertakan

LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Menetapkan Skrin LCD

int child1ButtonPin = 13; // Ini adalah pin butang tekan kami disambungkan ke int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Membaca keadaan butang (hidup / mati) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Keadaan sebelumnya butang ditekan int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Berapa Banyak Teguran seorang kanak-kanak mempunyai int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int buzzer = 9; // Buzzer

// fungsi persediaan berjalan sekali apabila anda menekan semula atau menghidupkan papan

batal persediaan () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Anak itu"); lcd.setCursor (0, 1); lcd.print ("Perilaku Pengubah"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (buzzer, OUTPUT); } // fungsi gelung berulang-ulang selamanya kekosongan gelung () {lcd.setCursor (0, 0); // baca keadaan butang (hidup atau mati) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

jika (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == TINGGI) // Butang ditekan {lcd.clear (); child1Strike ++; Serial.println (Rentetan ("Anak 1 Mempunyai:") + child1Strike + "strike"); lcd.print ("Anak 1 Mempunyai:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("Teguran!");

jika (child1Strike> = 3)

{Serial.println ("Anak 1 Dibumikan!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Anak 1 adalah"); lcd.setCursor (0, 1); lcd.print ("Dibumikan!");

nada (bel, 5000, 500); // Menghantar bunyi 5 hertz selama 5 milisaat

}

kelewatan (3000); }} jika (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == TINGGI) // Butang ditekan {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strike"); lcd.print ("Anak 2 Mempunyai:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Teguran!"); if (child2Strike> = 3) {Serial.println ("Anak 2 Dibumikan!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Anak 2 adalah"); lcd.setCursor (0, 1); lcd.print ("Dibumikan!"); nada (bel, 5000, 500); } kelewatan (3000); }}

jika (child3ButtonState! = child3PreviousState)

{lcd.clear (); if (child3ButtonState == TINGGI) // Butang ditekan {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strike"); lcd.print ("Anak 3 Mempunyai:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Teguran!"); if (child3Strike> = 3) {Serial.println ("Anak 3 Dibumikan!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Anak 3 adalah"); lcd.setCursor (0, 1); lcd.print ("Dibumikan!"); nada (bel, 5000, 500); } kelewatan (3000); }}

jika (child4ButtonState! = child4PreviousState)

{lcd.clear (); if (child4ButtonState == TINGGI) // Butang ditekan {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strike"); lcd.print ("Anak 4 Mempunyai:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Teguran!");

jika (child4Strike> = 3)

{Serial.println ("Anak 4 Dibumikan!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Anak 4 adalah"); lcd.setCursor (0, 1); lcd.print ("Dibumikan!"); nada (bel, 5000, 500); } kelewatan (3000); }}} Itu saja, yang anda perlukan untuk membina Modifer Perilaku Anak anda sendiri

Disyorkan: