저항을 찾기 위해 저항기의 색상 코드를 읽는 것이 어렵습니다. 저항 값 찾기의 어려움을 극복하기 위해 Arduino를 사용하여 간단한 Ohm Meter 를 만들 것 입니다. 이 프로젝트의 기본 원리는 전압 분배기 네트워크입니다. 알 수없는 저항 값은 16 * 2 LCD 디스플레이에 표시됩니다. 이 프로젝트는 또한 Arduino와 인터페이스하는 16 * 2 LCD 디스플레이 역할을합니다.
필요한 구성 요소:
- Arduino Uno
- 16 * 2 LCD 디스플레이
- 전위차계 (1 킬로 옴)
- 저항기
- 브레드 보드
- 점퍼 와이어
회로도:
Arduino Uno:
Arduino Uno는 ATmega328p 마이크로 컨트롤러를 기반으로하는 오픈 소스 마이크로 컨트롤러 보드입니다. 14 개의 디지털 핀 (6 개의 핀은 PWM 출력으로 사용 가능), 6 개의 아날로그 입력, 온보드 전압 조정기 등이 있습니다. Arduino Uno에는 32KB의 플래시 메모리, 2KB의 SRAM 및 1KB의 EEPROM이 있습니다. 16MHz의 클럭 주파수에서 작동합니다. Arduino Uno는 다른 장치와 통신하기 위해 Serial, I2C, SPI 통신을 지원합니다. 아래 표는 Arduino Uno의 기술 사양을 보여줍니다.
마이크로 컨트롤러 | ATmega328p |
작동 전압 | 5V |
입력 전압 | 7-12V (권장) |
디지털 I / O 핀 | 14 |
아날로그 핀 | 6 |
플래시 메모리 | 32KB |
SRAM | 2KB |
EEPROM | 1KB |
시계 속도 |
16MHz |
16x2 LCD:
16 * 2 LCD는 임베디드 애플리케이션에 널리 사용되는 디스플레이입니다. 다음은 16 * 2 LCD 디스플레이의 핀 및 작동에 대한 간략한 설명입니다. LCD 내부에는 두 개의 매우 중요한 레지스터가 있습니다. 데이터 레지스터와 명령 레지스터입니다. 명령 레지스터는 클리어 디스플레이, 집의 커서 등과 같은 명령을 보내는 데 사용되며 데이터 레지스터는 16 * 2 LCD에 표시 될 데이터를 보내는 데 사용됩니다. 아래 표는 16 * 2 LCD의 핀 설명입니다.
핀 |
상징 |
I / O |
기술 |
1 |
대 |
- |
바닥 |
2 |
Vdd |
- |
+ 5V 전원 공급 장치 |
삼 |
Vee |
- |
대비를 제어하는 전원 공급 장치 |
4 |
RS |
나는 |
명령 레지스터의 경우 RS = 0, 데이터 레지스터 용 RS = 1 |
5 |
RW |
나는 |
쓰기의 경우 R / W = 0, 읽기의 경우 R / W = 1 |
6 |
이자형 |
I / O |
활성화 |
7 |
D0 |
I / O |
8 비트 데이터 버스 (LSB) |
8 |
D1 |
I / O |
8 비트 데이터 버스 |
9 |
D2 |
I / O |
8 비트 데이터 버스 |
10 |
D3 |
I / O |
8 비트 데이터 버스 |
11 |
D4 |
I / O |
8 비트 데이터 버스 |
12 |
D5 |
I / O |
8 비트 데이터 버스 |
13 |
D6 |
I / O |
8 비트 데이터 버스 |
14 |
D7 |
I / O |
8 비트 데이터 버스 (MSB) |
15 |
ㅏ |
- |
백라이트 용 + 5V |
16 |
케이 |
- |
바닥 |
저항 색상 코드의 개념:
저항 값을 확인하기 위해 아래 공식을 사용할 수 있습니다.
R = {(AB * 10 c) Ω ± T %}
어디
A = 첫 번째 밴드의 색상 값.
B = 두 번째 밴드의 색상 값.
C = 세 번째 밴드의 색상 값.
T = 네 번째 밴드의 색상 값.
아래 표는 저항기의 색상 코드를 보여줍니다.
색깔 |
색상의 수치 |
곱셈 계수 (10 c) |
공차 값 (T) |
검정 |
0 |
10 0 |
- |
갈색 |
1 |
10 1 |
± 1 % |
빨간 |
2 |
10 2 |
± 2 % |
주황색 |
삼 |
10 3 |
- |
노랑 |
4 |
10 4 |
- |
초록 |
5 |
10 5 |
- |
푸른 |
6 |
10 6 |
- |
제비꽃 |
7 |
10 7 |
- |
회색 |
8 |
10 8 |
- |
하얀 |
9 |
10 9 |
- |
금 |
- |
10 -1 |
± 5 % |
은 |
- |
(10) -2 |
± 10 % |
밴드 없음 |
- |
- |
± 20 % |
예를 들어 색상 코드가 Brown – Green – Red – Silver이면 저항 값은 다음과 같이 계산됩니다.
갈색 = 1 녹색 = 5 빨간색 = 2 은색 = ± 10 %
처음 세 밴드에서 R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
네 번째 밴드는 ± 10 %의 허용 오차를 나타냅니다.
1500의 10 % = 150 + 10 %의 경우 값은 1500 + 150 = 1650Ω-10 %의 경우 값은 1500-150 = 1350Ω입니다.
따라서 실제 저항 값은 1350Ω에서 1650Ω 사이입니다.
더 편리하게 여기에서 저항 색상 코드 계산기를 사용하면 저항기의 링 색상 만 입력하면 저항 값을 얻을 수 있습니다.
Arduino Ohm Meter를 사용하여 저항 계산:
이 저항 측정기 의 작동 은 매우 간단하며 아래 표시된 간단한 전압 분배기 네트워크를 사용하여 설명 할 수 있습니다.
저항 R1 및 R2의 전압 분배기 네트워크에서, Vout = Vin * R2 / (R1 + R2)
위의 방정식에서 R2의 값을 다음과 같이 추론 할 수 있습니다.
R2 = Vout * R1 / (Vin – Vout)
R1 = 알려진 저항
R2 = 알 수없는 저항
Vin = Arduino의 5V 핀에서 생성 된 전압
Vout = 접지에 대한 R2의 전압.
참고: 선택한 알려진 저항 (R1)의 값은 3.3KΩ이지만 사용자는 선택한 저항의 저항 값으로이를 교체해야합니다.
따라서 알 수없는 저항 (Vout)의 전압 값을 구하면 알 수없는 저항 R2를 쉽게 계산할 수 있습니다. 여기에서는 아날로그 핀 A0 (회로도 참조)을 사용하여 전압 값 Vout을 읽고 아래 코드에 설명 된대로 해당 디지털 값 (0-1023)을 전압으로 변환했습니다.
알려진 저항의 값이 알려지지 않은 저항보다 훨씬 크거나 작 으면 오류가 더 커집니다. 따라서 알려진 저항 값을 알려지지 않은 저항에 더 가깝게 유지하는 것이 좋습니다.
코드 설명:
이 프로젝트 의 전체 Arduino 프로그램과 데모 비디오 는이 프로젝트의 마지막에 제공됩니다. 코드는 의미있는 작은 청크로 분할되어 아래에 설명되어 있습니다.
코드의이 부분에서는 16 * 2 LCD 디스플레이가 Arduino에 연결된 핀 을 정의 할 것 입니다. 16 * 2 lcd의 RS 핀은 arduino의 디지털 핀 2에 연결됩니다. 16 * 2 lcd의 Enable 핀은 Arduino의 디지털 핀 3에 연결됩니다. 16 * 2 LCD의 데이터 핀 (D4-D7)은 Arduino의 디지털 핀 4,5,6,7에 연결됩니다.
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
이 코드 부분에서는 프로그램에서 사용되는 몇 가지 변수 를 정의 합니다. Vin은 arduino의 5V 핀에서 제공하는 전압입니다. Vout은 접지에 대한 저항 R2의 전압입니다.
R1은 알려진 저항 값입니다. R2는 알 수없는 저항의 값입니다.
int Vin = 5; // arduino의 5V 핀에서 전압 float Vout = 0; // arduino의 A0 핀에서 전압 float R1 = 3300; // 알려진 저항 값 float R2 = 0; // 알 수없는 저항 값
코드의이 부분에서는 16 * 2 LCD 디스플레이 를 초기화합니다. 명령은 화면 지우기, 커서 깜박임 표시 등과 같은 다양한 설정을 위해 16 * 2 LCD 디스플레이에 제공됩니다.
lcd.begin (16,2);
코드의이 부분 에서 저항 R2 (A0 핀) 의 아날로그 전압은 디지털 값 (0 ~ 1023)으로 변환되어 변수에 저장됩니다.
a2d_data = analogRead (A0);
코드의이 부분에서 디지털 값 (0 ~ 1023)은 추가 계산을 위해 전압으로 변환됩니다.
buffer = a2d_data * Vin; Vout = (버퍼) /1024.0;
의 Arduino 우노 ADC는 10 비트의 해상도 인 (- 2 ^ 10 = 1024의 값 0의 정수 값이므로). 즉, 0 ~ 5V 사이의 입력 전압을 0 ~ 1023 사이의 정수 값으로 매핑합니다. 따라서 입력 anlogValue 를 (5/1024)에 곱하면 입력 전압의 디지털 값을 얻습니다. Arduino에서 ADC 입력을 사용하는 방법을 여기에서 알아보십시오.
코드의이 부분에서는 위에서 설명한 절차를 사용하여 알 수없는 저항 의 실제 값을 계산 합니다.
buffer = Vout / (Vin-Vout); R2 = R1 * 버퍼;
코드의이 부분 에서 알 수없는 저항 값은 16 * 2 LCD 디스플레이 에 인쇄 됩니다.
lcd.setCursor (4,0); lcd.print ("옴 미터"); lcd.setCursor (0,1); lcd.print ("R (옴) ="); lcd.print (R2);
이것은 Arduino를 사용하여 알 수없는 저항의 저항을 쉽게 계산할 수 있다는 것입니다. 또한 다음을 확인하십시오.
- Arduino 주파수 측정기
- Arduino 커패시턴스 미터