Daftar Isi:
- Langkah 1: Mulai Sederhana: Tambahkan Tombol
- Langkah 2: Ubah Kode untuk Menekan Tombol Daftar
- Langkah 3: Tambahkan Tombol Sebanyak yang Anda Punya Anak
- Langkah 4: Tambahkan Buzzer
- Langkah 5: Tambahkan Layar LCD
Video: Pengubah Perilaku Anak: 5 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-02-01 14:41
Pengubah Perilaku Anak mencatat berapa kali anak Anda mendapat masalah (alias Mogok) dan ketika mereka mencapai tiga, bel berbunyi dan layar lcd mengumumkan bahwa mereka di-ground.
Langkah 1: Mulai Sederhana: Tambahkan Tombol
Langkah pertama dalam Proyek ini sederhana. Tambahkan 1 Tombol. Pada langkah ini Anda membutuhkan, 4 Kabel Male to Male, 1220 Resisitor dan tombol tekan.
- Hubungkan 5V di sisi Daya ke baris positif di papan tempat memotong roti
-
Hubungkan GND ke sisi negatif papan tempat memotong roti
- Masukkan tombol tekan ke papan tempat memotong roti
-
Hubungkan daya pada baris postive ke bagian kiri bawah tombol tekan
- Ground tombol dengan menggunakan resistor ke bagian kanan bawah tombol tekan ke baris negatif papan tempat memotong roti.
- Hubungkan #13 di sisi Digital Arduino ke sisi kanan atas tombol.
Verifikasi dengan kode Anda bahwa tombol sedang mendaftar:
int child1ButtonPin = 13;//Ini adalah pin yang terhubung dengan tombol push kita
int child1ButtonState = 0;//Membaca status tombol (on/off)
int child1Strike = 0; // Berapa banyak pukulan yang dilakukan anak itu
// fungsi pengaturan berjalan sekali ketika Anda menekan reset atau menyalakan papan
void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // fungsi loop berjalan berulang-ulang selamanya void loop() { //membaca status tombol (on atau off) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState == HIGH)//Tombol ditekan { Serial.println("HIGH"); penundaan(5000); }
if(child1ButtonState == RENDAH)
{ Serial.println("RENDAH"); penundaan(5000); } }
Langkah 2: Ubah Kode untuk Menekan Tombol Daftar
Ubah Kode untuk mendaftar tekan tombol:
int child1ButtonPin = 13;//Ini adalah pin yang terhubung dengan push button kita keint child1ButtonState = 0;//Membaca status tombol (on/off) int child1PreviousState = 0; // Status tombol sebelumnya int child1Strike = 0;
// fungsi pengaturan berjalan sekali ketika Anda menekan reset atau menyalakan papan
void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // fungsi loop berjalan berulang-ulang selamanya void loop() { //membaca status tombol (on atau off) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState != child1PreviousState) { if(child1ButtonState == HIGH)//Tombol ditekan { child1Strike ++; Serial.println(child1Strike); penundaan (1000); } }
}
Selanjutnya Ubah Kode sehingga anak mendapat 3 teguran setelah itu mereka akan menerima pesan bahwa mereka dihukum:
int child1ButtonPin = 13;//Ini adalah pin yang terhubung dengan push button kita keint child1ButtonState = 0;//Membaca status tombol (on/off) int child1PreviousState = 0; int child1Strike = 0;
// fungsi pengaturan berjalan sekali ketika Anda menekan reset atau menyalakan papan
void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // fungsi loop berjalan berulang-ulang selamanya void loop() { //membaca status tombol (on atau off) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState != child1PreviousState) { if(child1ButtonState == HIGH)//Tombol ditekan { child1Strike ++; Serial.println(child1Strike);
if(Child1Strike >=3)
{ Serial.println("Anak 1 Dibumikan!"); } penundaan(3000); } }
}
Serial Monitor akan terlihat seperti gambar di atas.
Catatan: Pastikan Anda merasa nyaman dengan penundaan itu. Untuk sedikit penundaan dan itu akan mendaftarkan 1 tombol tekan lebih dari satu!
Langkah 3: Tambahkan Tombol Sebanyak yang Anda Punya Anak
Pada langkah ini, kita cukup menyalin beberapa langkah terakhir. Tambahkan tombol sebanyak yang Anda lakukan anak-anak. Dalam kasus saya, saya menambahkan empat. Pastikan untuk mengubah kode Anda ke pin Digital yang dihubungkan dengan tombol. Dalam kasus saya, saya menggunakan pin 12 hingga 10 untuk menambahkan tombol saya. Jika Anda perlu diingatkan di sini adalah Langkah 1:
- Hubungkan 5V di sisi Daya ke baris positif di papan tempat memotong roti
-
Hubungkan GND ke sisi negatif papan tempat memotong roti
- Masukkan tombol tekan ke papan tempat memotong rotiHubungkan daya pada baris postive ke bagian kiri bawah tombol tekan
-
Ground tombol dengan menggunakan resistor ke bagian kanan bawah tombol tekan ke baris negatif dari papan tempat memotong roti.
- Hubungkan (nomor pin Anda) di sisi Digital Arduino ke sisi kanan atas tombol.
Anda juga perlu memodifikasi kode untuk menangani semua tombol Anda. Harap diingat bahwa jika Anda perlu berhati-hati dengan String yang Anda gunakan. Anda tidak dapat menambahkan huruf kecil bersama-sama. Yang terbaik untuk mendeklarasikan 1 sebagai objek String.
int child1ButtonPin = 13;//Ini adalah pin yang terhubung dengan tombol push kita keint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0;//Membaca status tombol (on/off) 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 pengaturan berjalan sekali ketika Anda menekan reset atau menyalakan papan
void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); } // fungsi loop berjalan berulang-ulang selamanya void loop() { //membaca status tombol (on atau off) child1ButtonState = digitalRead(child1ButtonPin);
child2ButtonState = digitalRead(child2ButtonPin);
child3ButtonState = digitalRead(child3ButtonPin);
child4ButtonState = digitalRead(child4ButtonPin);
if(child1ButtonState != child1PreviousState)
{ if(child1ButtonState == HIGH)//Tombol ditekan { child1Strike ++; Serial.println(String("Anak 1 Memiliki: ") + child1Strike + " strike");
if(Child1Strike >=3)
{ Serial.println("Anak 1 Dibumikan!"); } penundaan(3000); } } if(child2ButtonState != child2PreviousState) { if(child2ButtonState == HIGH)//Tombol ditekan { child2Strike ++; Serial.println(String("Anak 2 memiliki: ") + child2Strike + " strike");
if(child2Strike >=3)
{ Serial.println("Anak 2 Dibumikan!"); } penundaan(3000); } }
if(child3ButtonState != child3PreviousState)
{ if(child3ButtonState == HIGH)//Tombol ditekan { child3Strike ++; Serial.println(String("Anak 3 memiliki: ") + child3Strike + " strike");
if(Child3Strike >=3)
{ Serial.println("Anak 3 Dibumikan!"); } penundaan(3000); } }
if(child4ButtonState != child4PreviousState)
{ if(child4ButtonState == HIGH)//Tombol ditekan { child4Strike ++; Serial.println(String("Anak 4 memiliki: ") + child4Strike + " strike");
jika(child4Strike >=3)
{ Serial.println("Anak 4 Dibumikan!"); } penundaan(3000); } } }
Langkah 4: Tambahkan Buzzer
Sekarang mari kita pastikan bahwa anak-anak Anda tahu bahwa mereka dihukum. Mari tambahkan buzzer. Untuk menghubungkan buzzer, ikuti langkah-langkah mudah ini.
- Tambahkan Buzzer ke papan tempat memotong roti Anda, rencanakan ruang karena layar LCD akan muncul.
- Hubungkan sisi Postive (bel harus memiliki tanda + di sisi postive) ke Pin pilihan Anda. saya melakukan 9.
- Hubungkan sisi lain ke rel ground dari papan tempat memotong roti Anda.
Selanjutnya, ubah kode Anda untuk mematikan bel saat anak di-ground. Ada beberapa cara berbeda untuk mengkodekan buzzer Anda, tetapi saya suka nada (buzzerName, hertz, durasi) karena kesederhanaannya Jadi contohnya adalah nada (buzzer, 4000, 300).
int child1ButtonPin = 13;//Ini adalah pin yang terhubung dengan tombol push kita keint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0;//Membaca status tombol (on/off) 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 bel = 2;
// fungsi pengaturan berjalan sekali ketika Anda menekan reset atau menyalakan papan
void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); pinMode(buzzer, OUTPUT); } // fungsi loop berjalan berulang-ulang selamanya void loop() { //membaca status tombol (on atau off) child1ButtonState = digitalRead(child1ButtonPin);
child2ButtonState = digitalRead(child2ButtonPin);
child3ButtonState = digitalRead(child3ButtonPin);
child4ButtonState = digitalRead(child4ButtonPin);
if(child1ButtonState != child1PreviousState)
{ if(child1ButtonState == HIGH)//Tombol ditekan { child1Strike ++; Serial.println(String("Anak 1 Memiliki: ") + child1Strike + " strike");
if(Child1Strike >=3)
{ Serial.println("Anak 1 Dibumikan!"); nada (bel, 5000, 500); // Mengirim suara 5 hertz selama 5 milidetik
}
penundaan(3000); } } if(child2ButtonState != child2PreviousState) { if(child2ButtonState == HIGH)//Tombol ditekan { child2Strike ++; Serial.println(String("Anak 2 memiliki: ") + child2Strike + " strike");
if(child2Strike >=3)
{ Serial.println("Anak 2 Dibumikan!"); nada (bel, 5000, 500); } penundaan(3000); } }
if(child3ButtonState != child3PreviousState)
{ if(child3ButtonState == HIGH)//Tombol ditekan { child3Strike ++; Serial.println(String("Anak 3 memiliki: ") + child3Strike + " strike");
if(Child3Strike >=3)
{ Serial.println("Anak 3 Dibumikan!"); nada (bel, 5000, 500); } penundaan(3000); } }
if(child4ButtonState != child4PreviousState)
{ if(child4ButtonState == HIGH)//Tombol ditekan { child4Strike ++; Serial.println(String("Anak 4 memiliki: ") + child4Strike + " strike");
jika(child4Strike >=3)
{ Serial.println("Anak 4 Dibumikan!"); nada (bel, 5000, 500); } penundaan(3000); } } }
Langkah 5: Tambahkan Layar LCD
Sekarang memungkinkan layar LCD untuk pembacaan yang jelas dan mudah.
- Pertama, tambahkan potensiometer ke papan tempat memotong roti Anda untuk mengontrol layar lcd. Hati-hati di mana Anda meletakkannya karena Anda mungkin kehabisan ruang sekarang.
- Gunakan kiri depan untuk menghubungkan potensiometer Anda ke rel daya
- Gunakan kanan depan untuk membumikan potensiometer Anda.
- Bagian belakang akan terhubung ke layar lcd.
- Tambahkan layar LCD ke papan tempat memotong roti Anda
- Ground pin layar pertama ke rel grounding
- Pasang pin kedua ke rel daya.
- Pin LCD ketiga masuk ke Pin 8 di Arduino
- Pin LCD keempat masuk ke Pin 7 di Arduino
- Kelima pergi ke Pin 6 di Arduino
- Pin keenam masuk ke pin 5 di Arduino
- Pin 7 hingga 10 pada layar LCD kosong
- Pin 11 masuk ke Pin 5 di Arduino
- Pin 12 menuju ke rel yang diarde
- Pin 13 masuk ke Pin 4 di Arduino
- Pin 14 pergi ke bagian belakang potensiometer
- Pin 15 menuju ke Power rail
- Pin 16 menuju Ground Rail.
Sekarang Anda harus memperbarui kode Anda untuk menggunakan layar lcd. Untuk itu Anda akan menggunakan Liquid Crystal perpustakaan. Hati-hati dengan pernyataan cetak lcd Anda. Ingatlah untuk membersihkan layar saat Anda membutuhkan pesan baru. Juga ingat untuk mengatur kursor ketika Anda ingin menggunakan dua baris.
#termasuk
LiquidCrystal lcd(3, 4, 5, 6, 7, 8); //Menyetel Layar LCD
int child1ButtonPin = 13;//Ini adalah pin yang terhubung dengan push button kita int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0;//Membaca status tombol (on/off) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Status tombol sebelumnya ditekan int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; //Berapa Banyak Pukulan yang dimiliki seorang anak int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int bel = 9; // Buzzer
// fungsi pengaturan berjalan sekali ketika Anda menekan reset atau menyalakan papan
void setup() { Serial.begin(9600); lcd.begin(16, 2); lcd.print("Anak"); lcd.setCursor(0, 1); lcd.print("Pengubah Perilaku"); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); pinMode(buzzer, OUTPUT); } // fungsi loop berjalan berulang-ulang selamanya void loop() { lcd.setCursor(0, 0); //baca status tombol (hidup atau mati) child1ButtonState = digitalRead(child1ButtonPin);
child2ButtonState = digitalRead(child2ButtonPin);
child3ButtonState = digitalRead(child3ButtonPin);
child4ButtonState = digitalRead(child4ButtonPin);
if(child1ButtonState != child1PreviousState)
{ if(child1ButtonState == HIGH)//Tombol ditekan { lcd.clear(); child1Strike ++; Serial.println(String("Anak 1 Memiliki: ") + child1Strike + " strike"); lcd.print("Anak 1 Memiliki:"); lcd.setCursor(0, 1); lcd.print(child1Strike); lcd.print("Teguran!");
if(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); // Mengirim suara 5 hertz selama 5 milidetik
}
penundaan(3000); } } if(child2ButtonState != child2PreviousState) { lcd.clear(); if(child2ButtonState == HIGH)//Tombol ditekan { child2Strike ++; Serial.println(String("Anak 2 memiliki: ") + child2Strike + " strike"); lcd.print("Anak 2 Memiliki:"); lcd.setCursor(0, 1); lcd.print(child2Strike); lcd.print("Teguran!"); if(child2Strike >=3) { Serial.println("Anak 2 Di-ground!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Anak 2 adalah"); lcd.setCursor(0, 1); lcd.print("Dibumikan!"); nada (bel, 5000, 500); } penundaan(3000); } }
if(child3ButtonState != child3PreviousState)
{ lcd.clear(); if(child3ButtonState == HIGH)//Tombol ditekan { child3Strike ++; Serial.println(String("Anak 3 memiliki: ") + child3Strike + " strike"); lcd.print("Anak 3 Memiliki:"); lcd.setCursor(0, 1); lcd.print(child3Strike); lcd.print("Teguran!"); if(Child3Strike >=3) { Serial.println("Anak 3 Di-ground!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Anak 3 adalah"); lcd.setCursor(0, 1); lcd.print("Dibumikan!"); nada (bel, 5000, 500); } penundaan(3000); } }
if(child4ButtonState != child4PreviousState)
{ lcd.clear(); if(child4ButtonState == HIGH)//Tombol ditekan { child4Strike ++; Serial.println(String("Anak 4 memiliki: ") + child4Strike + " strike"); lcd.print("Anak 4 Memiliki:"); 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 (buzzer, 5000, 500); } penundaan(3000); } } } Dan hanya itu, itu saja yang Anda butuhkan untuk membangun Modifer Perilaku Anak Anda sendiri
Direkomendasikan:
Kembali ke Dasar: Menyolder untuk Anak-Anak: 6 Langkah (dengan Gambar)
Kembali ke Dasar: Menyolder untuk Anak-Anak: Baik Anda sedang membuat robot atau bekerja dengan Arduino, bentuk "langsung" elektronik untuk membuat prototipe ide proyek, mengetahui cara menyolder akan berguna. menyolder adalah keterampilan penting yang harus dipelajari jika seseorang benar-benar
Kotak Musik MP3 Anak-anak: 6 Langkah (dengan Gambar)
Kotak Musik MP3 Anak-Anak: Saat mencari beberapa proyek DIY baru di sekitar arduino, saya menemukan beberapa ide bagus tentang pemutar MP3 berbasis RFID untuk Anak-Anak. Dan ada satu kotak mainan profesional yang bagus di pasaran - orang-orang ini berkuasa. Mereka membuat bisnis besar dari ide cerdas mereka. Memeriksa
Eksperimen Biodegradabilitas yang Dapat Anda Lakukan Dengan Anak-Anak!: 8 Langkah
Eksperimen Biodegradabilitas yang Dapat Anda Lakukan Dengan Anak-Anak!: Jelas, air mendidih tidak persis seperti kondisi pengomposan atau proses biodegradasi alami yang lambat. Namun, Anda dapat mensimulasikan (sampai batas tertentu) cara bahan tertentu terurai dibandingkan dengan yang lain ketika energi seperti panas diterapkan
Menyala Jam untuk Anak-Anak - Hijau Berarti Pergi! Red, Stay in BED!!!: 5 Langkah (dengan Gambar)
Menyala Jam untuk Anak-Anak - Hijau Berarti Pergi! Red, Stay in BED!!!: Kami jadi gila tanpa cukup tidur!!! Anak kami yang berusia 2 tahun tidak mengerti bagaimana cara "menunggu tanggal 7" pada jam sebelum keluar dari kamarnya pagi demi pagi. Dia akan bangun lebih awal (maksud saya sekitar pukul 05:27 - "ada jam 7!!!"
Anak-anak Juga Bisa Membuat Cermin Infinity!: 8 Langkah (dengan Gambar)
Anak-Anak Juga Bisa Membuat Cermin Tanpa Batas!: Dream AcadeME adalah organisasi pendidikan alternatif nirlaba. Filosofi kami berfokus pada pembelajaran yang berpusat pada anak yang terhubung dengan STEAM (Sains, Teknologi, Teknik, Seni, dan Matematika), alam, dan konstruktivisme sosial, sebuah pendekatan di mana anak