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
}