เครื่องวัดวามเร็วเป็นอุปกรณ์ที่ใช้วัด RPM หรือความเร็วเชิงมุมของตัวหมุน มันแตกต่างจากมาตรวัดความเร็วและมาตรวัดระยะทางเนื่องจากอุปกรณ์เหล่านี้จัดการกับความเร็วเชิงเส้นหรือสัมผัสของร่างกายในขณะที่เครื่องวัดความเร็วรอบหรือที่เรียกว่า 'tach' เกี่ยวข้องกับ RPM พื้นฐานที่มากกว่า
โดย Ankit Negi
เครื่องวัดวามเร็วประกอบด้วยตัวนับและตัวจับเวลาทั้งสองอย่างนี้ทำงานร่วมกันให้ RPM ในโครงการของเราเราจะทำเช่นเดียวกันโดยใช้ Arduino ของเราและเซ็นเซอร์บางตัวเราจะติดตั้งทั้งตัวนับและตัวจับเวลาและพัฒนาตัวจับเวลาที่สะดวกและง่ายของเรา .
ข้อกำหนดเบื้องต้น
ตัวนับไม่ใช่อะไรนอกจากอุปกรณ์หรือการตั้งค่าที่สามารถนับเหตุการณ์ปกติที่เกิดขึ้นเช่นการส่งผ่านจุดในดิสก์ในขณะที่หมุน เริ่มแรกเคาน์เตอร์ถูกสร้างขึ้นโดยใช้การจัดเรียงทางกลและการเชื่อมโยงเช่นเฟืองวงล้อสปริงเป็นต้น
แต่ตอนนี้เราใช้ตัวนับที่มีเซนเซอร์และอุปกรณ์อิเล็กทรอนิกส์ที่ซับซ้อนและแม่นยำสูงตัวจับเวลาเป็นองค์ประกอบอิเล็กทรอนิกส์ที่สามารถวัดช่วงเวลาระหว่างเหตุการณ์หรือวัดเวลาได้
ใน Arduino Uno ของเรามีตัวจับเวลาที่ไม่เพียง แต่ติดตามเวลา แต่ยังรักษาฟังก์ชันที่สำคัญบางอย่างของ Arduino ไว้ด้วย ใน Uno เรามีตัวจับเวลา 3 ตัวชื่อ Timer0, Timer1 และ Timer2 ตัวจับเวลาเหล่านี้มีฟังก์ชันต่อไปนี้ - • Timer0- สำหรับฟังก์ชัน Uno เช่น delay (), millis (), micros () หรือ delaymicros ()
• Timer1- สำหรับการทำงานของห้องสมุดเซอร์โว
• Timer2- สำหรับฟังก์ชั่นเช่น tone (), notone ()
นอกจากฟังก์ชั่นเหล่านี้ตัวจับเวลาทั้ง 3 ตัวนี้ยังรับผิดชอบในการสร้างเอาต์พุต PWM เมื่อใช้คำสั่ง analogWrite () ในพินที่กำหนดของ PMW
แนวคิดของการขัดจังหวะ
ใน Arduino Uno มีเครื่องมือที่ซ่อนอยู่ซึ่งสามารถให้การเข้าถึงฟังก์ชันมากมายแก่เราที่เรียกว่า Timer Interrupts การขัดจังหวะคือชุดของเหตุการณ์หรือคำสั่งที่ดำเนินการเมื่อถูกเรียกว่าขัดจังหวะการทำงานปัจจุบันของอุปกรณ์กล่าวคือไม่ว่าจะเกิดอะไรขึ้น รหัสที่ Uno ของคุณกำลังดำเนินการมาก่อน แต่เมื่อ Interrupt เรียกว่า Arduino ดำเนินการตามคำสั่งที่กล่าวถึงใน Interrupt
ตอนนี้ Interrupt สามารถเรียกใช้ในเงื่อนไขบางอย่างที่กำหนดโดยผู้ใช้โดยใช้ Arduino Syntax ในตัวเราจะใช้ Interrupt นี้ในโครงการของเราซึ่งทำให้เครื่องวัดวามเร็วของเรามีความแน่วแน่และแม่นยำกว่าโครงการ Tachometer อื่น ๆ ที่มีอยู่ในเว็บ
ส่วนประกอบที่จำเป็นสำหรับโครงการ Tachometer นี้โดยใช้ Arduino
• Hall Effect Sensor (รูปที่ 1)
• Arduino Uno
•แม่เหล็กขนาดเล็ก
•สายจัมเปอร์
•วัตถุหมุน (เพลามอเตอร์)
การตั้งค่าวงจร
•การตั้งค่าสำหรับการสร้างมีดังนี้ -
•ในเพลาที่จะวัดความเร็วในการหมุนจะติดตั้งแม่เหล็กขนาดเล็กโดยใช้ปืนกาวหรือเทปไฟฟ้า
•เซ็นเซอร์ Hall Effect มีตัวตรวจจับด้านหน้าและ 3 พินสำหรับการเชื่อมต่อ
•หมุด Vcc และ Gnd เชื่อมต่อกับขา 5V และ Gnd ของ Arduino ตามลำดับ ขาเอาต์พุตของเซ็นเซอร์เชื่อมต่อกับพินดิจิทัล 2 ของ Uno เพื่อให้สัญญาณอินพุต
•ส่วนประกอบทั้งหมดได้รับการแก้ไขในบอร์ดยึดและเครื่องตรวจจับฮอลล์จะชี้ออกจากบอร์ด
การเขียนโปรแกรม
int sensor = 2 // Hall sensor at pin 2
volatile byte counts
unsigned int rpm //unsigned gives only positive values
unsigned long previoustime
void count_function()
{ /*The ISR function
Called on Interrupt
Update counts*/
counts++
}
void setup() {
Serial.begin(9600)
//Intiates Serial communications
attachInterrupt(0, count_function, RISING) //Interrupts are called on Rise of Input
pinMode(sensor, INPUT) //Sets sensor as input
counts= 0
rpm = 0
previoustime = 0 //Initialise the values
}
void loop()
{
delay(1000)//Update RPM every second
detachInterrupt(0) //Interrupts are disabled
rpm = 60*1000/(millis() - previoustime)*counts
previoustime = millis() //Resets the clock
counts= 0 //Resets the counter
Serial.print('RPM=')
Serial.println(rpm) //Calculated values are displayed
attachInterrupt(0, count_function, RISING) //Counter restarted
}
อัปโหลดรหัส
รู้รหัส
เครื่องวัดความเร็วรอบของเราใช้เซ็นเซอร์ Hall Effect เซ็นเซอร์ Hall Effect อิงตาม Hall effect ที่ตั้งชื่อตาม Edwin Hall ผู้ค้นพบ
Hall Effect เป็นปรากฏการณ์ของการสร้างแรงดันไฟฟ้าข้ามตัวนำที่มีกระแสไฟฟ้าเมื่อสนามแม่เหล็กถูกนำมาตั้งฉากกับการไหลของกระแสไฟฟ้า แรงดันไฟฟ้าที่สร้างขึ้นเนื่องจากปรากฏการณ์นี้ช่วยในการสร้างสัญญาณอินพุตดังที่กล่าวไว้ว่าจะใช้การขัดจังหวะในโครงการนี้เพื่อเรียกการขัดจังหวะเราต้องตั้งค่าเงื่อนไขบางอย่าง Arduino Uno มี 2 เงื่อนไขในการเรียก Interrupts-
RISING- เมื่อใช้สิ่งนี้อินเตอร์รัปต์จะถูกเรียกทุกครั้งเมื่อสัญญาณอินพุตเปลี่ยนจาก LOW ไปสูง
FALING - เมื่อใช้สิ่งนี้การขัดจังหวะจะถูกเรียกเมื่อสัญญาณจากสูงไปต่ำ
เราได้ใช้ RISING สิ่งที่เกิดขึ้นคือเมื่อแม่เหล็กที่วางอยู่ในเพลาหรือวัตถุที่หมุนอยู่ใกล้กับ Hall detector สัญญาณอินพุตถูกสร้างขึ้นและมีการเรียก Interrupt เข้ามา Interrupt จะเริ่มฟังก์ชัน Interrupt Service Routine (ISR) ซึ่งรวมถึงการเพิ่มขึ้นของ ค่านับจึงเกิดขึ้น
เราได้ใช้ฟังก์ชัน millis () ของ Arduino และ previoustime (ตัวแปร) เพื่อตั้งค่าตัวจับเวลา
ในที่สุด RPM จึงถูกคำนวณโดยใช้ความสัมพันธ์ทางคณิตศาสตร์ -
RPM = จำนวน / เวลาที่ใช้การแปลงมิลลิวินาทีเป็นนาทีและการจัดเรียงใหม่ที่เราได้รับเป็นสูตร = 60 * 1000 / (มิลลิวินาที () - previoustime) * นับ
การหน่วงเวลา (1,000) กำหนดช่วงเวลาหลังจากนั้นค่าของ RPM จะได้รับการอัปเดตบนหน้าจอคุณสามารถปรับการหน่วงเวลานี้ได้ตามความต้องการของคุณ
ค่าของ RPM ที่ได้รับนี้สามารถใช้เพิ่มเติมเพื่อคำนวณความเร็วสัมผัสของวัตถุที่หมุนได้โดยใช้ความสัมพันธ์ - v = (3.14 * D * N) / 60 m / s
ค่าของ RPM ยังสามารถใช้ในการคำนวณระยะทางที่เดินทางโดยล้อหมุนหรือแผ่นดิสก์
แทนที่จะพิมพ์ค่าไปยังจอภาพอนุกรมอุปกรณ์นี้สามารถใช้ประโยชน์ได้มากขึ้นโดยเชื่อมต่อจอ LCD (16 * 2) และแบตเตอรี่เพื่อการใช้งานที่ดีขึ้น
คู่ของ: Stepper Motor Driver Circuit โดยใช้ IC 555 ถัดไป: วงจรมิเตอร์วัดความจุดิจิตอลโดยใช้ Arduino