Mục lục:
- Bước 1: Các thành phần cần thiết
- Bước 2: Sơ đồ
- Bước 3: Tìm hiểu mạch
- Bước 4: Tính toán tần số và điện áp
- Bước 5: Mã Arduino
- Bước 6: Kết luận
Video: Đo tần số và điện áp của nguồn điện bằng Arduino: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
Giới thiệu:
Mục tiêu của dự án này là đo tần số và điện áp cung cấp, nằm trong khoảng từ 220 đến 240 Volts và 50Hz tại Ấn Độ. Tôi đã sử dụng Arduino để bắt tín hiệu và tính toán tần số và điện áp, bạn có thể sử dụng bất kỳ vi điều khiển hoặc bo mạch nào khác mà bạn có. Mạch yêu cầu một số ít các thành phần và khá chính xác cho tất cả các mục đích thực tế.
Bước 1: Các thành phần cần thiết
- Arduino Uno
- IC LM358
- Biến áp bước xuống (220V xuống 12V)
-
Tụ điện:
- 0,1uF
- 2 x 1uF
-
Điện trở:
- 3 x 1kOhm
- 2 x 100kOhm
- 1.5kOhm
- 3,3kOhm
- 6,8kOhm
- 3 x 1N4148 diode
- Bảng mạch bánh mì và dây Jumper (tùy chọn)
Bước 2: Sơ đồ
Trong mạch trên, sơ cấp của máy biến áp được kết nối với nguồn điện cung cấp và sơ cấp được kết nối với mạch đo của chúng tôi
Bước 3: Tìm hiểu mạch
Theo chức năng, mạch này có thể được chia thành bốn phần:
A: Mạch phát hiện cắt ngang 0
Mạch này tạo ra một xung vuông 5V bất cứ khi nào sóng sinewave đi từ dương sang âm. Điện trở R1 kết hợp với D1 và D2 giới hạn dao động điện áp đầu vào tại điểm giao nhau điốt là -0,6V đến + 5,6V (giả sử điện áp chuyển tiếp của diode là 0,6V). Hơn nữa, bạn có thể tăng dải điện áp đầu vào của mạch bằng cách tăng giá trị của R1.
Điện trở R2 và R3 tạo thành một bộ phân áp để giới hạn dao động điện áp âm xuống -0,24Volt vì điện áp chế độ chung đầu vào của LM358 được giới hạn ở -0,3Volt.
Điện trở R4, R5, tụ điện C1 và op-amp (ở đây được sử dụng như một bộ so sánh) tạo thành mạch Schmitt Trigger trong đó điện trở R4 và R5 đặt độ trễ ở đầu vào + 49,5mV so với mặt đất. Đầu ra của Schmitt Trigger được cấp cho Arduino PIN2 để xử lý thêm.
B: Cách ly và giảm điện áp
Như tên cho thấy phần này cô lập và giảm điện áp xuống khoảng 12Vrms. Điện áp bước xuống được tiếp tục cấp cho mạch thiết bị đo.
C: Mạch dò đỉnh
Mạch này xác định điện áp đỉnh tối đa của tín hiệu đầu vào. Bộ chia điện trở R6 và R7 giảm điện áp đầu vào một hệ số 0,23 (12Vrms được giảm xuống 2,76Vrms). Diode D3 chỉ dẫn nửa chu kỳ tích cực của tín hiệu. Điện áp trên C2 tăng lên đến giá trị đỉnh của tín hiệu đã được chỉnh lưu, được đưa đến chân A0 tương tự của Arduino để tính toán thêm điện áp.
Ngoài ra, bạn có thể thay thế mạch này bằng một mạch dò đỉnh chính xác như được đề cập ở đây. Nhưng đối với mục đích trình diễn của tôi, mạch trên sẽ là đủ.
D: Arduino
Trong phần này, Arduino bắt các xung vuông được tạo ra bởi mạch Schmitt Trigger và đọc điện áp tương tự từ mạch dò đỉnh. Dữ liệu được tiếp tục xử lý để xác định khoảng thời gian (do đó tần số) của xung vuông (bằng với thời gian của nguồn cung cấp xoay chiều) và điện áp của nguồn cung cấp.
Bước 4: Tính toán tần số và điện áp
Tính toán tần số:
Với sự trợ giúp của Arduino, chúng ta có thể đo khoảng thời gian T của tín hiệu. Các xung sóng vuông từ bộ tách sóng 0 được đưa đến chân 2, từ đó chúng ta có thể đo khoảng thời gian của mỗi xung. Chúng ta có thể sử dụng bộ đếm thời gian bên trong của Arduino (cụ thể là Timer1) để tính toán khoảng thời gian giữa hai cạnh Tăng của xung vuông với sự trợ giúp của các ngắt. Bộ đếm thời gian tăng 1 mỗi chu kỳ đồng hồ (không có bộ đếm trước = 1) và giá trị được lưu trong thanh ghi TCNT1. Do đó, xung nhịp 16Mhz tăng bộ đếm lên 16 mỗi micro giây. Tương tự như vậy đối với prescaler = 8, bộ đếm thời gian được tăng thêm 2 mỗi micro giây. Do đó khoảng thời gian giữa hai cạnh tăng
T = (giá trị TCNT1) / thời gian thực hiện cho mỗi lần đếm
Trong đó, thời gian thực hiện cho mỗi lần đếm = prescaler / (Tốc độ xung nhịp Arduino (16MHz)
Do đó, tần số f = 1 / T = (Tốc độ xung nhịp Arduino (16MHz) / (Prescaler * giá trị TCNT!)
Do đó, tốc độ bộ hẹn giờ (Hz) được cung cấp bởi = (tốc độ đồng hồ Arduino (16MHz)) / bộ định mức
và tần số của tín hiệu được cho bởi = (tốc độ đồng hồ Arduino
Tương ứng, chúng ta có thể tính tần số f từ quan hệ f = 1 / T.
Tính toán điện áp:
ADC tích hợp của Arduino có độ phân giải 10 bit (giá trị có thể = 2 ^ 10 = 1024), trả về giá trị trong khoảng 0-1023. Để tính toán điện áp tương tự V tương ứng, chúng ta phải sử dụng quan hệ sau
V = (ADC Reading) * 5/1023
Để tính toán điện áp cung cấp Vs (rms), chúng ta phải tính đến Tỷ lệ biến áp, Bộ chia điện trở R6R7 và mạch dò đỉnh. Chúng ta có thể chỉ cần tổng hợp các yếu tố / tỷ lệ khác nhau như:
Tỷ lệ biến áp = 12/230 = 0,052
Bộ chia điện trở = R7 / (R6 + R7) = 0,23
Tại mạch dò đỉnh = 1.414
Vs (rms) = V / (1.414 * 0.052 * 0.23) = (ADC Reading) * 0.289
Cần lưu ý rằng giá trị này khác xa giá trị thực, chủ yếu là do sai số trong tỷ lệ biến áp thực tế và sự sụt giảm điện áp chuyển tiếp của diode. Một cách để phá vỡ điều này là xác định yếu tố sau khi lắp ráp mạch. Đó là bằng cách đo điện áp nguồn và điện áp trên tụ C2 riêng biệt bằng đồng hồ vạn năng, sau đó tính Vs (rms) như sau:
Vs (rms) = ((Điện áp cung cấp * 5) / (Điện áp trên C2 * 1023)) * (Đọc ADC)
trong trường hợp của tôi, Vs (rms) = 0,33 * (ADC Reading)
Bước 5: Mã Arduino
#define volt_in A0 // chân đọc điện áp tương tự
uint16_t t_period dễ bay hơi; uint16_t ADC_value = 0; float volt, freq; void isr () {t_period = TCNT1; // lưu trữ giá trị TCNT1 trong t_period TCNT1 = 0; // đặt lại Timer1 ADC_value = analogRead (volt_in); // đọc điện áp tương tự} float get_freq () {uint16_t timer = t_period; if (timer == 0) return 0; // để tránh chia cho 0 else return 16000000.0 / (8UL * timer); // tần số được cho bởi f = clk_freq / (prescaler * timeperiod)} void setup () {TCCR1A = 0; TCCR1B = bit (CS11); // đặt prescaler thành 8 TCNT1 = 0; // đặt lại giá trị Timer1 TIMSK1 = bit (TOIE1); // cho phép ngắt tràn Timer1 EIFR | = bit (INTF0); // xóa cờ ngắt INT0 Serial.begin (9600); } void loop () {attachmentInterrupt (0, isr, RISING); // cho phép ngắt ngoài (INT0) delay (1000); detachInterrupt (0); freq = get_freq (); vôn = ADC_value * 0,33; Chuỗi buf; buf + = String (freq, 3); buf + = F ("Hz / t"); buf + = String (vôn); buf + = F ("Vôn"); Serial.println (buf); }
Bước 6: Kết luận
Bạn có thể lắp ráp mạch trong breadboard và chỉnh sửa mã và thêm thẻ SD để lưu trữ dữ liệu, sau này có thể phân tích dữ liệu này. Một ví dụ như vậy là, bạn có thể phân tích điện áp và tần số vào giờ cao điểm.
Mạch mà tôi lắp ráp trong breadboard được sử dụng LM324 (quad opamp) thay vì LM358 (dual opamp) vì tôi không có IC đó tại thời điểm đó và việc khóa toàn quốc do đại dịch COVID-19 khiến tôi gặp khó khăn trong việc lấy IC mới.. Tuy nhiên, nó sẽ không ảnh hưởng đến hoạt động của mạch.
Vui lòng bình luận bên dưới nếu có bất kỳ đề xuất và thắc mắc nào.
Đề xuất:
Đo tần số nguồn bằng Arduino: 7 bước (có hình ảnh)
Đo tần số chính bằng Arduino: Vào ngày 3 tháng 4, Thủ tướng Ấn Độ, Shri. Narendra Modi đã kêu gọi người Ấn Độ tắt đèn và thắp đèn (Diya) vào lúc 9 giờ tối ngày 5 tháng 4 để đánh dấu cuộc chiến chống lại Virus Corona của Ấn Độ. Ngay sau khi thông báo, đã có một sự hỗn loạn lớn
Cấp nguồn cho điện thoại di động / điện thoại di động bằng pin hoặc nguồn bên ngoài.: 3 bước
Cấp nguồn cho điện thoại di động / di động bằng pin hoặc nguồn bên ngoài.: Giới thiệu. Ý tưởng này sẽ chỉ hoạt động với điện thoại hoặc máy tính bảng nếu pin có thể tháo rời. Tất nhiên, quan sát cực là quan trọng. Hãy cẩn thận để không làm hỏng thiết bị của bạn do bất cẩn. Nếu bạn không chắc chắn về khả năng của mình để làm điều này, hãy
Nguồn điện 220V đến 24V 15A - Chuyển đổi nguồn điện - IR2153: 8 bước
Nguồn điện 220V đến 24V 15A | Chuyển đổi nguồn điện | IR2153: Xin chào anh bạn hôm nay chúng tôi sản xuất Nguồn điện 220V thành 24V 15A | Chuyển đổi nguồn điện | IR2153 từ nguồn điện ATX
Tăng tốc kết nối Internet (vệ tinh của Dad) của bạn với bộ định tuyến không dây băng tần kép: 10 bước
Tăng tốc độ kết nối Internet (vệ tinh của Dad) của bạn với bộ định tuyến không dây băng tần kép: Xin chào. Vui lòng xem https://www.instructables.com/id/How-To-Make-Bath-Bombs/ Tôi có thể sẽ sớm đưa thông tin này lên blog cá nhân
Loại bỏ nguồn điện ở chế độ chờ bằng công tắc nguồn dành cho máy tính để bàn!: 7 bước (có hình ảnh)
Loại bỏ nguồn điện ở chế độ chờ bằng công tắc nguồn dành cho máy tính để bàn !: Tất cả chúng ta đều biết điều đó đang xảy ra. Ngay cả khi các thiết bị của bạn (TV, máy tính, loa, ổ cứng ngoài, màn hình, v.v.) được " TẮT, " chúng vẫn đang bật, ở chế độ chờ, gây lãng phí điện năng. Một số TV plasma thực sự sử dụng nhiều năng lượng hơn trong