Arduino - ฟังก์ชัน I / O ขั้นสูง
ในบทนี้เราจะเรียนรู้ฟังก์ชันอินพุตและเอาต์พุตขั้นสูง
analogReference () ฟังก์ชัน
กำหนดค่าแรงดันอ้างอิงที่ใช้สำหรับอินพุตแบบอะนาล็อก (เช่นค่าที่ใช้เป็นด้านบนสุดของช่วงอินพุต) ตัวเลือกคือ -
DEFAULT - อ้างอิงอะนาล็อกเริ่มต้น 5 โวลต์ (บนบอร์ด 5V Arduino) หรือ 3.3 โวลต์ (บนบอร์ด 3.3V Arduino)
INTERNAL - การอ้างอิงในตัวเท่ากับ 1.1 โวลต์บน ATmega168 หรือ ATmega328 และ 2.56 โวลต์บน ATmega8 (ไม่มีใน Arduino Mega)
INTERNAL1V1 - การอ้างอิง 1.1V ในตัว (Arduino Mega เท่านั้น)
INTERNAL2V56 - การอ้างอิง 2.56V ในตัว (Arduino Mega เท่านั้น)
EXTERNAL - ใช้แรงดันไฟฟ้าที่ใช้กับขา AREF (0 ถึง 5V เท่านั้น) เป็นข้อมูลอ้างอิง
analogReference () ไวยากรณ์ของฟังก์ชัน
analogReference (type);
type - สามารถใช้ประเภทใดก็ได้ดังต่อไปนี้ (DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2V56, EXTERNAL)
อย่าใช้อะไรที่น้อยกว่า 0V หรือมากกว่า 5V สำหรับแรงดันอ้างอิงภายนอกที่ขา AREF หากคุณใช้การอ้างอิงภายนอกบนพิน AREF คุณต้องตั้งค่าการอ้างอิงอะนาล็อกเป็น EXTERNAL ก่อนที่จะเรียกไฟล์analogRead()ฟังก์ชัน มิฉะนั้นคุณจะลัดวงจรแรงดันอ้างอิงที่ใช้งานอยู่ (สร้างขึ้นภายใน) และพิน AREF ซึ่งอาจทำให้ไมโครคอนโทรลเลอร์บนบอร์ด Arduino ของคุณเสียหายได้
หรือคุณสามารถเชื่อมต่อแรงดันอ้างอิงภายนอกกับพิน AREF ผ่านตัวต้านทาน 5K เพื่อให้คุณสามารถสลับระหว่างแรงดันอ้างอิงภายนอกและภายในได้
โปรดทราบว่าตัวต้านทานจะเปลี่ยนแรงดันไฟฟ้าที่ใช้เป็นข้อมูลอ้างอิงเนื่องจากมีตัวต้านทาน 32K ภายในที่ขา AREF ทั้งสองทำหน้าที่เป็นตัวแบ่งแรงดันไฟฟ้า ตัวอย่างเช่น 2.5V ที่ใช้ผ่านตัวต้านทานจะให้ผล 2.5 * 32 / (32 + 5) = ~ 2.2V ที่ขา AREF
Example
int analogPin = 3;// potentiometer wiper (middle terminal) connected to analog pin 3
int val = 0; // variable to store the read value
void setup() {
Serial.begin(9600); // setup serial
analogReference(EXTERNAL); // the voltage applied to the AREF pin (0 to 5V only)
// is used as the reference.
}
void loop() {
val = analogRead(analogPin); // read the input pin
Serial.println(val); // debug value
}