วันอาทิตย์ที่ 16 กันยายน พ.ศ. 2561

โปรเจค งานที่ 19 เครื่องตรวจจับสีโดยใช้ Arduino Uno

เครื่องตรวจจับสีโดยใช้ Arduino
เครื่องตรวจจับสีโดยใช้ Arduino Uno

ในโครงการนี้เราจะไปติดต่อเซ็นเซอร์สี TCS3200 กับ Arduino UNO TCS3200 เป็นเซ็นเซอร์สีซึ่งสามารถตรวจจับสีได้หลายสีด้วยการเขียนโปรแกรมที่ถูกต้อง TCS3200 ประกอบด้วยอาร์เรย์ RGB (สีแดงสีเขียว) ดังที่แสดงในภาพในระดับจุลภาคหนึ่งสามารถดูกล่องสี่เหลี่ยมภายในตาบนเซ็นเซอร์ กล่องสี่เหลี่ยมเหล่านี้เป็นอาร์เรย์ของเมทริกซ์ RGB กล่องแต่ละกล่องมีเซนเซอร์สามตัวหนึ่งชิ้นสำหรับตรวจจับความเข้มของแสงสีแดงหนึ่งสำหรับตรวจจับความเข้มแสงสีเขียวและเป็นครั้งสุดท้ายสำหรับการตรวจจับความเข้มของแสง BLUE
TCS230 สี Pinout Sensor

อาร์เรย์ของเซนเซอร์แต่ละตัวในอาร์เรย์ทั้งสามนี้จะถูกเลือกแยกต่างหากตามความต้องการ ดังนั้นมันจึงเป็นที่รู้จักกันเป็น  เซ็นเซอร์ที่สามารถตั้งโปรแกรม โมดูลสามารถให้ความสำคัญกับความรู้สึกเฉพาะสีและปล่อยให้คนอื่น ๆ มีตัวกรองสำหรับวัตถุประสงค์ในการเลือกนั้น มีโหมดที่ไม่อยู่ในโหมดกรอง โดยไม่มีตัวกรองสัญญาณเซ็นเซอร์ตรวจจับแสงสีขาว

องค์ประกอบที่จำเป็น

ฮาร์ดแวร์: ARDUINO UNO, แหล่งจ่ายไฟ (5v), LED, JHD_162ALCD (16 * 2LCD), เซ็นเซอร์สี TCS3200
ซอฟต์แวร์: ARDUINO IDE (ARDUINO nightly)

แผนภาพวงจรและคำอธิบายการทำงาน

ในจอ LCD ขนาด 16x2 มีหมุด 16 ตัวหากมีแสงด้านหลังหากไม่มีแสงด้านหลังจะมีหมุด 14 ตัว หนึ่งสามารถใช้พลังงานหรือปล่อยให้หมุดแสงกลับ ตอนนี้ใน 14 ขามี 8 หมุดข้อมูล (7-14 หรือ D0-D7) 2 หมุดแหล่งจ่ายไฟ (1 & 2 หรือ VSS & VDD หรือ GND & + 5V) 3 พินสำหรับการควบคุมความคมชัด (วีควบคุมวิธีการหนาตัวละครที่ควรจะเป็น แสดง) และ 3 หมุดควบคุม (RS & RW & E)

ในวงจรคุณสามารถสังเกตฉันมีเพียงสองหมุดควบคุม บิตตรงกันข้ามและอ่าน / เขียนไม่ได้ใช้บ่อยเพื่อให้พวกเขาสามารถ shorted กับพื้น ทำให้จอ LCD มีความคมชัดสูงสุดและโหมดการอ่าน เราจำเป็นต้องควบคุมการเปิดใช้งานและหมุด RS เพื่อส่งอักขระและข้อมูลตามลำดับ [ยังตรวจสอบ: LCD interfacing กับ Arduino Uno ]
การเชื่อมต่อที่ทำกับ LCD จะได้รับดังนี้:
PIN1 หรือ VSS ไปที่พื้น
PIN2 หรือ VDD หรือ VCC ถึง + 5V power
PIN3 หรือ VEE กับพื้น (ให้ความคมชัดสูงสุดสำหรับผู้เริ่มต้นใช้งาน)
PIN4 หรือ RS (เลือกลงทะเบียน) เป็น PIN8 ของ ARDUINO UNO
PIN5 หรือ RW (อ่าน / เขียน) ไปที่พื้น (ทำให้ LCD ในโหมดอ่านช่วยลดการสื่อสารสำหรับผู้ใช้)
PIN6 หรือ E (เปิดใช้งาน) toPIN9 ของ 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 pin 4
S3 ถึง UNO พิน 5
ออกไปที่ UNO pin 10
วงจรเซนเซอร์สี Arduino Based
สีที่ต้องการจะตรวจจับโดยเซ็นเซอร์สีจะถูกเลือกโดยหมุดสองดวง S2 และ S3 ด้วยการควบคุมตรรกะสองขานี้เราสามารถบอกได้ว่าความเข้มแสงสีจะวัดได้อย่างไร
สมมติว่าเราต้องรู้สึกถึงความเข้มของสีแดงที่เราต้องตั้งค่าทั้งสองหมุดให้ต่ำ เมื่อเซ็นเซอร์ตรวจจับความเข้มและส่งค่าไปยังระบบควบคุมภายในโมดูลแล้ว
S2
S3
ประเภท Photodiode
L
L
สีแดง
L
H
สีน้ำเงิน
H
L
ล้าง (ไม่มีตัวกรอง)
H
H
สีเขียว
ระบบควบคุมภายในโมดูลดังแสดงในรูป ความเข้มแสงที่วัดได้จากอาร์เรย์จะถูกส่งไปยังตัวแปลงกระแสไฟฟ้ากระแสตรง สิ่งที่ได้คือทำให้คลื่นสแควร์มีความถี่สัมพันธ์กับกระแสที่ส่งโดย ARRAY
โฟโต้ไดโอด
ดังนั้นเราจึงมีระบบที่ส่งคลื่นสแควร์ที่มีความถี่ขึ้นอยู่กับความเข้มแสงที่เลือกโดย S2 และ S3

ความถี่สัญญาณที่ส่งมาจากโมดูลสามารถปรับได้ขึ้นอยู่กับการใช้งาน เราสามารถเปลี่ยนความถี่สัญญาณเอาท์พุทได้
S0
S1
การปรับความถี่เอาต์พุต (f 0 )
L
L
อำนาจลง
L
H
2%
H
L
20%
H
H
100%
การปรับความถี่จะกระทำโดยสองบิต S0 และ S1 เพื่อความสะดวกเราจะ จำกัด การปรับความถี่เป็น 20% นี้ทำโดยการตั้งค่า S0 ไปสูงและ S1 ถึง LOW คุณลักษณะนี้มีประโยชน์เมื่อเราใช้โมดูลในระบบที่มีนาฬิกาต่ำ

ความไวของอาร์เรย์ต่อสีจะแสดงไว้ในรูปด้านล่าง
ความไวของอาร์เรย์
แม้ว่าสีที่แตกต่างกันมีความไวที่แตกต่างกันสำหรับการใช้งานปกติจะไม่สร้างความแตกต่างมาก
UNO ส่งสัญญาณไปยังโมดูลเพื่อตรวจจับสีและข้อมูลที่ได้รับจากโมดูลจะปรากฏในจอ LCD 16 * 2 ที่เชื่อมต่ออยู่
UNO ตรวจจับความเข้มของสีสามสีแยกกันและแสดงบนจอ LCD
Uno สามารถตรวจจับระยะเวลาชีพจรของสัญญาณโดยที่เราจะได้รับความถี่ของคลื่นสี่เหลี่ยมที่ส่งมาจากโมดูล ด้วยความถี่ในมือเราสามารถจับคู่สีกับเซ็นเซอร์ได้
  1. ความถี่ Int = ชีพจรใน (10, ต่ำ);

โดยเงื่อนไขดังกล่าวข้างต้น UNO อ่านระยะเวลาชีพจรเมื่อวันที่ 10 THขา UNO และเก็บค่าใน“ความถี่” จำนวนเต็ม
พวกเราจะไปทำเช่นนี้สำหรับทั้งสามสีสำหรับการรับรู้สี ความแรงของสีทั้งสามสีแสดงด้วยความถี่ในจอ LCD ขนาด 16x2
รหัส
int OutPut = 10; // การตั้งชื่อ pin10 ของ uno เป็นเอาท์พุท
ความถี่ int unsigned = 0;

#include <LiquidCrystal.h>
// เริ่มต้นไลบรารีด้วยหมายเลขของหมุดอินเตอร์เฟส
LiquidCrystal lcd (8, 9, 7, 11, 12, 13); // RS, EN, D4, D5, D6, D7

การตั้งค่าเป็นโมฆะ ()
{
                // ตั้งค่าจำนวนคอลัมน์และแถวของแอลซีดี
                lcd.begin (16, 2);

                pinMode (2, OUTPUT);
                pinMode (3, OUTPUT); // PINS 2, 3,4,5 เป็น OUTPUT
                pinMode (4, เอาท์พุท);
                pinMode (5, เอาท์พุท);
                pinMode (10, INPUT); // PIN 10 เป็นอินพุต

                digitalWrite (2, HIGH);
                digitalWrite (3, LOW); // การตั้งค่าความถี่เป็น 20%
}
void loop ()
{
                lcd.print ("R ="); // ชื่อการพิมพ์
                digitalWrite (4, LOW);
                digitalWrite (5, LOW); // การตั้งค่าสำหรับเซ็นเซอร์สีแดง
                ความถี่ = ชีพจร (OutPut, LOW); // อ่านความถี่
                lcd.print (ความถี่) // พิมพ์สีแดง
                lcd.print ("");
                lcd.setCursor (7, 0); // ย้ายนักวิ่งไปยังตำแหน่งที่ 7
                ล่าช้า (500);
               
               lcd.print ("B ="); // ชื่อการพิมพ์
                digitalWrite (4, LOW);
                digitalWrite (5, HIGH); // การตั้งค่าเซ็นเซอร์สี BLUE
                ความถี่ = ชีพจร (OutPut, LOW); // อ่านความถี่
                lcd.print (ความถี่) // พิมพ์ความถี่สี BLUE
                lcd.print ("");
                lcd.setCursor (0, 1);
                ล่าช้า (500);
               
               lcd.print ("G ="); // ชื่อการพิมพ์
                digitalWrite (4, HIGH);
                digitalWrite (5, HIGH); // การตั้งค่าสำหรับเซ็นเซอร์สี GREEN
                ความถี่ = ชีพจร (OutPut, LOW); // อ่านความถี่
                lcd.print (ความถี่) // พิมพ์ความถี่สีเขียว
                lcd.print ("");
                lcd.setCursor (0, 0);
                ล่าช้า (500);        
}              
วีดีโอ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

งานครั้งที่ 5 ในสถานที่ฝึกงานของ นศ ใช้ระบบควบคุณภาพอย่างไร

มาตรฐาน ISO 9001 ISO 9001 เป็นมาตรฐานสากลที่องค์กรธุรกิจทั่วโลกให้ความสำคัญ เพื่อความเป็นเลิศทางด้านคุณภาพ และความมีประสิทธิภาพของการด...