สารบัญ:

ตัวปรับเปลี่ยนพฤติกรรมเด็ก: 5 ขั้นตอน (พร้อมรูปภาพ)
ตัวปรับเปลี่ยนพฤติกรรมเด็ก: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ตัวปรับเปลี่ยนพฤติกรรมเด็ก: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ตัวปรับเปลี่ยนพฤติกรรมเด็ก: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: เช็กพัฒนาการเด็ก 5 ด้าน ของเด็กแรกเกิด-5ขวบ | พบหมอมหิดล [by Mahidol Channel] 2024, พฤศจิกายน
Anonim
ตัวปรับเปลี่ยนพฤติกรรมเด็ก
ตัวปรับเปลี่ยนพฤติกรรมเด็ก

Child Behavior Modifier จะบันทึกจำนวนครั้งที่บุตรหลานของคุณประสบปัญหา (หรือที่เรียกว่า Strikes) และเมื่อถึงสามครั้ง ออดจะดังขึ้นและหน้าจอ LCD จะแจ้งว่ามีการต่อสายดิน

ขั้นตอนที่ 1: เริ่มอย่างง่าย: เพิ่มปุ่ม

เริ่มอย่างง่าย: เพิ่มปุ่ม
เริ่มอย่างง่าย: เพิ่มปุ่ม

ขั้นตอนแรกในโครงการนี้เป็นเรื่องง่าย เพิ่ม 1 ปุ่ม ในขั้นตอนนี้คุณต้องมี 4 สายชายกับชาย, 1 220 Resisitor และปุ่มกด

  1. เชื่อมต่อ 5V ที่ด้านพลังงานเข้ากับแถวบวกบนเขียงหั่นขนม
  2. เชื่อมต่อ GND กับด้านลบของเขียงหั่นขนม

  3. ใส่ปุ่มกดลงบนเขียงหั่นขนม
  4. ต่อไฟที่แถวบวกกับส่วนล่างซ้ายของปุ่มกด

  5. กราวด์ปุ่มโดยใช้ตัวต้านทานที่ด้านล่างขวาของปุ่มกดไปยังแถวเชิงลบของเขียงหั่นขนม
  6. เชื่อมต่อ #13 ด้านดิจิทัลของ Arduino กับด้านบนขวาของปุ่ม

ยืนยันด้วยรหัสของคุณว่าปุ่มกำลังลงทะเบียน:

int child1ButtonPin = 13;//นี่คือพินที่ปุ่มกดของเราเชื่อมต่อกับ

int child1ButtonState = 0; // อ่านสถานะของปุ่ม (เปิด/ปิด)

int child1Strike = 0; // ลูกตีได้กี่ลูก

// ฟังก์ชั่นการตั้งค่าจะทำงานหนึ่งครั้งเมื่อคุณกดรีเซ็ตหรือเปิดเครื่อง

การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); โหมดพิน (child1ButtonPin, INPUT); } // ฟังก์ชันลูปทำงานซ้ำแล้วซ้ำอีก void loop () {// อ่านสถานะของปุ่ม (เปิดหรือปิด) child1ButtonState = digitalRead (child1ButtonPin); ถ้า (child1ButtonState == สูง) // กดปุ่ม { Serial.println ("สูง"); ล่าช้า (5000); }

ถ้า (child1ButtonState == ต่ำ)

{ Serial.println ("ต่ำ"); ล่าช้า (5000); } }

ขั้นตอนที่ 2: แก้ไขรหัสเพื่อลงทะเบียนการกดปุ่ม

แก้ไขรหัสเพื่อลงทะเบียนการกดปุ่ม
แก้ไขรหัสเพื่อลงทะเบียนการกดปุ่ม
แก้ไขรหัสเพื่อลงทะเบียนการกดปุ่ม
แก้ไขรหัสเพื่อลงทะเบียนการกดปุ่ม

แก้ไขรหัสเพื่อลงทะเบียนกดปุ่ม:

int child1ButtonPin = 13;//นี่คือพิน ปุ่มกดของเราเชื่อมต่อกับ child1ButtonState = 0;// อ่านสถานะของปุ่ม (เปิด/ปิด) int child1PreviousState = 0; // ปุ่มก่อนหน้าระบุ int child1Strike = 0;

// ฟังก์ชั่นการตั้งค่าจะทำงานหนึ่งครั้งเมื่อคุณกดรีเซ็ตหรือเปิดเครื่อง

การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); โหมดพิน (child1ButtonPin, INPUT); } // ฟังก์ชันลูปทำงานซ้ำแล้วซ้ำอีก void loop () {// อ่านสถานะของปุ่ม (เปิดหรือปิด) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState != child1PreviousState) { if (child1ButtonState == HIGH) // กดปุ่ม { child1Strike ++; Serial.println (child1Strike); ล่าช้า (1000); } }

}

ถัดไป แก้ไขรหัสเพื่อให้เด็กได้รับการนัดหยุดงาน 3 ครั้ง หลังจากนั้นพวกเขาจะได้รับข้อความว่าถูกกักบริเวณ:

int child1ButtonPin = 13;//นี่คือพิน ปุ่มกดของเราเชื่อมต่อกับ child1ButtonState = 0;// อ่านสถานะของปุ่ม (เปิด/ปิด) int child1PreviousState = 0; int child1Strike = 0;

// ฟังก์ชั่นการตั้งค่าจะทำงานหนึ่งครั้งเมื่อคุณกดรีเซ็ตหรือเปิดเครื่อง

การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); โหมดพิน (child1ButtonPin, INPUT); } // ฟังก์ชันลูปทำงานซ้ำแล้วซ้ำอีก void loop () {// อ่านสถานะของปุ่ม (เปิดหรือปิด) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState != child1PreviousState) { if (child1ButtonState == HIGH) // กดปุ่ม { child1Strike ++; Serial.println (child1Strike);

ถ้า(child1Strike >=3)

{ Serial.println("ลูก 1 ถูกต่อสายดิน!"); } ล่าช้า (3000); } }

}

Serial Monitor ควรมีลักษณะเหมือนภาพด้านบน

หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณพอใจกับความล่าช้า ล่าช้าเล็กน้อยและมันจะลงทะเบียน 1 ปุ่มกดเป็นมากกว่าหนึ่ง!

ขั้นตอนที่ 3: เพิ่มปุ่มให้มากที่สุดเท่าที่คุณมีลูก

เพิ่มปุ่มให้มากที่สุดเท่าที่คุณมีลูก
เพิ่มปุ่มให้มากที่สุดเท่าที่คุณมีลูก
เพิ่มปุ่มให้มากที่สุดเท่าที่คุณมีลูก
เพิ่มปุ่มให้มากที่สุดเท่าที่คุณมีลูก

ในขั้นตอนนี้ เราเพียงแค่คัดลอกสองสามขั้นตอนสุดท้าย เพิ่มปุ่มให้มากที่สุดเท่าที่คุณทำเด็ก ๆ ในกรณีของฉันฉันเพิ่มสี่ ตรวจสอบให้แน่ใจว่าได้เปลี่ยนรหัสของคุณเป็นพินดิจิทัลที่ต่อปุ่มไว้ ในกรณีของฉัน ฉันใช้พิน 12 ถึง 10 เพื่อเพิ่มปุ่ม ในกรณีที่คุณต้องการเตือนนี่คือขั้นตอนที่ 1:

  1. เชื่อมต่อ 5V ที่ด้านพลังงานเข้ากับแถวบวกบนเขียงหั่นขนม
  2. เชื่อมต่อ GND กับด้านลบของเขียงหั่นขนม

  3. ใส่ปุ่มกดบนเขียงหั่นขนมเชื่อมต่อพลังงานบนแถว postive ไปที่ส่วนล่างซ้ายของปุ่มกด
  4. กราวด์ปุ่มโดยใช้ตัวต้านทานที่ด้านล่างขวาของปุ่มกดไปยังแถวเชิงลบของเขียงหั่นขนม

  5. เชื่อมต่อ (หมายเลขพินของคุณ) ที่ด้านดิจิทัลของ Arduino ไปที่ด้านขวาบนของปุ่ม

คุณจะต้องแก้ไขโค้ดเพื่อจัดการกับปุ่มทั้งหมดของคุณ โปรดทราบว่าหากคุณจำเป็นต้องระมัดระวัง Strings ที่คุณใช้ คุณไม่สามารถเพิ่มเป็นตัวพิมพ์เล็กด้วยกัน เป็นการดีที่สุดที่จะประกาศ 1 เป็นวัตถุสตริง

int child1ButtonPin = 13; // นี่คือพิน ปุ่มกดของเราเชื่อมต่อกับ toint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // อ่านสถานะของปุ่ม (เปิด/ปิด) 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;

// ฟังก์ชั่นการตั้งค่าจะทำงานหนึ่งครั้งเมื่อคุณกดรีเซ็ตหรือเปิดเครื่อง

การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); โหมดพิน (child1ButtonPin, INPUT); โหมดพิน (child2ButtonPin, INPUT); โหมดพิน (child3ButtonPin, INPUT); โหมดพิน (child4ButtonPin, INPUT); } // ฟังก์ชันลูปทำงานซ้ำแล้วซ้ำอีก void loop () {// อ่านสถานะของปุ่ม (เปิดหรือปิด) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

ถ้า (child1ButtonState != child1PreviousState)

{ ถ้า (child1ButtonState == สูง) // กดปุ่ม { child1Strike ++; Serial.println(String("Child 1 Has: ") + child1Strike + " การนัดหยุดงาน");

ถ้า(child1Strike >=3)

{ Serial.println("ลูก 1 ถูกต่อสายดิน!"); } ล่าช้า (3000); } } if (child2ButtonState != child2PreviousState) { if(child2ButtonState == HIGH)// กดปุ่ม { child2Strike ++; Serial.println(String("Child 2 has: ") + child2Strike + " การนัดหยุดงาน");

ถ้า(child2Strike >=3)

{ Serial.println("ลูก 2 ถูกต่อสายดิน!"); } ล่าช้า (3000); } }

ถ้า (child3ButtonState != child3PreviousState)

{ ถ้า (child3ButtonState == สูง) // กดปุ่ม { child3Strike ++; Serial.println(String("Child 3 has: ") + child3Strike + " การนัดหยุดงาน");

ถ้า(child3Strike >=3)

{ Serial.println("ลูก 3 ถูกต่อสายดิน!"); } ล่าช้า (3000); } }

ถ้า (child4ButtonState != child4PreviousState)

{ ถ้า (child4ButtonState == สูง) // กดปุ่ม { child4Strike ++; Serial.println(String("Child 4 has: ") + child4Strike + " การนัดหยุดงาน");

ถ้า(child4Strike >=3)

{ Serial.println("ลูก 4 ถูกต่อสายดิน!"); } ล่าช้า (3000); } } }

ขั้นตอนที่ 4: เพิ่ม Buzzer

เพิ่ม Buzzer
เพิ่ม Buzzer
เพิ่ม Buzzer
เพิ่ม Buzzer

ตอนนี้ ให้ตรวจสอบให้แน่ใจว่าบุตรหลานของคุณรู้ว่าพวกเขามีเหตุผล มาเพิ่มออดกันเถอะ ในการเชื่อมต่อออด ให้ทำตามขั้นตอนง่าย ๆ เหล่านี้

  1. เพิ่ม Buzzer ไปที่เขียงหั่นขนมของคุณ วางแผนสำหรับพื้นที่เนื่องจากหน้าจอ LCD กำลังจะมา
  2. เชื่อมต่อด้านบวก (ออดควรมี + ด้านบวก) กับพินที่คุณเลือก ฉันทำ 9
  3. เชื่อมต่ออีกด้านหนึ่งเข้ากับรางที่มีสายกราวด์ของเขียงหั่นขนมของคุณ

ถัดไป แก้ไขรหัสของคุณเพื่อปิดเสียงเตือนเมื่อเด็กถูกต่อสายดิน มีหลายวิธีในการเขียนโค้ดสำหรับ buzzer ของคุณ แต่ฉันชอบ tone (buzzerName, hertz, duration) เพื่อความง่าย ดังนั้นตัวอย่างนี้จะเป็น tone (buzzer, 4000, 300)

int child1ButtonPin = 13; // นี่คือพิน ปุ่มกดของเราเชื่อมต่อกับ toint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // อ่านสถานะของปุ่ม (เปิด/ปิด) 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 ออด = 2;

// ฟังก์ชั่นการตั้งค่าจะทำงานหนึ่งครั้งเมื่อคุณกดรีเซ็ตหรือเปิดเครื่อง

การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); โหมดพิน (child1ButtonPin, INPUT); โหมดพิน (child2ButtonPin, INPUT); โหมดพิน (child3ButtonPin, INPUT); โหมดพิน (child4ButtonPin, INPUT); pinMode (ออด, เอาต์พุต); } // ฟังก์ชันลูปทำงานซ้ำแล้วซ้ำอีก void loop () {// อ่านสถานะของปุ่ม (เปิดหรือปิด) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

ถ้า (child1ButtonState != child1PreviousState)

{ if(child1ButtonState == HIGH)//ปุ่มถูกกด { child1Strike ++; Serial.println(String("Child 1 Has: ") + child1Strike + " การนัดหยุดงาน");

ถ้า(child1Strike >=3)

{ Serial.println("ลูก 1 ถูกต่อสายดิน!"); โทนเสียง (ออด, 5000, 500); // ส่งเสียง 5 เฮิรตซ์เป็นเวลา 5 มิลลิวินาที

}

ล่าช้า (3000); } } if (child2ButtonState != child2PreviousState) { if(child2ButtonState == HIGH)// กดปุ่ม { child2Strike ++; Serial.println(String("Child 2 has: ") + child2Strike + " การนัดหยุดงาน");

ถ้า(child2Strike >=3)

{ Serial.println("ลูก 2 ถูกต่อสายดิน!"); โทนเสียง (ออด, 5000, 500); } ล่าช้า (3000); } }

ถ้า (child3ButtonState != child3PreviousState)

{ ถ้า (child3ButtonState == สูง) // กดปุ่ม { child3Strike ++; Serial.println(String("Child 3 has: ") + child3Strike + " การนัดหยุดงาน");

ถ้า(child3Strike >=3)

{ Serial.println("ลูก 3 ถูกต่อสายดิน!"); โทนเสียง (ออด, 5000, 500); } ล่าช้า (3000); } }

ถ้า (child4ButtonState != child4PreviousState)

{ ถ้า (child4ButtonState == สูง) // กดปุ่ม { child4Strike ++; Serial.println(String("Child 4 has: ") + child4Strike + " การนัดหยุดงาน");

ถ้า(child4Strike >=3)

{ Serial.println("ลูก 4 ถูกต่อสายดิน!"); โทนเสียง (ออด, 5000, 500); } ล่าช้า (3000); } } }

ขั้นตอนที่ 5: เพิ่มหน้าจอ LCD

Image
Image
เพิ่มหน้าจอ LCD
เพิ่มหน้าจอ LCD

ตอนนี้ให้หน้าจอ LCD สำหรับการอ่านที่ชัดเจนและง่ายดาย

  1. ขั้นแรก ให้เพิ่มโพเทนชิออมิเตอร์ลงในเขียงหั่นขนมของคุณเพื่อควบคุมหน้าจอ LCD ระวังตำแหน่งที่คุณวางไว้เนื่องจากคุณอาจไม่มีที่ว่างแล้ว
  2. ใช้ด้านหน้าซ้ายเพื่อเชื่อมต่อโพเทนชิออมิเตอร์ของคุณกับรางไฟฟ้า
  3. ใช้ด้านหน้าขวาเพื่อกราวด์โพเทนชิออมิเตอร์ของคุณ
  4. ด้านหลังจะเชื่อมต่อกับหน้าจอ LCD
  5. เพิ่มหน้าจอ LCD ลงในเขียงหั่นขนมของคุณ
  6. กราวด์พินหน้าจอแรกกับรางกราวด์
  7. ต่อพินที่สองเข้ากับรางไฟ
  8. ขา LCD ตัวที่สามไปที่ Pin 8 บน Arduino
  9. ขา LCD ที่สี่ไปที่ Pin 7 บน Arduino
  10. ที่ห้าไปที่ Pin 6 บน Arduino
  11. พินที่หกไปที่พิน 5 บน Arduino
  12. หมุด 7 ถึง 10 บนหน้าจอ LCD ว่างเปล่า
  13. พิน 11 ไปที่พิน 5 บน Arduino
  14. พิน 12 ไปที่รางกราวด์
  15. พิน 13 ไปที่พิน 4 บน Arduino
  16. พิน 14 ไปที่ด้านหลังของโพเทนชิออมิเตอร์
  17. พิน 15 ไปที่รางไฟฟ้า
  18. Pin 16 ไปที่ Ground Rail

ตอนนี้คุณจะต้องอัปเดตรหัสของคุณเพื่อใช้หน้าจอ LCD เพื่อที่คุณจะใช้ libary Liquid Crystal ระวังข้อความสั่งพิมพ์ LCD ของคุณ อย่าลืมล้างหน้าจอเมื่อคุณต้องการข้อความใหม่ อย่าลืมตั้งเคอร์เซอร์เมื่อคุณต้องการใช้สองบรรทัด

#รวม

LiquidCrystal LCD (3, 4, 5, 6, 7, 8); //ตั้งค่าหน้าจอ LCD

int child1ButtonPin = 13; // นี่คือพินที่ปุ่มกดของเราเชื่อมต่อกับ int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // อ่านสถานะของปุ่ม (เปิด/ปิด) 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 ออด = 9; //เสียงออด

// ฟังก์ชั่นการตั้งค่าจะทำงานหนึ่งครั้งเมื่อคุณกดรีเซ็ตหรือเปิดเครื่อง

การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); lcd.begin(16, 2); lcd.print("เด็ก"); lcd.setCursor(0, 1); lcd.print("ตัวดัดแปลงพฤติกรรม"); โหมดพิน (child1ButtonPin, INPUT); โหมดพิน (child2ButtonPin, INPUT); โหมดพิน (child3ButtonPin, INPUT); โหมดพิน (child4ButtonPin, INPUT); pinMode (ออด, เอาต์พุต); } // ฟังก์ชันลูปทำงานซ้ำแล้วซ้ำอีกตลอดไป void loop() { lcd.setCursor(0, 0); // อ่านสถานะของปุ่ม (เปิดหรือปิด) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

ถ้า (child1ButtonState != child1PreviousState)

{ ถ้า (child1ButtonState == สูง) // กดปุ่ม { lcd.clear (); child1Strike ++; Serial.println(String("Child 1 Has: ") + child1Strike + " การนัดหยุดงาน"); lcd.print("ลูก 1 มี:"); lcd.setCursor(0, 1); lcd.print(child1Strike); lcd.print(" สไตรค์!");

ถ้า(child1Strike >=3)

{ Serial.println("ลูก 1 ถูกต่อสายดิน!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("ลูก 1 คือ"); lcd.setCursor(0, 1); lcd.print("ต่อสายดิน!");

โทนเสียง (ออด, 5000, 500); // ส่งเสียง 5 เฮิรตซ์เป็นเวลา 5 มิลลิวินาที

}

ล่าช้า (3000); } } if (child2ButtonState != child2PreviousState) { lcd.clear (); ถ้า (child2ButtonState == สูง) // กดปุ่ม { child2Strike ++; Serial.println(String("Child 2 has: ") + child2Strike + " การนัดหยุดงาน"); lcd.print("ลูก 2 มี:"); lcd.setCursor(0, 1); lcd.print (child2Strike); lcd.print(" สไตรค์!"); if(child2Strike >=3) { Serial.println("ลูก 2 ถูกต่อสายดิน!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("ลูก 2 คือ"); lcd.setCursor(0, 1); lcd.print("ต่อสายดิน!"); โทนเสียง (ออด, 5000, 500); } ล่าช้า (3000); } }

ถ้า (child3ButtonState != child3PreviousState)

{ จอแอลซีดีชัดเจน (); ถ้า (child3ButtonState == สูง) // กดปุ่ม { child3Strike ++; Serial.println(String("Child 3 has: ") + child3Strike + " การนัดหยุดงาน"); lcd.print("ลูก 3 มี:"); lcd.setCursor(0, 1); lcd.print (child3Strike); lcd.print(" สไตรค์!"); if(child3Strike >=3) { Serial.println("ลูก 3 ถูกต่อสายดิน!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("ลูก 3 คือ"); lcd.setCursor(0, 1); lcd.print("ต่อสายดิน!"); โทนเสียง (ออด, 5000, 500); } ล่าช้า (3000); } }

ถ้า (child4ButtonState != child4PreviousState)

{ จอแอลซีดีชัดเจน (); ถ้า (child4ButtonState == สูง) // กดปุ่ม { child4Strike ++; Serial.println(String("Child 4 has: ") + child4Strike + " การนัดหยุดงาน"); lcd.print("ลูก 4 มี:"); lcd.setCursor(0, 1); lcd.print (child4Strike); lcd.print(" สไตรค์!");

ถ้า(child4Strike >=3)

{ Serial.println("ลูก 4 ถูกต่อสายดิน!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("ลูก 4 คือ"); lcd.setCursor(0, 1); lcd.print("ต่อสายดิน!"); โทนเสียง (ออด, 5000, 500); } ล่าช้า (3000); } } } และนั่นคือทั้งหมดที่คุณต้องการเพื่อสร้าง Modifer พฤติกรรมเด็กของคุณเอง

แนะนำ: