จำนวนอินพุตแบบอะนาล็อกใน Arduino Uno

Canwn Xinphut Bae Bxa Na Lxk Ni Arduino Uno



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

อินพุตแบบอะนาล็อกกับ Arduino

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

Arduino มีทั้งหมด 14 อินพุตเอาต์พุตพินซึ่ง 6 หมุดจาก A0 ถึง A5 เป็นขาอนาล็อก การอ่านค่าแรงดันไฟฟ้าอินพุตโดยใช้หมุดทั้ง 6 ตัวสามารถจับคู่ได้หลังจากส่งผ่านจาก ADC เป็นสัญญาณดิจิทัลระหว่างระดับอะนาล็อกที่ไม่ต่อเนื่อง 0 ถึง 1023 ซึ่งหมายความว่าค่าอนาล็อกอินพุต 0V จะถูกจับคู่เป็น 0 ในรูปแบบดิจิทัล และค่าแอนะล็อก 5V จะเท่ากับ 1023 หลังจากแปลงผ่าน ADC









วิธีใช้อินพุตแบบอะนาล็อก

อินพุตที่ผันแปรอยู่ภายใต้หมวดหมู่อนาล็อก Arduino ค่าอินพุตเหล่านี้ส่วนใหญ่มาจากเซ็นเซอร์อะนาล็อก เซ็นเซอร์อุณหภูมิ และโพเทนชิออมิเตอร์ เราเรียกอุปกรณ์เหล่านี้ว่าอุปกรณ์แอนะล็อก ในทำนองเดียวกัน ในการอ่านข้อมูลจากเซ็นเซอร์เหล่านี้โดยใช้พินอินพุตแบบอะนาล็อกของ Arduino เราใช้ อนาล็อกอ่าน() ฟังก์ชัน ซึ่งให้ค่าในช่วง 0 ถึง 1023



อนาล็อกอ่าน()
ในการรับสัญญาณแอนะล็อก เราใช้ฟังก์ชัน analogRead() ในการเขียนโปรแกรม Arduino พินเหล่านี้ออกแบบมาเพื่อรับอินพุตจากอุปกรณ์แอนะล็อก





ไวยากรณ์
ไวยากรณ์ของฟังก์ชัน analogRead() คือ:

อนาล็อกอ่าน ( เข็มหมุด )

พารามิเตอร์
analogRead() รับเพียงพารามิเตอร์เดียวคือ a หมายเลขพิน . มันอธิบายชื่อของพินอินพุตที่จะอ่านข้อมูลแอนะล็อก ส่งคืนการอ่านบนพินอะนาล็อกในกรณีที่ 10 บิตถูก จำกัด ระหว่าง 0-1023 และประเภทข้อมูลที่ใช้คือ int .



บอร์ด หมุดอนาล็อก ความละเอียดสูงสุดของ ADC
หนึ่ง A0 ถึง A5 10 บิต
นาโน A0 ถึง A7 10 บิต
เมก้า A0 ถึง A14 10 บิต

Arduino Uno มีพินอินพุทแบบอะนาล็อก 6 อัน แต่พินเหล่านี้ไม่สามารถใช้พร้อมกันได้เนื่องจากพินทั้ง 6 พินเหล่านี้เชื่อมต่อกับ ADC เดียวภายใน Arduino โดยใช้มัลติเพล็กเซอร์ (MUX) Arduino ไม่สามารถอ่านอินพุตทั้งหมดพร้อมกันได้ แต่สามารถอ่านข้อมูลแอนะล็อกผ่านพินทั้งหมดได้ด้วยการหน่วงเวลาเล็กน้อยหรืออ่านตามลำดับ

เราสามารถใช้พินอะนาล็อกเป็นดิจิตอลได้ไหม

ใช่ , พินอนาล็อกสามารถใช้เป็นพินเอาต์พุตดิจิตอลอินพุต การใช้เทคนิคนามแฝง เราสามารถตั้งค่าพินอินพุตแบบแอนะล็อกใดๆ ให้เป็นเอาต์พุตดิจิทัล ไวยากรณ์โค้ดจะมีลักษณะดังนี้:

pinMode ( A0, เอาต์พุต ) ;
digitalWrite ( A0, สูง ) ;

ที่นี่เราได้แมปพินอะนาล็อก A0 เป็นเอาต์พุตดิจิตอลและตั้งค่าเป็นสูง

บทสรุป

ในการเชื่อมต่อเซ็นเซอร์แอนะล็อกกับบอร์ด Arduino เราใช้อินพุตแบบอะนาล็อก บอร์ด Arduino มีการกำหนดค่าที่แตกต่างกัน และแต่ละบอร์ดมีจำนวนพินอะนาล็อกต่างกัน Arduino Uno มีอินพุตแบบอะนาล็อก 6 ช่อง Arduino Nano มี 8 ช่องในขณะที่ Mega มาพร้อมกับอินพุตแบบอะนาล็อก 16 ช่อง