- Các thành phần bắt buộc:
- Sơ đồ mạch:
- Arduino Uno:
- LCD 16x2:
- Khái niệm về mã màu kháng:
- Tính toán điện trở bằng Arduino Ohm Meter:
- Giải thích mã:
Chúng ta khó đọc mã màu trên điện trở để tìm điện trở của nó. Để khắc phục khó khăn trong việc tìm giá trị điện trở, chúng ta sẽ xây dựng một Ohm Meter đơn giản bằng Arduino. Nguyên tắc cơ bản đằng sau dự án này là Mạng phân chia điện áp. Giá trị của điện trở không xác định được hiển thị trên màn hình LCD 16 * 2. Dự án này cũng đóng vai trò là giao diện màn hình LCD 16 * 2 với Arduino.
Các thành phần bắt buộc:
- Arduino Uno
- Màn hình LCD 16 * 2
- Chiết áp (1 kilo Ohm)
- Điện trở
- Breadboard
- Dây nhảy
Sơ đồ mạch:
Arduino Uno:
Arduino Uno là một bo mạch vi điều khiển mã nguồn mở dựa trên vi điều khiển ATmega328p. Nó có 14 chân kỹ thuật số (trong đó 6 chân có thể được sử dụng làm đầu ra PWM), 6 đầu vào tương tự, bộ điều chỉnh điện áp trên bo mạch, v.v. Arduino Uno có 32KB bộ nhớ flash, 2KB SRAM và 1KB EEPROM. Nó hoạt động ở tần số xung nhịp 16MHz. Arduino Uno hỗ trợ giao tiếp Serial, I2C, SPI để giao tiếp với các thiết bị khác. Bảng dưới đây cho thấy thông số kỹ thuật của Arduino Uno.
Vi điều khiển | ATmega328p |
Điện áp hoạt động | 5V |
Điện áp đầu vào | 7-12V (khuyến nghị) |
Chân I / O kỹ thuật số | 14 |
Chân analog | 6 |
Bộ nhớ flash | 32KB |
SRAM | 2KB |
EEPROM | 1KB |
Tốc độ đồng hồ |
16MHz |
LCD 16x2:
LCD 16 * 2 là màn hình được sử dụng rộng rãi cho các ứng dụng nhúng. Dưới đây là giải thích ngắn gọn về các chân và hoạt động của màn hình LCD 16 * 2. Có hai thanh ghi rất quan trọng bên trong màn hình LCD. Chúng là thanh ghi dữ liệu và thanh ghi lệnh. Thanh ghi lệnh được sử dụng để gửi các lệnh như hiển thị rõ ràng, con trỏ ở nhà, v.v., thanh ghi dữ liệu được sử dụng để gửi dữ liệu được hiển thị trên màn hình LCD 16 * 2. Bảng bên dưới hiển thị mô tả chân của màn hình LCD 16 * 2.
Ghim |
Biểu tượng |
I / O |
Sự miêu tả |
1 |
Vss |
- |
Đất |
2 |
Vdd |
- |
Nguồn điện + 5V |
3 |
Vee |
- |
Nguồn cung cấp để kiểm soát độ tương phản |
4 |
RS |
Tôi |
RS = 0 cho thanh ghi lệnh, RS = 1 cho thanh ghi dữ liệu |
5 |
RW |
Tôi |
R / W = 0 để ghi, R / W = 1 để đọc |
6 |
E |
I / O |
Kích hoạt |
7 |
D0 |
I / O |
Bus dữ liệu 8-bit (LSB) |
số 8 |
D1 |
I / O |
Xe buýt dữ liệu 8 bit |
9 |
D2 |
I / O |
Xe buýt dữ liệu 8 bit |
10 |
D3 |
I / O |
Xe buýt dữ liệu 8 bit |
11 |
D4 |
I / O |
Xe buýt dữ liệu 8 bit |
12 |
D5 |
I / O |
Xe buýt dữ liệu 8 bit |
13 |
D6 |
I / O |
Xe buýt dữ liệu 8 bit |
14 |
D7 |
I / O |
Bus dữ liệu 8 bit (MSB) |
15 |
A |
- |
+ 5V cho đèn nền |
16 |
K |
- |
Đất |
Khái niệm về mã màu kháng:
Để xác định giá trị của điện trở, chúng ta có thể sử dụng công thức dưới đây.
R = {(AB * 10 c) Ω ± T%}
Ở đâu
A = Giá trị của màu trong dải đầu tiên.
B = Giá trị của màu trong dải thứ hai.
C = Giá trị của màu trong dải thứ ba.
T = Giá trị của màu trong dải thứ tư.
Bảng dưới đây cho thấy mã màu của điện trở.
Màu sắc |
Giá trị số của màu |
Hệ số nhân (10 c) |
Giá trị dung sai (T) |
Đen |
0 |
10 0 |
- |
nâu |
1 |
10 1 |
± 1% |
Đỏ |
2 |
10 2 |
± 2% |
trái cam |
3 |
10 3 |
- |
Màu vàng |
4 |
10 4 |
- |
màu xanh lá |
5 |
10 5 |
- |
Màu xanh da trời |
6 |
10 6 |
- |
màu tím |
7 |
10 7 |
- |
Màu xám |
số 8 |
10 8 |
- |
trắng |
9 |
10 9 |
- |
Vàng |
- |
10 -1 |
± 5% |
Bạc |
- |
10 -2 |
± 10% |
Không có ban nhạc |
- |
- |
± 20% |
Ví dụ: nếu mã màu là Nâu - Xanh lục - Đỏ - Bạc, giá trị của điện trở được tính là, Nâu = 1 Xanh lá = 5 Đỏ = 2 Bạc = ± 10%
Từ ba dải đầu tiên, R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
Dải thứ tư cho biết dung sai ± 10%
10% của 1500 = 150 Đối với + 10 phần trăm, giá trị là 1500 + 150 = 1650Ω Đối với - 10 phần trăm, giá trị là 1500 -150 = 1350Ω
Do đó, giá trị điện trở thực tế có thể nằm trong khoảng từ 1350Ω đến 1650Ω.
Để thuận tiện hơn ở đây là Máy tính mã màu điện trở, nơi bạn chỉ cần nhập màu của các vòng trên điện trở và bạn sẽ nhận được giá trị điện trở.
Tính toán điện trở bằng Arduino Ohm Meter:
Hoạt động của Đồng hồ đo điện trở này rất đơn giản và có thể được giải thích bằng cách sử dụng mạng chia điện áp đơn giản được hiển thị bên dưới.
Từ mạng phân áp gồm các điện trở R1 và R2, Vout = Vin * R2 / (R1 + R2)
Từ phương trình trên, chúng ta có thể suy ra giá trị của R2 là
R2 = Vout * R1 / (Vin - Vout)
Trong đó R1 = điện trở đã biết
R2 = Điện trở không xác định
Vin = điện áp được tạo ra tại chân 5V của Arduino
Vout = điện áp tại R2 so với đất.
Lưu ý: giá trị của điện trở đã biết (R1) được chọn là 3,3KΩ, nhưng người dùng nên thay thế nó bằng giá trị điện trở của điện trở họ đã chọn.
Vì vậy, nếu chúng ta nhận được giá trị của điện áp trên điện trở chưa biết (Vout), chúng ta có thể dễ dàng tính được điện trở chưa biết R2. Ở đây chúng ta đã đọc giá trị điện áp Vout bằng cách sử dụng chân analog A0 (xem sơ đồ mạch) và chuyển đổi các giá trị kỹ thuật số đó (0 -1023) thành điện áp như được giải thích trong Mã bên dưới.
Nếu giá trị của Điện trở đã biết lớn hơn hoặc nhỏ hơn nhiều so với Điện trở chưa biết thì sai số sẽ nhiều hơn. Vì vậy người ta khuyên nên giữ giá trị điện trở đã biết gần với mức kháng cự chưa biết.
Giải thích mã:
Các hoàn thành chương trình Arduino và Demo Video cho dự án này được đưa ra vào cuối của dự án này. Mã được chia thành các đoạn nhỏ có ý nghĩa và được giải thích bên dưới.
Trong phần này của mã, chúng ta sẽ xác định các chân mà trên đó màn hình LCD 16 * 2 được kết nối với Arduino. Chân RS của LCD 16 * 2 được kết nối với chân số 2 của arduino. Chân kích hoạt của màn hình LCD 16 * 2 được kết nối với chân số 3 của Arduino. Các chân dữ liệu (D4-D7) của LCD 16 * 2 được kết nối với các chân kỹ thuật số 4,5,6,7 của Arduino.
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
Trong phần này của mã, chúng tôi đang xác định một số biến được sử dụng trong chương trình. Vin là điện áp do chân 5V của arduino cung cấp. Vout là điện áp tại điện trở R2 so với đất.
R1 là giá trị của điện trở đã biết. R2 là giá trị của điện trở chưa biết.
int Vin = 5; // điện áp ở chân 5V của arduino float Vout = 0; // điện áp tại chân A0 của arduino float R1 = 3300; // giá trị của điện trở đã biết float R2 = 0; // giá trị của điện trở không xác định
Trong phần này của mã, chúng ta sẽ khởi tạo màn hình LCD 16 * 2. Các lệnh được cung cấp cho màn hình LCD 16 * 2 cho các cài đặt khác nhau như màn hình rõ ràng, hiển thị khi con trỏ nhấp nháy, v.v.
lcd.begin (16,2);
Trong phần này của mã, điện áp tương tự tại điện trở R2 (chân A0) được chuyển đổi thành giá trị số (0 đến 1023) và được lưu trữ trong một biến.
a2d_data = analogRead (A0);
Trong phần này của mã, giá trị số (0 đến 1023) được chuyển đổi thành điện áp để tính toán thêm.
buffer = a2d_data * Vin; Vout = (bộ đệm) /1024.0;
Các Arduino Uno ADC có độ phân giải 10-bit (do đó các giá trị số nguyên 0-2 ^ 10 = 1024 giá trị). Điều này có nghĩa là nó sẽ ánh xạ điện áp đầu vào từ 0 đến 5 volt thành các giá trị nguyên từ 0 đến 1023. Vì vậy, nếu chúng ta nhân anlogValue đầu vào với (5/1024), thì chúng ta sẽ nhận được giá trị số của điện áp đầu vào. Tìm hiểu tại đây cách sử dụng đầu vào ADC trong Arduino.
Trong phần này của mã, giá trị thực của điện trở chưa biết được tính bằng quy trình như đã giải thích ở trên.
đệm = Vout / (Vin-Vout); R2 = R1 * đệm;
Trong phần này của mã, giá trị của điện trở không xác định được in trên màn hình LCD 16 * 2.
lcd.setCursor (4,0); lcd.print ("ohm mét"); lcd.setCursor (0,1); lcd.print ("R (ohm) ="); lcd.print (R2);
Đây là chúng ta có thể dễ dàng tính toán điện trở của một điện trở không xác định bằng cách sử dụng Arduino. Cũng kiểm tra:
- Máy đo tần số Arduino
- Máy đo điện dung Arduino