
สวัสดีทุกท่านนะครับ ใน Ep นี้เราจะมาพบกับตัวอย่างการใช้งาน Counter Sensor หรือ เซนเซอร์นับ ว่าใช้งานยังไงกันนะครับ
Counter Sensor เป็นเซนเซอร์นับจำนวน ให้สัญญาณ Digital และ Analog ออกมา เมื่อมีวัตถุมาบังที่ร่องตรวจนับ (มีขนาดกว้าง 5 มิลลิเมตร) พร้อมหลอดไฟ LED แสดงการทำงาน สามารถนำไปนับจำนวนเหรีญหรือวัดความเร็วรอบมอเตอร์ได้แต่ใน Ep นี้เราจะมาทดสอบโดยการใช้นับเหรียญกัน เอาหล่ะไปดูอุปกรณ์ที่ต้องใช้กันก่อนครับ

1. บอร์ด Arduino Uno R3 หรือ Arduino Mega 2560 R3 (สาย USB ด้วยนะอย่าลืม)
3. สายจั๊ม ผู้-เมีย
4. Counter Sensor เซนเซอร์นับ

Counter Sensor จะสามารถวัดค่าได้ทั้งในแบบ Analog และ Digital แต่ในการทดลองนี้เราจะใช้ค่าแค่เพียง Digital โดยทำการเชื่อมต่อ Counter Sensor เข้ากับ Arduino โดยให้ขา D0 เข้าที่ Pin 9 ของ Arduino ตามรูป
| Counter Sensor | Arduino | |
| D0 | >> | 9 |
| VCC | >> | 5V |
| GND | >> | GND |
หลักการทำงาน
จะเห็นได้ว่าเราสามารถนำ Counter Sensor ไปใช้ในการนับเหรียญและหาผลรวมของเงินได้ ซึ่งสามารถนำไปใช้สร้างเครื่องนับเหรียญได้ ไม่เพียงเท่านั้นยังสามารถนำไปประยุกต์ใช้งานในการตรวจจับและนำจับนวนของวัตถุต่างๆได้อีกมากมาย แล้วพบกันใหม่ Ep หน้าครับ
โค๊ดโปรแกรม

/*
* Coding By : Arduinos Pro
* Sample Coding : Counter Sensor
*/
int Count = 0; //สร้างตัวแปรชื่อ Count ชนิด int เพื่อเก็บจำนวนเหรียญที่นับได้
int CounterSensor_Pin = 9; //สร้างตัวชื่อ CounterSensor_Pin ชนิด int เพื่อเก็บตำแหน่งขอขาที่รับข้อมูลจาก Counter Sensor
void setup() {
Serial.begin(9600); //กำหนดช่องความถี่ในการเชื่อมต่อกับ Serial เพื่อดูค่าต่างๆที่รับได้
pinMode(CounterSensor_Pin, INPUT); //กำหนดโหมดของขาให้กับ CounterSensor_Pin ว่าเป็น INPUT
}
void loop() {
int sensor_Value = digitalRead(CounterSensor_Pin); //สร้างตัวแปรชื่อ sensor_Value ชนิด int ให้เก็บค่าดิจิตอลที่รับได้จาก CounterSensor_Pin
if (sensor_Value == HIGH) { //ถ้าหหากค่าใน sensor_Va มีค่าเท่ากับ HIG
Count ++; //ให้เพิ่มค่าใน Count ขึ้น 1 ค่า หรือ Count = Count + 1
Serial.print("Count = "); //แสดงค่าออกทาง Serial Monitor ว่า "Count = "
Serial.println(Count); //แสดงค่าใน Count จากนั้นขึ้นบรรทัดใหม่
delay(500); //หน่วงเวลา 500 มิลลิวินาที
}
}
การทดลอง
โปรแกรมจะทำการรับค่า Digital จากนั้นจะทำเงื่อนไขเพืื่อให้เกิดการนับขึ้นของเหรียญ จากนั้นจะทดสอบโดยการเพิ่มโปรแกรมในส่วนของการหาค่าจำนวนเงินที่นับได้จริง ยกตัวอย่างเช่น นับเหรียญ 5 ได้ 5 เหรียญ ซึ่งจะได้จำนวนเงิน 25 บาท เราจะทดลองให้โปรแกรมแสดงจำนวนเหรียญและจำนวนเงินรวมออกมาด้วย เอาหล่ะไปเบิ่งกันหมู่เฮา


การทดลองที่ 1 ลดลองนำเหรียญบาทผ่านร่องตรวจจับของ Counter Sensor จำนวน 10 ครั้ง ผลปรากฏว่าสามารถนับเหรียญได้จำนวน 10 เหรียญ (ว่าแต่ทำไมเล็บยาวจุง)

/*
* Coding By : Arduinos Pro
* Sample Coding : Counter Sensor
*/
int Count = 0; //สร้างตัวแปรชื่อ Count ชนิด int เพื่อเก็บจำนวนเหรียญที่นับได้
int Sum_Bath = 0; //สร้างตัวแปรชื่อ Sum_Bath ชนิด int เพื่อเก็บจำนวนเงินรวมของเหรียญที่นับได้
int CounterSensor_Pin = 9; //สร้างตัวชื่อ CounterSensor_Pin ชนิด int เพื่อเก็บตำแหน่งขอขาที่รับข้อมูลจาก Counter Sensor
void setup() {
Serial.begin(9600); //กำหนดช่องความถี่ในการเชื่อมต่อกับ Serial เพื่อดูค่าต่างๆที่รับได้
pinMode(INPUT, CounterSensor_Pin); //กำหนดโหมดของขาให้กับ CounterSensor_Pin ว่าเป็น INPUT
}
void loop() {
int sensor_Value = digitalRead(CounterSensor_Pin); //สร้างตัวแปรชื่อ sensor_Value ชนิด int ให้เก็บค่าดิจิตอลที่รับได้จาก CounterSensor_Pin
if (sensor_Value == HIGH) { //ถ้าหหากค่าใน sensor_Va มีค่าเท่ากับ HIG
Count ++; //ให้เพิ่มค่าใน Count ขึ้น 1 ค่า หรือ Count = Count + 1
Serial.print("Count 5 Bath = "); //แสดงค่าออกทาง Serial Monitor ว่า "Count = "
Serial.print(Count); //แสดงค่าใน Count
Serial.println(" Coin"); //แสดงค่าออกทาง Serial Monitor ว่า " Coin" จากนั้นขึ้นบรรทัดใหม่
Sum_Bath = Count * 5; //ให้ตัวแปร Sum_Bath เก็บจำนวนเงินรวมโดยมาจากสูตร "จำนวนเงินรวม = จำนวนเหรียญ x ชนิดของเหรียญ"
Serial.print("Sum Bath = "); //แสดงค่าออกทาง Serial Monitor ว่า "Sum Bath = "
Serial.print(Sum_Bath); //แสดงค่าใน Sum_Bath
Serial.println(" Bath"); //แสดงค่าออกทาง Serial Monitor ว่า " Bath" จากนั้นขึ้นบรรทัดใหม่
delay(500); //หน่วงเวลา 500 มิลลิวินาที
}
}


การทดลองที่ 2 ทดสอบโดยการเพิ่มโปรแกรมให้หาผลรวมของจำนวนเงินโดยมาจาก "จำนวนเงินรวม = จำนวนเหรียญ x ชนิดของเหรียญ" ทดลองนำเหรียญห้าบาทผ่านร่องตรวจจับของ Counter Sensor จำนวน 5 ครั้ง ผลปรากฏว่าสามารถนับเหรียญได้จำนวน 5 เหรียญ และได้จำนวนเงิน 25 บาท
สรุป
จะเห็นได้ว่าเราสามารถนำ Counter Sensor ไปใช้ในการนับเหรียญและหาผลรวมของเงินได้ ซึ่งสามารถนำไปใช้สร้างเครื่องนับเหรียญได้ ไม่เพียงเท่านั้นยังสามารถนำไปประยุกต์ใช้งานในการตรวจจับและนำจับนวนของวัตถุต่างๆได้อีกมากมาย แล้วพบกันใหม่ Ep หน้าครับ
Arduino.MakerZone