ในโครงการนี้เราจะไปติดต่อเซ็นเซอร์สี TCS3200 กับ Arduino UNO TCS3200 เป็นเซ็นเซอร์สีที่สามารถตรวจจับสีจำนวนเท่าใดก็ได้ด้วยการตั้งโปรแกรมที่เหมาะสม TCS3200 มีอาร์เรย์ RGB (แดงเขียวน้ำเงิน) ดังที่แสดงในภาพระดับกล้องจุลทรรศน์เราสามารถมองเห็นกล่องสี่เหลี่ยมที่อยู่ในเซนเซอร์ได้ กล่องสี่เหลี่ยมเหล่านี้คืออาร์เรย์ของเมทริกซ์ RGB กล่องเหล่านี้แต่ละกล่องมีเซ็นเซอร์สามตัวหนึ่งตัวใช้สำหรับตรวจจับความเข้มของแสงสีแดงหนึ่งสำหรับตรวจจับความเข้มของแสงสีเขียวและสุดท้ายสำหรับการตรวจจับความเข้มของแสงสีน้ำเงิน
อาร์เรย์เซ็นเซอร์แต่ละอาร์เรย์ในอาร์เรย์ทั้งสามนี้จะถูกเลือกแยกกันตามความต้องการ ดังนั้นจึงเรียกว่า เซ็นเซอร์ที่ตั้งโปรแกรมได้ โมดูลนี้สามารถแสดงให้เห็นถึงสีที่เฉพาะเจาะจงและปล่อยให้สีอื่น ๆ ประกอบด้วยตัวกรองสำหรับวัตถุประสงค์การเลือกนั้น มีโหมดสี่โหมดที่ไม่ใช่โหมดตัวกรอง เมื่อไม่มีโหมดฟิลเตอร์เซ็นเซอร์จะตรวจจับแสงสีขาว
ส่วนประกอบที่จำเป็น
ฮาร์ดแวร์: ARDUINO UNO, แหล่งจ่ายไฟ (5v), LED, JHD_162ALCD (16 * 2LCD), เซ็นเซอร์สี TCS3200
ซอฟต์แวร์: ARDUINO IDE (ARDUINO ทุกคืน)
แผนภาพวงจรและคำอธิบายการทำงาน
ในจอ LCD 16x2 จะมีหมุดทั้งหมด 16 พินหากมีไฟด้านหลังหากไม่มีไฟส่องหลังจะมี 14 พิน หนึ่งสามารถจ่ายไฟหรือปล่อยหมุดไฟด้านหลัง ตอนนี้ใน 14 ขามี 8 ข้อมูลหมุด (7-14 หรือ D0-D7) 2 หมุดแหล่งจ่ายไฟ (1 & 2 หรือ VSS & VDD หรือ GND & + 5V) 3 ถพินสำหรับการควบคุมความคมชัด (วีควบคุมวิธีการหนาตัวละครที่ควรจะเป็น แสดง) และ 3 พินควบคุม (RS & RW & E)
ในวงจรคุณสามารถสังเกตได้ว่าฉันใช้พินควบคุมเพียงสองอัน ไม่ได้ใช้บิตคอนทราสต์และ READ / WRITE บ่อยนักดังนั้นจึงสามารถย่อลงมาที่พื้นได้ ทำให้ LCD มีคอนทราสต์สูงสุดและโหมดอ่าน เราต้องควบคุมพิน ENABLE และ RS เพื่อส่งอักขระและข้อมูลตามนั้น
การเชื่อมต่อที่ทำกับ LCD มีดังต่อไปนี้:
PIN1 หรือ VSS ลงกราวด์
PIN2 หรือ VDD หรือ VCC ถึง + 5v
PIN3 หรือ VEE กับพื้น (ให้ความเปรียบต่างสูงสุดที่ดีที่สุดสำหรับผู้เริ่มต้น)
PIN4 หรือ RS (Register Selection) เป็น PIN8 ของ ARDUINO UNO
PIN5 หรือ RW (อ่าน / เขียน) ลงกราวด์ (ทำให้ LCD อยู่ในโหมดอ่านช่วยให้การสื่อสารสำหรับผู้ใช้ง่ายขึ้น)
PIN6 หรือ E (เปิดใช้งาน) ถึง PIN9 ของ ARDUINO UNO
PIN11 หรือ D4 ถึง PIN7 ของ ARDUINO UNO
PIN12 หรือ D5 ถึง PIN11 ของ ARDUINO UNO
PIN13 หรือ D6 ถึง PIN12 ของ ARDUINO UNO
PIN14 หรือ D7 ถึง PIN13 ของ ARDUINO UNO
การเชื่อมต่อที่ทำกับเซ็นเซอร์สีมีดังต่อไปนี้:
VDD ถึง + 5V
GND เป็น GROUND
OE (เปิดใช้งานเอาต์พุต) เป็น GND
S0 ถึง UNO พิน 2
S1 ถึง UNO พิน 3
S2 ถึง UNO พิน 4
S3 ถึง UNO พิน 5
ขาออกไปยัง UNO 10
สีที่เซ็นเซอร์สีต้องตรวจจับจะถูกเลือกโดยสองพิน S2 และ S3 ด้วยการควบคุมลอจิกสองพินนี้เราสามารถบอกเซ็นเซอร์ได้ว่าจะวัดความเข้มของแสงสีใด
สมมติว่าเราต้องรู้สึกถึงความเข้มของสีแดงเราต้องตั้งค่าพินทั้งสองเป็น LOW เมื่อเสร็จแล้วเซ็นเซอร์จะตรวจจับความเข้มและส่งค่าไปยังระบบควบคุมภายในโมดูล
S2 |
S3 |
ประเภทโฟโตไดโอด |
ล |
ล |
แดง |
ล |
ซ |
สีน้ำเงิน |
ซ |
ล |
ล้าง (ไม่มีตัวกรอง) |
ซ |
ซ |
เขียว |
ระบบควบคุมภายในโมดูลดังแสดงในรูป ความเข้มแสงที่วัดโดยอาร์เรย์จะถูกส่งไปยังตัวแปลงกระแสเป็นความถี่ มันคืออะไรมันทำให้เกิดคลื่นสี่เหลี่ยมที่มีความถี่สัมพันธ์กับกระแสที่ ARRAY ส่งมา
ดังนั้นเราจึงมีระบบที่ส่งคลื่นสี่เหลี่ยมออกมาซึ่งมีความถี่ขึ้นอยู่กับความเข้มแสงของสีซึ่ง S2 และ S3 เลือก
ความถี่สัญญาณที่ส่งโดยโมดูลสามารถปรับได้ขึ้นอยู่กับการใช้งาน เราสามารถเปลี่ยนแบนด์วิดท์ความถี่สัญญาณเอาต์พุต
S0 |
S1 |
มาตราส่วนความถี่เอาต์พุต (f 0) |
ล |
ล |
อำนาจลง |
ล |
ซ |
2% |
ซ |
ล |
20% |
ซ |
ซ |
100% |
การสเกลความถี่ทำได้โดยสองบิต S0 และ S1 เพื่อความสะดวกเราจะ จำกัด การปรับความถี่ไว้ที่ 20% ทำได้โดยการตั้งค่า S0 ให้สูงและ S1 เป็น LOW คุณสมบัตินี้มีประโยชน์เมื่อเราใช้โมดูลบนระบบที่มีนาฬิกาต่ำ
ความไวต่อสีของ Array แสดงไว้ในรูปด้านล่าง
แม้ว่าสีที่แตกต่างกันจะมีความไวแสงที่แตกต่างกัน แต่สำหรับการใช้งานปกติจะไม่สร้างความแตกต่างมากนัก
UNO ที่นี่จะส่งสัญญาณไปยังโมดูลเพื่อตรวจจับสีและข้อมูลที่โมดูลได้รับจะแสดงในจอ LCD 16 * 2 ที่เชื่อมต่ออยู่
UNO ตรวจจับความเข้มของสีสามสีแยกกันและแสดงบน LCD
Uno สามารถตรวจจับระยะเวลาพัลส์ของสัญญาณซึ่งเราสามารถรับความถี่ของคลื่นสี่เหลี่ยมที่ส่งโดยโมดูล ด้วยความถี่ที่อยู่ในมือเราสามารถจับคู่กับสีบนเซ็นเซอร์ได้
|
โดยเงื่อนไขข้างต้น UNO อ่านระยะเวลาชีพจรเมื่อวันที่ 10 THขา UNO และเก็บค่าใน“ความถี่” จำนวนเต็ม
พวกเราจะไปทำเช่นนี้สำหรับทั้งสามสีสำหรับการรับรู้สีความเข้มของสีทั้งสามแสดงโดยความถี่บนจอ LCD 16x2