อ่านและเขียนแบบอะนาล็อกโดยใช้ Arduino Uno

Analog Read and Write Using the Arduino Uno

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


สิ่งที่คุณต้องการ

  1. Arduino Uno พร้อมสาย USB
  2. โพเทนชิออมิเตอร์ (หรือตัวต้านทานตัวแปรใด ๆ ) สำหรับอินพุตแบบอะนาล็อก
  3. LED และตัวต้านทาน 220 โอห์มสำหรับเอาต์พุตแบบอะนาล็อก
  4. เครื่องหั่นขนมปังและสายจัมเปอร์
  5. คอมพิวเตอร์ที่ติดตั้ง Arduino IDE

ขั้นตอนที่ 1: ทำความเข้าใจกับหมุดอะนาล็อกบน Arduino

Arduino Uno มีหมุดอินพุตแบบอะนาล็อกหกตัว (A0-A5) ที่สามารถอ่านแรงดันไฟฟ้าระหว่าง 0 และ 5V และแปลงเป็นค่าดิจิตอลระหว่าง 0 และ 1023 สำหรับเอาต์พุตอะนาล็อก Arduino ใช้ PWM (การปรับความกว้างพัลส์) ทำเครื่องหมายด้วย ~ (เช่น, 3, 5, 6, 9, 10, 11)

ฟังก์ชั่นที่ใช้

  • อินพุตแบบอะนาล็อก: analogRead(pin)
    • อ่านแรงดันไฟฟ้า (0-5V) และส่งคืนค่าระหว่าง 0 ถึง 1023
  • เอาต์พุตอะนาล็อก: analogWrite(pin, value)
    • ส่งสัญญาณ PWM ที่ value ช่วงตั้งแต่ 0 (รอบการทำงาน 0%) ถึง 255 (รอบการทำงาน 100%)

ขั้นตอนที่ 2: อินพุตแบบอะนาล็อกสายไฟ (โพเทนชิออมิเตอร์)

เชื่อมต่อโพเทนชิออมิเตอร์เข้ากับหมุดอะนาล็อก Arduino:

หมุดโพเทนชิออมิเตอร์ การเชื่อมต่อ Arduino
1 (ปลายขา) 5V
2 (กลาง/เอาต์พุต) A0
3 (สิ้นสุดพิน) gnd

ขั้นตอนที่ 3: เอาท์พุทการเดินสายแบบอะนาล็อก (LED)

เชื่อมต่อ LED กับตัวต้านทาน 220 โอห์มกับพิน Arduino PWM (เช่นพิน 9):

พิน LED การเชื่อมต่อ Arduino
ขายาว (+) พินดิจิตอล 9
ขาสั้น (-) gnd

ขั้นตอนที่ 4: การอ่านอินพุตแบบอะนาล็อก

ใช้ analogRead() ฟังก์ชั่นการอ่านข้อมูลจากโพเทนชิออมิเตอร์:

รหัสตัวอย่าง: การอ่านอินพุตแบบอะนาล็อก

#define potPin A0 // Potentiometer connected to A0

void setup() {
  Serial.begin(9600);
  Serial.println("Analog Input Test");
}

void loop() {
  int sensorValue = analogRead(potPin); // Read analog value
  Serial.print("Sensor Value: ");
  Serial.println(sensorValue);
  delay(500); // Wait for half a second
}

เรียกใช้รหัสและสังเกตค่าโพเทนชิออมิเตอร์ (0-1023) ในจอภาพอนุกรม


ขั้นตอนที่ 5: การเขียนเอาต์พุตแบบอะนาล็อก

ใช้ analogWrite() ฟังก์ชั่นในการควบคุมความสว่างของ LED:

รหัสตัวอย่าง: เอาต์พุตอะนาล็อกไปยัง LED

#define ledPin 9 // LED connected to pin 9

void setup() {
  pinMode(ledPin, OUTPUT); // Set LED pin as output
}

void loop() {
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledPin, brightness); // Increase brightness
    delay(10);
  }

  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(ledPin, brightness); // Decrease brightness
    delay(10);
  }
}

ขั้นตอนที่ 6: การรวมอินพุตและเอาต์พุตแบบอะนาล็อก

คุณสามารถใช้ค่าอินพุตแบบอะนาล็อกเพื่อควบคุมเอาต์พุตเช่นการปรับความสว่างของ LED ตามตำแหน่งโพเทนชิออมิเตอร์

ตัวอย่างรหัส: โพเทนชิออมิเตอร์ควบคุมความสว่างของ LED

#define potPin A0 // Potentiometer connected to A0
#define ledPin 9  // LED connected to pin 9

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(potPin); // Read potentiometer value

  int brightness = map(sensorValue, 0, 1023, 0, 255); // Map to PWM range
  analogWrite(ledPin, brightness); // Set LED brightness

  Serial.print("Sensor Value: ");
  Serial.print(sensorValue);
  Serial.print(" -> Brightness: ");
  Serial.println(brightness);

  delay(100);
}

ขั้นตอนที่ 7: ใช้ if ข้อความที่มีข้อมูลแบบอะนาล็อก

คุณสามารถสร้างเงื่อนไขโดยใช้อินพุตแบบอะนาล็อกเพื่อดำเนินการเฉพาะ:

ตัวอย่างรหัส: การควบคุมแบบมีเงื่อนไข

#define potPin A0 // Potentiometer connected to A0
#define ledPin 9  // LED connected to pin 9

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(potPin);

  if (sensorValue > 512) {
    analogWrite(ledPin, 255); // Full brightness if sensor value > 512
    Serial.println("Bright!");
  } else {
    analogWrite(ledPin, 0); // Turn off LED otherwise
    Serial.println("Off");
  }

  delay(500);
}

แอปพลิเคชันของการอ่าน/เขียนแบบอะนาล็อก

  1. การอ่านเซ็นเซอร์สิ่งแวดล้อม (เช่นแสง, อุณหภูมิ, ความชื้น)
  2. การปรับความเร็วมอเตอร์
  3. การควบคุมความสว่างของ LED
  4. การประมวลผลสัญญาณเสียง
  5. การสร้างอินเทอร์เฟซผู้ใช้แบบอะนาล็อก

การแก้ไขปัญหา

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

บทสรุป

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

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

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.