วันจันทร์ที่ 17 กันยายน พ.ศ. 2561

โปรเจคที่ 13 Reed Switch การเชื่อมต่อกับ Arduino


Reed Switch การเชื่อมต่อกับ Arduino

Reed Switch

สวิตช์เป็นสวิตช์  ไฟฟ้า  ที่ใช้งานได้เมื่อนำสนามแม่เหล็กมาใกล้ มันถูกคิดค้นโดยWB Ellwoodในปี 1936 ที่ห้องทดลองระฆัง ประกอบด้วยชิ้นโลหะขนาดเล็ก 2 ชิ้นเก็บไว้ในท่อแก้วภายใต้สูญญากาศ ในสวิทช์กกทั่วไปสองชิ้นโลหะจะทำจากวัสดุที่เป็นเหล็กและเคลือบด้วยโรเดียมหรือรูทีเนียมเพื่อให้ชีวิตยาวนาน สวิทช์จะเปิดใช้งานเมื่อมีการปรากฏตัวของสนามแม่เหล็กรอบสวิทช์
Reed Switch

ฝาครอบแก้วของชิ้นโลหะทั้งสองช่วยปกป้องผิวจากสิ่งสกปรกฝุ่นและอนุภาคอื่น ๆ สวิตช์กกสามารถใช้งานได้ในทุกสภาพแวดล้อมเช่นสภาพแวดล้อมที่มีแก๊สไวไฟหรือสภาพแวดล้อมที่การกัดกร่อนส่งผลต่อสวิทช์แบบเปิด
มีสองประเภทของการเปลี่ยนกก
  1. เปิดสวิตช์กกโดยปกติ
  2. สวิตช์ปิดกกปกติ
ในสวิตช์เปิดโล่ปกติสวิทช์เปิดอยู่ในที่ที่ไม่มีสนามแม่เหล็กและถูกปิดไว้ในที่ที่มีสนามแม่เหล็ก ด้านที่เป็นโลหะภายในหลอดแก้วจะอยู่ติดกับสนามแม่เหล็ก
ในปกติปิดสวิทช์กก , สวิทช์ปิดให้บริการในกรณีที่ไม่มีสนามแม่เหล็กและจะเปิดให้บริการในการปรากฏตัวของสนามแม่เหล็ก
การประยุกต์ใช้สวิตช์ Reed
  • ใช้ในการแลกเปลี่ยนทางโทรศัพท์
  • ในแล็ปท็อปที่จะวางหน้าจอในการนอนหลับถ้าฝาปิด
  • ใช้ในเซ็นเซอร์หน้าต่างและประตูในระบบกันขโมย

องค์ประกอบที่จำเป็น

  • Arduino Uno
  • สวิตช์กก
  • ตัวต้านทาน
  • LED
  • แม่เหล็ก
  • สายเชื่อมต่อ

Arduino Reed Switch วงจรแผนภาพ

Arduino Reed Switch Interfacing แผนภาพวงจร

การทำงานของ Reed Switch กับ Arduino

Arduino  Uno เป็นไมโครคอนโทรลเลอร์แบบโอเพ่นซอร์สที่ใช้ไมโครคอนโทรลเลอร์ ATmega328p มีหมุดดิจิทัลจำนวน 14 แบบ (จาก 6 ขาสามารถใช้เป็นเอาท์พุท PWM) 6 อินพุตแบบอนาล็อกตัวควบคุมแรงดันไฟฟ้าของบอร์ดเป็นต้น Arduino Uno มีหน่วยความจำ 32KB, SRAM 2KB และ EEPROM 1KB ทำงานที่ความถี่นาฬิกา 16MHz Arduino Uno รองรับการสื่อสารแบบอนุกรม, I2C, SPI สำหรับการสื่อสารกับอุปกรณ์อื่น ๆ ตารางด้านล่างแสดงข้อมูลทางเทคนิคของ Arduino Uno
ไมโครคอนโทรลเลอร์
ATmega328p
แรงดันไฟฟ้าที่ใช้งาน
5V
แรงดันไฟฟ้าขาเข้า
7-12V (แนะนำ)
หมุด I / O ดิจิทัล
14
หมุดอนาล็อก
6
หน่วยความจำ Flash
32KB
SRAM
2KB
EEPROM
1KB
ความเร็วสัญญาณนาฬิกา
16MHz

หากต้องการเชื่อมต่อกับ Arduinoเราจำเป็นต้องสร้างวงจรแบ่งแรงดันไฟฟ้าดังแสดงในรูปด้านล่าง Vo คือ + 5V เมื่อสวิตช์เปิดอยู่และ 0V เมื่อปิดสวิทช์ เราใช้สวิตช์กกที่เปิดตามปกติในโครงการนี้ สวิตช์ปิดอยู่ในที่ที่มีสนามแม่เหล็กและเปิดอยู่ในที่ที่ไม่มีสนามแม่เหล็ก
Voltgae Divider Circuit โดยใช้สวิตช์ Reed

Reed สลับกับ Arduino ในการดำเนินการ

คำอธิบายโค้ด

รหัสที่สมบูรณ์สำหรับโครงการสลับ Arduino Reed นี้จะได้รับในตอนท้ายของบทความนี้ โค้ดนี้แบ่งออกเป็นส่วนเล็ก ๆ ที่มีความหมายและอธิบายไว้ด้านล่าง
ในส่วนนี้ของโค้ดเราจะต้องกำหนดหมุดที่สวิตช์ Reed และ LED ซึ่งเชื่อมต่อกับ Arduino สวิตช์กกได้เชื่อมต่อกับขาดิจิตอล 4 ของ Arduino และ LED เชื่อมต่อกับขา 7 ของ Arduino ผ่านตัวต้านทาน จำกัด กระแส ตัวแปร"reed_status"ใช้เพื่อควบคุมสถานะของสวิตช์กก
int LED = 7; 
int reed_switch = 4; 
int reed_status;

ในส่วนของรหัสนี้เราจะต้องตั้งค่าสถานะของหมุดที่ LED และสวิทช์กกมีการเชื่อมต่อ หมายเลข PIN 4 ถูกตั้งค่าเป็นอินพุทและหมายเลขพิน 7 ถูกตั้งค่าเป็นเอาท์พุท
การตั้งค่าเป็นโมฆะ () 
{ 
  pinMode (LED, OUTPUT); 
  pinMode (reed_switch, INPUT); 
}

ต่อไปเราจะต้องอ่านสถานะของสวิทช์กก หากมีค่าเท่ากับ 1 สวิตช์จะเปิดอยู่และ LED จะดับลง หากมีค่าเท่ากับ 0 สวิตช์จะปิดและเราต้องเปิดไฟ LED กระบวนการนี้จะทำซ้ำทุกๆวินาที งานนี้ทำได้โดยใช้ส่วนของโค้ดด้านล่างนี้
void loop ()
{
  reed_status = digitalRead (reed_switch);
  if (reed_status == 1)
    digitalWrite (LED, ต่ำ);
  อื่น
    digitalWrite (LED, HIGH);
  ล่าช้า (1000)
}

ดังนั้นคุณจึงได้เห็นการใช้ Reed Switch กับ Arduino เป็นเรื่องง่ายมาก 
รหัส
int LED = 7; 
int reed_switch = 4; 
int reed_status;
การตั้งค่าเป็นโมฆะ () 

  pinMode (LED, OUTPUT); 
  pinMode (reed_switch, INPUT); 
}
void loop () 

  reed_status = digitalRead (reed_switch); 
  ถ้า (reed_status == 1) 
    digitalWrite (LED, LOW); 
  อื่น
    digitalWrite (LED, HIGH); 
  ล่าช้า (1000) 
}
วีดีโอ

ไม่มีความคิดเห็น:

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