이 프로젝트에서 우리는 ATMEGA8 마이크로 컨트롤러를 사용하여 저 범위 전류계 를 만들 것 입니다. ATMEGA8에서는이를 위해 10 비트 ADC (Analog to Digital Conversion) 기능을 사용할 것입니다. 회로에서 전류 매개 변수를 얻는 다른 방법은 거의 없지만 저항성 강하 방법을 사용할 것입니다. 이는 전류 매개 변수를 얻는 가장 쉽고 간단한 방법이기 때문입니다.
이 방법에서 우리는 측정해야하는 전류를 작은 저항으로 전달할 것입니다.이를 통해 흐르는 전류와 관련된 저항을 가로 지르는 강하를 얻습니다. 저항을 가로 지르는이 전압은 ADC 변환을 위해 ATMEGA8에 공급됩니다. 이를 통해 16x2 LCD에 표시되는 디지털 값의 전류를 얻게됩니다.
이를 위해 전압 분배기 회로를 사용할 것입니다. 우리는 완전한 저항 브랜치를 통해 전류를 공급할 것입니다. 분기의 중간 점을 측정합니다. 전류가 변하면 그것에 선형 인 저항의 하락 변화가있을 것입니다. 그래서 이것으로 우리는 선형성에 따라 변하는 전압을 갖게됩니다.
여기서 주목해야 할 중요한 점은 ADC 변환을 위해 컨트롤러가 취하는 입력이 50µAmp만큼 낮다는 것입니다. 저항 기반 전압 분배기의 이러한 부하 효과는 전압 분배기의 Vout에서 끌어온 전류가 오류 비율을 증가시키기 때문에 중요합니다. 지금은 부하 효과에 대해 걱정할 필요가 없습니다.
필요한 구성 요소
하드웨어: ATMEGA8, 전원 공급 장치 (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF 커패시터, 100nF 커패시터 (4 개), 100Ω 저항 (7 개) 또는 2.5Ω (2 개), 100KΩ 저항.
소프트웨어: Atmel studio 6.1, progisp 또는 flash magic.
회로도 및 작동 설명
R2와 R4의 전압은 완전히 선형이 아닙니다. 시끄러울 것입니다. 노이즈를 필터링하기 위해 그림과 같이 분배기 회로의 각 저항에 커패시터를 배치합니다.
ATMEGA8에서는 PORTC의 4 개 채널 중 하나에 아날로그 입력을 제공 할 수 있습니다. 모든 채널이 동일하므로 어떤 채널을 선택하든 상관 없습니다. PORTC의 채널 0 또는 PIN0을 선택하겠습니다. ATMEGA8에서 ADC는 10 비트 분해능이므로 컨트롤러는 Vref / 2 ^ 10의 최소 변화를 감지 할 수 있으므로 기준 전압이 5V이면 5 / 2 ^ 10 = 5mV마다 디지털 출력 증분을 얻습니다. 따라서 입력이 5mV 증가 할 때마다 디지털 출력에서 1 씩 증가합니다.
이제 다음 용어에 따라 ADC 레지스터 를 설정 해야합니다.
1. 먼저 ADC에서 ADC 기능을 활성화해야합니다.
2. ADC 변환을위한 최대 입력 전압은 + 5V입니다. 따라서 ADC의 최대 값 또는 레퍼런스를 5V로 설정할 수 있습니다.
3. 컨트롤러에는 ADC 변환이 외부 트리거 후에 만 발생한다는 것을 의미하는 트리거 변환 기능이 있습니다. ADC가 연속 자유 실행 모드에서 실행되도록 레지스터를 설정할 필요가 없기 때문입니다.
4. 모든 ADC의 경우 변환 빈도 (아날로그 값에서 디지털 값으로)와 디지털 출력의 정확도는 반비례합니다. 따라서 디지털 출력의 정확도를 높이려면 더 낮은 주파수를 선택해야합니다. 정상적인 ADC 클럭의 경우 ADC 사전 판매를 최대 값 (2)으로 설정합니다. 1MHZ의 내부 클럭을 사용하고 있기 때문에 ADC 클럭은 (1000000/2)가됩니다.
ADC를 시작하기 위해 알아야 할 4 가지 사항은 이것뿐입니다.
위의 네 가지 기능은 모두 두 개의 레지스터로 설정됩니다.
빨간색 (ADEN): ATMEGA의 ADC 기능을 활성화하려면이 비트를 설정해야합니다.
BLUE (REFS1, REFS0):이 두 비트는 기준 전압 (또는 우리가 제공 할 최대 입력 전압)을 설정하는 데 사용됩니다. 기준 전압을 5V로하고 싶기 때문에 표에 따라 REFS0을 설정해야합니다.
노란색 (ADFR): ADC가 계속 실행되도록하려면이 비트를 설정해야합니다 (자유 실행 모드).
PINK (MUX0-MUX3):이 4 비트는 입력 채널을 알리기위한 것입니다. ADC0 또는 PIN0을 사용할 것이므로 테이블과 같이 비트를 설정할 필요가 없습니다.
BROWN (ADPS0-ADPS2):이 세 비트는 ADC의 프리 스칼라를 설정하기위한 것입니다. 2의 프리 스칼라를 사용하고 있으므로 1 비트를 설정해야합니다.
DARK GREEN (ADSC): ADC가 변환을 시작하도록이 비트를 설정합니다. 이 비트는 변환을 중지해야 할 때 프로그램에서 비활성화 할 수 있습니다.