이 프로젝트에서 우리는 LDR을 ATMEGA8 마이크로 컨트롤러와 인터페이스 할 것이며,이를 통해 해당 지역의 광도를 측정 할 수 있습니다. ATMEGA8에서는 10bit ADC (Analog to Digital Conversion) 기능을 사용하여 광도를 측정 할 것입니다.
Am LDR은 LIGHT가 표면에 떨어지면 저항을 변경하는 변환기입니다. LDR 센서는 다양한 크기와 모양으로 제공됩니다.
LDR은 반도체 재료로 만들어져 빛에 민감한 특성을 가질 수 있습니다. 사용되는 재료에는 여러 유형이 있지만 가장 많이 사용되는 재료는 CADMIUM SULPHIDE (CdS)입니다. 이러한 LDR 또는 PHOTO REISTOR 은 "Photo Conductivity"원칙에 따라 작동합니다. 이제이 원리가 말하는 것은 빛이 LDR의 표면에 떨어질 때마다 (이 경우) 소자의 전도도가 증가하거나, 즉 빛이 LDR의 표면에 떨어질 때 LDR의 저항이 감소한다는 것입니다. LDR에 대한 저항 감소의 이러한 특성은 표면에 사용되는 반도체 재료의 특성이기 때문에 달성됩니다. LDR은 빛의 존재를 감지하거나 빛 의 강도 를 측정하기 위해 대부분 사용됩니다.
위 그림과 같이 다양한 유형의 LDR이 있으며 각각 사양이 다릅니다. 일반적으로 LDR은 완전한 암흑에서 1MΩ-2MΩ, 10LUX에서 10-20KΩ, 100LUX에서 2-5KΩ입니다. LDR의 LUX 그래프에 대한 일반적인 저항이 그림에 나와 있습니다.
위 그림과 같이 센서의 두 접점 사이의 저항은 빛의 세기에 따라 감소하거나 센서의 두 접점 사이의 컨덕턴스가 증가합니다.
이제이 저항의 변화를 전압의 변화로 변환하기 위해 전압 분배기 회로 를 사용할 것 입니다. 이 저항 네트워크에는 하나의 일정한 저항과 다른 가변 저항이 있습니다. 그림에서 볼 수 있듯이 여기서 R1은 일정한 저항이고 R2는 저항 역할을하는 FORCE 센서입니다.
분기의 중간 점을 측정합니다. 저항 R2가 변하면 Vout도 선형으로 변합니다. 그래서 이것으로 우리는 무게에 따라 변하는 전압을가집니다.
여기서 주목해야 할 중요한 점은 ADC 변환을 위해 컨트롤러가 취하는 입력이 50µAmp만큼 낮다는 것입니다. 저항 기반 전압 분배기의 이러한 부하 효과는 전압 분배기의 Vout에서 끌어온 전류가 오류 비율을 증가시키기 때문에 중요합니다. 지금은 부하 효과에 대해 걱정할 필요가 없습니다.
여기서 우리가 할 것은 두 개의 저항을 가지고 분배기 회로를 형성하여 25V Vin에 대해 5V Vout을 얻는 것입니다. 따라서 실제 입력 전압을 얻기 위해 프로그램에서 Vout 값에 "5"를 곱하면됩니다.
구성품
하드웨어: ATMEGA8, 전원 공급 장치 (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF 커패시터, 100nF 커패시터 (5 개), 10KΩ 저항, LDR (Light Dependent Resistor).
소프트웨어: Atmel studio 6.1, progisp 또는 flash magic.
회로도 및 작동 설명
ATMEGA8의 회로 PORTD는 데이터 포트 LCD에 연결됩니다. 16 * 2 LCD에는 백라이트가 있으면 전체에 16 개의 핀이 있고, 백라이트가 없으면 14 개의 핀이 있습니다. 백라이트 핀에 전원을 공급하거나 남겨 둘 수 있습니다. 이제 14 핀에는 8 개의 데이터 핀 (7-14 또는 D0-D7), 2 개의 전원 공급 장치 핀 (1 & 2 또는 VSS & VDD 또는 gnd & + 5v), 대비 제어를위한 3 번째 핀 (VEE- 문자의 두께 제어)이 있습니다. 표시됨) 및 3 개의 제어 핀 (RS & RW & E)
회로에서 제어 핀이 두 개뿐임을 알 수 있습니다. 대비 비트와 READ / WRITE는 자주 사용되지 않으므로 접지로 단락 될 수 있습니다. 이렇게하면 LCD가 가장 높은 명암비 및 읽기 모드가됩니다. ENABLE 및 RS 핀을 제어하여 문자와 데이터를 적절하게 전송하면됩니다.
LCD에 대한 연결은 아래에 주어진다:
PIN1 또는 VSS ------------------ 접지
PIN2 또는 VDD 또는 VCC ------------ + 5v 전원
PIN3 또는 VEE --------------- ground (초보자에게 최상의 대비를 제공)
PIN4 또는 RS (등록 선택) --------------- uC의 PB0
PIN5 또는 RW (읽기 / 쓰기) ----------------- 접지 (LCD를 읽기 모드로 설정하여 사용자의 통신을 용이하게 함)
PIN6 또는 E (활성화) ------------------- uC의 PB1
PIN7 또는 D0 ----------------------------- uC의 PD0
PIN8 또는 D1 ----------------------------- uC의 PD1
PIN9 또는 D2 ----------------------------- uC의 PD2
PIN10 또는 D3 ----------------------------- uC의 PD3
PIN11 또는 D4 ----------------------------- uC의 PD4
PIN12 또는 D5 ----------------------------- uC의 PD5
uC의 PIN13 또는 D6 ----------------------------- PD6
PIN14 또는 D7 ----------------------------- uC의 PD7
회로에서는 8 비트 통신 (D0-D7)을 사용했음을 알 수 있지만 이는 필수 사항은 아니며 4 비트 통신 (D4-D7)을 사용할 수 있지만 4 비트 통신 프로그램은 약간 복잡해집니다. 따라서 위의 표에서 관찰 한 것만으로도 LCD의 10 핀을 컨트롤러에 연결하고 있는데 8 핀은 데이터 핀이고 2 핀은 제어용입니다.
R2 양단의 전압은 완전히 선형이 아닙니다. 시끄러울 것입니다. 노이즈를 필터링하기 위해 그림과 같이 분배기 회로의 각 저항에 커패시터를 배치합니다.
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가 변환을 시작하도록이 비트를 설정합니다. 이 비트는 변환을 중지해야 할 때 프로그램에서 비활성화 할 수 있습니다.
따라서 16x2 LCD 화면의 LDR 저항으로 LUX 그래프와 일치 시켜 빛의 강도 를 얻을 수 있습니다.