Mạch đo tốc độ Arduino cho các bài đọc chính xác

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Máy đo tốc độ là một thiết bị đo RPM hoặc vận tốc góc của một vật quay. Nó khác với đồng hồ tốc độ và đồng hồ đo quãng đường vì những thiết bị này xử lý vận tốc tuyến tính hoặc tiếp tuyến của cơ thể trong khi máy đo tốc độ a.k.a. 'tach' xử lý RPM cơ bản hơn.

Bởi Ankit Negi



Máy đo tốc độ bao gồm một bộ đếm và một bộ đếm thời gian, cả hai hoạt động cùng nhau sẽ cung cấp RPM. .

Điều kiện tiên quyết

Bộ đếm không là gì ngoài một thiết bị hoặc thiết lập có thể đếm bất kỳ sự kiện thường xuyên nào xảy ra như chuyển một chấm trong đĩa khi đang quay. Ban đầu các bộ đếm được chế tạo bằng cách sử dụng sự sắp xếp và liên kết cơ học như bánh răng, bánh cóc, lò xo, v.v.



Nhưng bây giờ chúng ta đang sử dụng bộ đếm có nhiều cảm biến và thiết bị điện tử phức tạp và chính xác cao hơn. Mimer là một phần tử điện tử có thể đo khoảng thời gian giữa các sự kiện hoặc đo thời gian.

Trong Arduino Uno của chúng tôi có các bộ đếm thời gian không chỉ theo dõi thời gian mà còn duy trì một số chức năng quan trọng của Arduino. Trong Uno chúng ta có 3 bộ định thời tên là Timer0, Timer1 và Timer2. Các bộ định thời này có các chức năng sau- • Timer0- Đối với các hàm Uno như delay (), millis (), micros () hoặc delaymicros ().

• Timer1- Đối với hoạt động của thư viện servo.

• Timer2- Đối với các chức năng như tone (), notone ().

Cùng với các chức năng này, 3 bộ định thời này cũng chịu trách nhiệm tạo ra Đầu ra PWM khi lệnh analogWrite () được sử dụng trong chân chỉ định PMW.

Khái niệm về ngắt

Trong Arduino Uno có một công cụ ẩn có thể cung cấp quyền truy cập vào toàn bộ hoạt động cho chúng ta được gọi là Ngắt bộ hẹn giờ. Ngắt là một tập hợp các sự kiện hoặc hướng dẫn được thực thi khi được gọi là làm gián đoạn hoạt động hiện tại của thiết bị mã Uno của bạn đã được thực thi trước đó nhưng khi một Ngắt được gọi là Arduino thực hiện lệnh được đề cập trong Ngắt.

nam châm trên trục động cơ

Giờ đây, Interrupt có thể được gọi ở một số điều kiện nhất định do người dùng xác định bằng Cú pháp Arduino có sẵn.

Các thành phần cần thiết cho dự án Máy đo tốc độ sử dụng Arduino

• Cảm biến hiệu ứng Hall (Hình 1)

mô-đun cảm biến hiệu ứng hội trường

• Arduino Uno

Bo mạch Arduino UNO

• Nam châm nhỏ

nam châm nhỏ

• Dây nhảy

• Vật thể quay (Trục động cơ)

Động cơ DC

Thiết lập mạch

• Thiết lập để tạo như sau-

• Trong trục cần đo tốc độ quay được gắn một nam châm nhỏ bằng súng bắn keo hoặc băng dính điện.

• Cảm biến Hall Effect có một đầu dò ở phía trước và 3 chân để kết nối.

• Các chân Vcc và Gnd được kết nối tương ứng với chân 5V và Gnd của Arduino. Chân đầu ra của cảm biến được kết nối với chân số 2 của Uno để cung cấp tín hiệu đầu vào.

• Tất cả các thành phần được cố định trong bảng gắn kết và máy dò Hall được chỉ ra từ bảng.

Lập trình

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
}

Tải lên mã.

Biết mã

Máy đo tốc độ của chúng tôi sử dụng Cảm biến Hiệu ứng Hall Cảm biến Hiệu ứng Hall dựa trên hiệu ứng Hall được đặt theo tên người phát hiện ra nó là Edwin Hall.

Hiệu ứng Hall là hiện tượng tạo ra hiệu điện thế trên dây dẫn mang dòng điện khi đặt một từ trường vuông góc với dòng điện chạy qua. Điện áp tạo ra do hiện tượng này giúp tạo tín hiệu đầu vào Như đã đề cập Ngắt sẽ được sử dụng trong dự án này, để gọi Ngắt chúng ta phải thiết lập một số điều kiện. Arduino Uno có 2 điều kiện để gọi Ngắt-

RISING- Khi được sử dụng, ngắt được gọi mỗi khi tín hiệu đầu vào đi từ THẤP đến CAO.

FALING-Khi được sử dụng, ngắt được gọi khi tín hiệu đi từ CAO đến THẤP.

Chúng tôi đã sử dụng RISING, điều xảy ra là khi nam châm đặt trong trục hoặc vật thể quay đến gần máy dò Hall Tín hiệu đầu vào được tạo ra và ngắt được gọi vào, ngắt bắt đầu chức năng Quy trình Dịch vụ Ngắt (ISR), bao gồm tăng giá trị đếm và do đó quá trình đếm diễn ra.

Chúng tôi đã sử dụng hàm millis () của Arduino và beforetime (biến) tương ứng để thiết lập bộ đếm thời gian.

Do đó, RPM cuối cùng được tính bằng quan hệ toán học-

RPM = Đếm / Thời gian thực hiện Chuyển đổi mili giây thành phút và sắp xếp lại, chúng ta có công thức = 60 * 1000 / (milis () - trước đó) * số đếm.

Độ trễ (1000) xác định khoảng thời gian mà sau đó giá trị của RPM sẽ được cập nhật trên màn hình, bạn có thể điều chỉnh độ trễ này theo nhu cầu của mình.

Giá trị RPM thu được này có thể được sử dụng thêm để tính vận tốc tiếp tuyến của vật thể quay bằng quan hệ- v = (3,14 * D * N) / 60 m / s.

Giá trị của RPM cũng có thể được sử dụng để tính toán khoảng cách di chuyển của một bánh xe hoặc đĩa quay.

Thay vì in các giá trị vào màn hình nối tiếp, thiết bị này có thể hữu ích hơn bằng cách kết nối màn hình LCD (16 * 2) và pin để sử dụng tốt hơn.




Một cặp: Mạch điều khiển động cơ bước sử dụng IC 555 Tiếp theo: Mạch đo điện dung kỹ thuật số sử dụng Arduino