ประเภท: วงจรไมโครคอนโทรลเลอร์
จำนวนการดู: 32016
ความเห็นเกี่ยวกับบทความ: 0
เซ็นเซอร์ยอดนิยมสำหรับ Arduino
เซ็นเซอร์ถูกใช้ในวงจรและโครงการที่หลากหลาย ระบบอัตโนมัติไม่สามารถทำได้หากไม่มีพวกเขา เราสนใจโครงการเหล่านี้เนื่องจากมีการสร้างโครงการเพื่อลดความซับซ้อนของการออกแบบและความนิยมของอุปกรณ์อิเล็กทรอนิกส์ Arduino. นี่เป็นบอร์ดสำเร็จรูปที่มีไมโครคอนโทรลเลอร์และทุกสิ่งที่คุณต้องใช้กับมันและเขียนโปรแกรม ในบทความนี้เราจะพิจารณาเซ็นเซอร์สำหรับ Arduino แต่พวกเขายังสามารถใช้กับไมโครคอนโทรลเลอร์อื่น ๆ

เซ็นเซอร์คืออะไร?
เซ็นเซอร์คือตาหูและประสาทสัมผัสอื่น ๆ ไมโครคอนโทรลเลอร์ หรืออุปกรณ์ควบคุมอื่น ๆ พวกเขามีความโดดเด่นด้วยลักษณะของสัญญาณและตามวัตถุประสงค์
โดยธรรมชาติของสัญญาณแบ่งออกเป็น:
-
อนาล็อก;
-
ดิจิตอล
และเพื่อวัตถุประสงค์เซ็นเซอร์มีไว้สำหรับการวัด:
-
อุณหภูมิ;
-
ความดัน
-
ความชื้น
-
ความเป็นกรด;
-
แสง;
-
ระดับน้ำหรือสารอื่น ๆ
-
การสั่นสะเทือน;
-
และส่วนประกอบพิเศษอื่น ๆ
ถ้าเราพูดถึง Arduino เมื่อได้รับข้อมูลจากเซ็นเซอร์เราจะประมวลผลสัญญาณดิจิตอลหรือวัดแรงดันไฟฟ้าจากเอาท์พุทแบบอะนาล็อกของโมดูล ดังกล่าวแล้ว เซ็นเซอร์เป็นดิจิตอลและอนาล็อก. โมดูลบางตัวสำหรับ Arduino มีทั้งเอาต์พุตแบบดิจิตอลและอนาล็อกซึ่งรวมเป็นหนึ่ง
โดยอุปกรณ์พวกเขา
-
resistive;
-
อุปนัย;
-
capacitive;
-
piezoelectric;
-
ตาแมวและประเภทอื่น ๆ
เซ็นเซอร์วัดแสงหรือแสง
วิธีที่ง่ายที่สุดในการกำหนดความสว่างของบางสิ่ง - ใช้ photoresistor, photodiode หรือ phototransistor. คุณสามารถเชื่อมต่อหนึ่งในตัวเลือกที่ระบุไว้กับ Arduino หรือซื้อบอร์ดพิเศษ - เซ็นเซอร์วัดแสง.

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

ใน aliexpress หรือในร้านค้าออนไลน์อื่น ๆ สามารถพบได้ตามคำขอ "PHOTOSENSITIVE-SENSOR" หรือเพียงแค่ "เซ็นเซอร์แสง"
โมดูลนี้มีสามผลลัพธ์:
-
โภชนาการ
-
ที่ดิน;
-
เอาต์พุตดิจิตอลจากตัวเปรียบเทียบ
หรือรุ่นสี่พิน:
-
โภชนาการ
-
ที่ดิน;
-
เอาต์พุตดิจิตอลจากตัวเปรียบเทียบ
-
อนาล็อก
ดังนั้นบนบอร์ดวางต้านทานการปรับเพื่อปรับเวลาของการเปรียบเทียบสามารถผลิตสัญญาณดิจิตอล
ตัวอย่างการใช้งาน:
-
เซ็นเซอร์วัดแสงสำหรับถ่ายทอดภาพ;
-
Alarm (จับคู่กับตัวปล่อยความร้อน);
-
ตัวนับของวัตถุที่ข้ามลำแสง ฯลฯ
เป็นการยากที่จะบรรลุค่าที่แน่นอนเนื่องจากต้องการตัววัดแสงที่ถูกต้องสำหรับการปรับที่ถูกต้องโดยการให้แสงสว่าง Photoresistor เหมาะสำหรับการกำหนดค่านามธรรมเช่น "มืดหรือสว่าง"
นอกจากบอร์ดดังกล่าวลดราคาแล้วคุณยังสามารถค้นพบสิ่งที่น่าสนใจ โมดูล GY-302. นี่คือเซ็นเซอร์ตรวจจับแสงตามวงจรรวม BH-1750 คุณสมบัติของมันคือมันเป็นโมดูลดิจิตอลมันมีความจุ 16 บิตสื่อสารกับไมโครคอนโทรลเลอร์ผ่านบัส i2c 16 บิตช่วยให้คุณสามารถวัดความสว่างได้ตั้งแต่ 1 ถึง 65356 Lux (Lx)

ด้านล่างเป็นแผนภาพแสดงการเชื่อมต่อ คุณอาจสังเกตเห็นว่า SDA และ SCL เชื่อมต่อกับหมุดอะนาล็อกของไมโครคอนโทรลเลอร์.

นี่เป็นเพราะความจริงที่ว่าบัส I2C นั้นติดตั้งบนพิน Arduino ซึ่งสามารถมองเห็นได้จากภาพต่อไปนี้ ดังนั้นอย่าหลงกลโดยข้อเท็จจริงนี้เซ็นเซอร์เป็นดิจิตอล

ข้อดีของเซ็นเซอร์ดิจิตอลคือคุณไม่จำเป็นต้องตรวจสอบค่าของแต่ละอินสแตนซ์รวบรวมตารางเพื่อแปลค่าที่วัดได้เป็นสเกลจริงและอื่น ๆในกรณีส่วนใหญ่สำหรับเซ็นเซอร์ดิจิตอลก็เพียงพอที่จะเชื่อมต่อไลบรารีสำเร็จรูปและอ่านค่าที่แปลงเป็นหน่วยจริง
ตัวอย่างร่างสำหรับ GY-302 (BH-1750):

ร่างจดหมายทำงานอย่างไร
ในตอนแรกเราบอกโปรแกรมว่าเราต้องเชื่อมต่อไลบรารี Wire.h ซึ่งรับผิดชอบการสื่อสารผ่านสาย I2C และ BH1750 ส่วนที่เหลือของการกระทำมีการอธิบายไว้อย่างดีในความคิดเห็นและเป็นผลให้ทุก 100ms เราอ่านค่าจากเซ็นเซอร์ใน Lux
ลักษณะของ GY-302 BH1750:
-
การสื่อสารไมโครคอนโทรลเลอร์ I2C
-
การตอบสนองทางสเปกตรัมคล้ายกับความไวตา
-
ข้อผิดพลาดเนื่องจากรังสีอินฟราเรดจะลดลง
-
ช่วงการวัด 0-65535 Lux
-
การจ่ายแรงดัน: 3-5 V
-
ฟังก์ชั่นการสิ้นเปลืองกระแสไฟและโหมดสลีปต่ำ
-
การกรองสัญญาณรบกวนแสง 50/60 Hz
-
จำนวนสูงสุดของเซ็นเซอร์บนบัส I2C 1 ชิ้นคือ 2 ชิ้น
-
ไม่จำเป็นต้องทำการสอบเทียบ
-
การบริโภคในปัจจุบัน - 120 μA
-
ในโหมดสลีป - 0.01 μA
-
ความยาวคลื่นที่วัดได้ - 560 นาโนเมตร
-
ในโหมดความละเอียดสูง - 1 Lux
-
ในโหมดความละเอียดต่ำ - 4 Lux
-
ADC - 16 บิต
ใช้เวลาในการวัด:
-
ในโหมดความละเอียดสูง - 120 ms
-
ในโหมดความละเอียดต่ำ - 16 ms
เซ็นเซอร์อุปสรรค
ฉันเลือกเซ็นเซอร์นี้เป็นตัวเลือกถัดไปที่ต้องพิจารณาเนื่องจากตัวเลือกตัวใดตัวหนึ่งทำงานบนพื้นฐานของโฟโตไดโอดหรือโฟโตทรานซิสเตอร์ซึ่งคล้ายกันในหลักการกับโฟโตเรเตอร์ที่กล่าวถึงในหัวข้อก่อนหน้า

ชื่อของมันคือ "เซ็นเซอร์สิ่งกีดขวางทางแสง" องค์ประกอบการทำงานหลักคือโฟโตไดโอดและ LED เปล่งและรับในสเปกตรัม IR (ดังนั้นไม่สามารถมองเห็นได้ด้วยตามนุษย์เช่นเดียวกับการประกอบเกณฑ์การประกอบเช่นบนตัวเปรียบเทียบกับตัวควบคุมความไวการใช้ระยะทางที่เซ็นเซอร์ถูกเรียก
ตัวอย่างแผนภาพการเชื่อมต่อ:

ตัวอย่างของโปรแกรมประมวลผลสัญญาณจากเซ็นเซอร์

ที่นี่หากเอาต์พุตจากเซ็นเซอร์เป็น“ 1” ซึ่งหมายถึง“ มีสิ่งกีดขวาง” LED บนบอร์ด Arduino หรือเชื่อมต่อกับพินที่ 13 (สิ่งเดียวกัน) จะสว่างขึ้น ส่วนใหญ่มักใช้ในหุ่นยนต์และสัญญาณเตือน

เซ็นเซอร์วัดระยะ
สำเนาก่อนหน้าประกอบด้วยตัวรับ - โฟโตไดโอดและตัวส่ง - LED เซ็นเซอร์วัดระยะห่างอัลตราโซนิกยังประกอบด้วยเครื่องรับและตัวปล่อยคลื่นอัลตราโซนิก ชื่อของเขาคือ HC SR04.

ลักษณะ HC SR04:
-
แรงดันไฟฟ้า 5V
-
พารามิเตอร์การทำงานของ force t oka - 15 mA
-
กระแสไฟฟ้าสถิตย์ <2 mA
-
มุมมอง - 15 °
-
ความละเอียดแตะ - 0.3 ซม
-
มุมการวัด - 30 °
-
ความกว้างของพัลส์ - 10-6 วิ
-
ช่วงการวัด: 2-400 ซม.
ข้อผิดพลาดปรากฏขึ้นเนื่องจาก:
-
อุณหภูมิและความชื้น - สามารถลดลงได้โดยการวัดอุณหภูมิด้วย DHT-11 หรือ DHT-22 เป็นต้นและป้อนค่าสัมประสิทธิ์เพื่อแก้ไขการวัด
-
ระยะห่างจากวัตถุ
-
ตำแหน่งของวัตถุที่สัมพันธ์กับเซ็นเซอร์ (ตามแผนภาพรังสี) สามารถชดเชยได้โดยการติดตั้ง HC SR04 บนเซอร์โวเพื่อเปลี่ยนทิศทางและทำการปรับที่แม่นยำ
-
คุณภาพการปฏิบัติงานขององค์ประกอบโมดูลเซ็นเซอร์
รูปแบบการฉายรังสี:

บอร์ดมีสี่เอาท์พุท:
-
VCC - กำลัง
-
สัญญาณอินพุต - ทริก;
-
สัญญาณสะท้อนกลับ -;
-
GND เป็นสายสามัญ

จะประมวลผลการอ่านได้อย่างไร
1. เราส่งพัลส์ที่มีระยะเวลา 10 μsไปยังอินพุต TRIG
2. ภายในโมดูลชีพจรจะถูกแปลงเป็นชุด 8 พัลส์ซึ่งตามมาด้วยความถี่ 40 kHz และส่งผ่านอิมิเตอร์
3. แรงกระตุ้นที่สะท้อนจากสิ่งกีดขวางมาถึงเครื่องรับและส่งออกไปยัง ECHO;
4. ระยะเวลาของพัลส์ที่ได้รับจากเอาต์พุต ECHO ควรหารด้วย 58.2 เพื่อให้ได้ระยะทางเป็นเซนติเมตรและเท่ากับ 148 หากคุณต้องการแปลงเป็นนิ้ว
รหัสตัวอย่าง:

วัดอุณหภูมิ
วิธีที่ง่ายที่สุดในการวัดอุณหภูมิโดยใช้ไมโครคอนโทรลเลอร์คือ ใช้เทอร์โมคับเปิลหรือเทอร์มิสเตอร์. เทอร์โมคับเปิลใช้สำหรับวัดอุณหภูมิสูงในการวัดในร่มและกลางแจ้ง - อันที่ฉันจะพูดถึงด้านล่างจะทำ แต่ตอนนี้มาดูเทอร์โมคัปเปิลกัน

เทอร์โมคัปเปิลแต่ละประเภทมีวิธีการทำงานของตัวเองกับไมโครคอนโทรลเลอร์ ตัวอย่างเช่นมีเทอร์โมคับเปิลชนิด K หรือที่เรียกว่า - chromel-alumel โดยมีช่วงอุณหภูมิที่วัดได้ตั้งแต่ -200 ถึง +1400 องศาเซลเซียสที่มีความไว 41 mV / องศาเซลเซียส และสำหรับเธอมีตัวแปลงพิเศษตาม IC max6675 มันมีฟังก์ชั่นสำหรับชดเชยอุณหภูมิของชุมทางเย็นเป็นต้น

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

จากนั้นต่อไปนี้จะปรากฏขึ้นบนมอนิเตอร์พอร์ตอนุกรม

แต่ก็ยังมีเซ็นเซอร์วัดอุณหภูมิแบบดิจิตอล DS12B20มันสามารถเรียกว่าคลาสสิกเนื่องจากมันถูกใช้มานานหลายปีในโครงการมือสมัครเล่นและนานก่อนที่จะปรากฏตัวของ Arduino

วงจรรวมดิจิตอลนี้อุปกรณ์ภายในของมันแสดงอยู่ในรูปด้านล่าง:

แผนภาพการเชื่อมต่อบอร์ด:

คุณสมบัติที่สำคัญและข้อมูล DS18B20:
-
ข้อผิดพลาดน้อยกว่า 0.5 ° C (ในช่วงอุณหภูมิตั้งแต่ -10 ° C ถึง + 85 ° C)
-
ไม่จำเป็นต้องทำการสอบเทียบ
-
ช่วงการวัด - จาก -55 Сถึง + 125С
-
VCC แรงดันไฟฟ้า 3.3-5V
-
ความละเอียดสูงสุด0.0625Сกำหนดโดยซอฟต์แวร์
-
ความละเอียด - 12 บิต
-
แต่ละอินสแตนซ์ถูกกำหนดรหัสซีเรียลที่ไม่ซ้ำกัน สิ่งนี้จำเป็นสำหรับการใช้งานหลาย ๆ ชิ้นในโครงการเดียวได้อย่างง่ายดาย
-
อินเตอร์เฟสการสื่อสาร - 1-Wire
-
ไม่จำเป็นต้องรัด
-
จำนวนสูงสุดของเซ็นเซอร์ในหนึ่งบรรทัดคือ 127 ชิ้น
-
โหมดพลังงานปลอม - ในกรณีนี้เซ็นเซอร์ใช้พลังงานโดยตรงจากสายการสื่อสาร ในเวลาเดียวกันไม่รับรองการวัดอุณหภูมิที่สูงกว่า 100C
ด้านล่างคุณจะเห็นแผนภูมิการแปลงของรหัสไบนารีจาก DS18b20 เป็นอุณหภูมิในหน่วยองศาเซลเซียส

โปรแกรมตัวอย่างสำหรับการอ่านค่าอุณหภูมิ

เซ็นเซอร์ความดันบรรยากาศ
บารอมิเตอร์อิเล็กทรอนิกส์ถูกประกอบบนพื้นฐานของเซ็นเซอร์ความดันบรรยากาศ ตัวเลือกต่อไปนี้ถูกใช้อย่างกว้างขวาง:
-
BMP180;
-
BMP280;
-
BME280

หากทั้งสองกรณีก่อนหน้านี้มีความคล้ายคลึงกันกันแล้ว เซ็นเซอร์ BME280 - นี่คือสถานีตรวจอากาศขนาดเล็ก มี 3 เซ็นเซอร์ในตัว
-
อุณหภูมิ;
-
ความดัน
-
ความชื้น
ลักษณะทางเทคนิค:
-
ขนาด 2.5 x 2.5 x 0.93 มม.;
-
Metal LGA-housing พร้อมกับเอาต์พุต 8 ตัว
-
แรงดันไฟฟ้า 1.7 - 3.6V
-
ความพร้อมใช้งานของอินเทอร์เฟซ I2C และ SPI
-
การใช้กระแสไฟขณะสแตนด์บาย 0.1 µA
ตัวอย่างเหล่านี้คือ MEMS barometers MEMS ย่อมาจาก microelectromechanical นี่คือโครงสร้างจุลภาคเชิงกลที่ใช้ปรากฏการณ์ capacitive และหลักการอื่น ๆ สำหรับการทำงาน ด้านล่างคุณจะเห็นตัวอย่างของเซ็นเซอร์ดังกล่าวในบริบท

ตัวอย่างแผนภาพการเชื่อมต่อ:

และตัวอย่างของรหัสโปรแกรม:

ตรรกะของโปรแกรมนั้นง่ายมาก:
1. เรียกรูทีนย่อย (ฟังก์ชั่น) อ่านจากเซ็นเซอร์
2. ร้องขอการอ่านเซ็นเซอร์อุณหภูมิที่รวมอยู่ในบารอมิเตอร์
3. เรากำลังรอเวลาในการประเมินเซ็นเซอร์อุณหภูมิ
4. อ่านผลลัพธ์ของการวัดอุณหภูมิ
5. ขอค่าความดัน;
6. เรากำลังรอเวลาวัดความดัน
7. อ่านค่าความดัน;
8. คืนค่าความดันจากฟังก์ชั่น
ข้อเท็จจริงที่น่าสนใจคือมีสี่ตัวเลือกสำหรับการอ่านค่าพวกมันถูกระบุว่าเป็นอาร์กิวเมนต์ในฟังก์ชั่น startPressure เครื่องหมายที่สองคือจาก 0 ถึง 3 โดยที่ 0 คือค่าประมาณคร่าวๆและ 3 คือค่าประมาณที่แน่นอน
เซ็นเซอร์เคลื่อนไหว
เซ็นเซอร์ตรวจจับความเคลื่อนไหวที่พบมากที่สุดสำหรับ Arduino คือ โมดูลเซ็นเซอร์ IR HC HC501. คุณลักษณะของโมดูลนี้คือมีการปรับระยะตอบสนองและเวลาหน่วงของสัญญาณเอาต์พุตหลังการทำงาน

คุณสมบัติของโมดูล:
1. จ่ายแรงดัน 4.5 - 20 V.
2. กระแสสงบนิ่ง≈ 50 μA;
3. แรงดันสัญญาณออก (ระดับตรรกะ): 3.3 V;
4. ช่วงอุณหภูมิในการทำงาน - จาก -15 ° C ถึง 70 ° C
5. ขนาด: 32 * 24 มม.;
6. สาขาดู - 110 °;
7. ระยะการทำงานสูงสุด - จาก 3 ถึง 7 เมตร (ปรับได้); สูงกว่า 30 ° C ระยะนี้อาจลดลง
แผนภาพการเดินสายไฟ:

วิธีทำงานกับเขาเราได้พิจารณาบทความที่ตีพิมพ์ก่อนหน้านี้: รูปแบบของเซ็นเซอร์ตรวจจับความเคลื่อนไหวหลักการทำงานและแผนภาพเชื่อมต่อ
เซ็นเซอร์ระดับน้ำ
ออกแบบมาเพื่อระบุระดับของเหลว

คุณสมบัติ:
1. จ่ายแรงดันไฟฟ้า 3-5V
2. การบริโภคในปัจจุบัน> 20 mA
3. อะนาล็อก
4. ขนาดของโซนการวัด 40x16 มม
5. ความชื้นที่อนุญาต 10% - 90%
รหัสตัวอย่าง:

ค่าเอาต์พุตจาก 0 (ในสภาวะแห้ง) ถึง 685 (อาจแตกต่างกันขึ้นอยู่กับการนำไฟฟ้าของน้ำ) อย่าลืมกระแสไฟฟ้าเมื่อทำการวัดระดับเกลือหรือน้ำกระด้างมันจะกัดกร่อน
เซ็นเซอร์การรั่วไหล
โมดูลประกอบด้วยสองส่วน - ตัวเซ็นเซอร์และตัวเปรียบเทียบสามารถสร้างได้บน LM393, LM293 หรือ LM193

ต้องขอบคุณอุปกรณ์เปรียบเทียบสัญญาณอนาล็อกจะถูกแปลงเป็นดิจิตอล
แผนภาพการเดินสายไฟ:

กระดาน Pinout:
-
VCC - กำลังไฟจะต้องตรงกับพลังของบอร์ด Apduino ในกรณีส่วนใหญ่เป็น 5V
-
GND - สายสามัญ
-
AO - สัญญาณอะนาล็อก;
-
DO เป็นสัญญาณดิจิตอล
มีตัวต้านทานปรับแต่งอยู่บนบอร์ดเปรียบเทียบมันตั้งค่าความไวของเซ็นเซอร์ มันสามารถทำหน้าที่เป็นสัญญาณของฝนหรือรั่วไหลบางสิ่งบางอย่างและเมื่อจับคู่กับเครนดังกล่าวก็สามารถทำงานได้ เพื่อป้องกันท่อรั่วในอพาร์ทเมนท์:

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

มันสามารถทำงานได้ทั้งในโหมดอนาล็อกและดิจิตอล ตัวอย่างของแผนภาพการเชื่อมต่อสำหรับระบบชลประทานอัตโนมัติพร้อมเครนบนพื้นฐานของเครื่องยนต์:

และตัวอย่างของรหัสโปรแกรมสำหรับการประมวลผลสัญญาณดิจิตอลจากเซ็นเซอร์ความชื้น:


ข้อสรุป
เราตรวจสอบเซ็นเซอร์ยอดนิยม แต่ก็มีอีกหลายตัว เซ็นเซอร์การสั่นสะเทือนไจโรสโคปเครื่องวัดความเร่งเซ็นเซอร์รังสีและอื่น ๆ อีกมากมาย
จุดประสงค์ของบทความนี้คือการรวบรวมองค์ประกอบที่หลากหลายซึ่งอาจเป็นประโยชน์ต่อวิศวกรอิเล็กทรอนิกส์ระดับเริ่มต้นสำหรับการดำเนินงานตามโครงการ หากคุณสนใจเซ็นเซอร์ตัวใดตัวหนึ่ง - เขียนความคิดเห็นแล้วเราจะพิจารณารายละเอียดเพิ่มเติม
เพื่อความสะดวกของคุณเราได้รวบรวมตารางสำหรับคุณโดยมีค่าใช้จ่ายโดยประมาณและรายการเซ็นเซอร์ยอดนิยมสำหรับ Arduino ตามลำดับที่ได้รับการพิจารณาในบทความ:เซ็นเซอร์สำหรับ Arduino
ราคาถูกนำมาจากร้านค้าออนไลน์ในรัสเซียหรือยูเครน ในประเทศจีนมีราคาถูกกว่า 2 เท่าหรือมากกว่า
ดูได้ที่ electro-th.tomathouse.com
: