Arduino 기반 DC 전압계 회로 – 구성 세부 사항 및 테스트

문제를 제거하기 위해 도구를 사용해보십시오





이 게시물에서는 16x2 LCD에 판독 값이 표시되는 Arduino를 사용하여 DC 전압계를 구성 할 것입니다.



제안 된 전압계 설계는 +/- 0.5V의 허용 오차로 최대 30V를 읽을 수 있습니다. 이 설정이 어떻게 작동하는지 살펴보고 전압 측정 외에 달성 할 수있는 다른 가능성을 살펴 보겠습니다.



이 프로젝트는 매우 간단하며 초보자도 쉽게 수행 할 수 있지만 외부 전압을 적용 할 예정이므로 회로 프로토 타이핑시주의를 기울여야합니다. Arduino에 잘못 연결하면 보드에 치명적인 손상을 줄 수 있습니다.

경고를 옆으로두고 그것이 어떻게 작동하는지 살펴 보겠습니다.



여기서는 아날로그에서 디지털로의 변환 프로세스를 사용하고 있습니다. 모든 소스의 전압은 아날로그 기능이며 16x2 LCD에 표시되는 판독 값은 디지털 기능입니다.

문제는 이러한 아날로그 기능을 디지털 기능으로 변환하는 것입니다. 다행히 Arduino에는 아날로그 함수를 읽고 이산 함수로 변환하는 기능이 있습니다.

10 비트 아날로그 디지털 변환기 (ADC)가 장착 된 Arduino 마이크로 컨트롤러. 이것은 Arduino가 2 ^ 10 = 1024 개별 전압 레벨을 읽을 수 있음을 의미합니다.

즉, 아두 이노의 아날로그 핀에인가되는 전압은 LCD에 표시되는 기준 전압에 대해 1024 개의 개별 전압 레벨로 샘플링됩니다. 이것이이 전압계 또는 거의 모든 디지털 전압계의 원리입니다.

그러나인가 된 외부 전압은 Arduino에 의해 직접 측정되지 않습니다. 전압은 전압 분배기의 도움으로 강압되며 실제 전압 판독 값을 얻기 위해 프로그램에서 일부 수학이 수행됩니다.

작동 원리

회로는 두 개의 저항, 하나의 LCD 디스플레이와 디지털 전압계의 두뇌 인 Arduino로 구성됩니다. 두 저항은 전압 분배기 역할을하며 분배기의 노드는 입력 전압을 읽는 Arduino의 아날로그 핀 # A0에 연결됩니다. Arduino와 외부 전압 소스간에 접지 연결이 설정됩니다.

이 전압계로 측정 할 수있는 최소 전압은 0.1V이며,이 임계 값은 프로그램에 설정되어 있으므로 전압 소스를 분리 한 후 0.00V를 읽고 측정 프로브 주변의 정전기로 인해 판독 값을 표시하지 않습니다.

저자의 프로토 타입 :

Arduino 기반 DC 전압계 테스트 결과

전압을 측정하는 동안 극성을 바꾸지 마십시오. 회로에 해를 끼치지는 않지만 극성을 수정할 때까지 전압을 읽지 않고 0.00V를 표시합니다. 전위차계를 돌려 LCD 디스플레이의 대비를 최적의 수준으로 조정합니다.

30V 이상으로 스파이크 할 수있는 전압 소스를 적용하지 마십시오. Arduino 보드가 손상 될 수 있습니다. 기술적으로 저항 값을 변경하고 프로그램을 수정하여이 회로의 최대 측정 전압을 올릴 수 있지만 그림에 나와있는 설정의 경우 30V가 제한됩니다.

정확한 판독을 위해 최소 허용 오차 값을 가진 고정 저항을 선택하십시오. 저항은 전압 판독을 교정하는 데 중요한 역할을합니다.

회로도 :

Arduino 기반 DC 전압계 회로

이 전압계의 또 다른 가능성은 프로그램을 수정하여 일부 작업을 자동화 할 수 있다는 것입니다.

예를 들어, 전체 배터리 전압을 감지하고 충전기에서 배터리를 분리하거나 전압이 사전 설정된 전압 수준 이하로 떨어지면 배터리를 분리하는 등 LCD 디스플레이 없이도 이러한 작업을 수행 할 수 있습니다. 그러나 이것은 다른 기사의 주제입니다.

프로그램:

//--------Program developed by R.Girish---------//
#include
LiquidCrystal lcd(12,11,5,4,3,2)
int analogInput = 0
float vout = 0.0
float vin = 0.0
float R1 = 100000
float R2 = 10000
int value = 0
void setup()
{
pinMode(analogInput, INPUT)
lcd.begin(16, 2)
lcd.print('DC VOLTMETER')
Serial.begin(9600)
}
void loop()
{
value = analogRead(analogInput)
vout = (value * 5.0) / 1024
vin = vout / (R2/(R1+R2))
if (vin<0.10) {
vin=0.0
}
lcd.setCursor(0, 1)
lcd.print('INPUT V= ')
lcd.print(vin)
delay(500)
}
//--------Program developed by R.Girish---------//

좋은 전압계 / 멀티 미터로 판독 값을 확인하십시오.




이전 : 블루투스 자동차 점화 잠금 회로 – 열쇠가없는 자동차 보호 다음 : 문이 열렸을 때 경고하는 마그네틱 도어 보안 경보 회로