이 튜토리얼에서는 ARDUINO UNO의 ADC (Analog to Digital Conversion) 개념을 소개합니다. Arduino 보드에는 아래 그림과 같이 6 개의 ADC 채널이 있습니다. 그중 하나 또는 모두를 아날로그 전압 입력으로 사용할 수 있습니다. 의 Arduino 우노 ADC는 10 비트의 해상도이다 ((0 내지 (2 ^ 10) 1023)로부터 정수 값이므로). 이것은 0에서 5V 사이의 입력 전압을 0에서 1023 사이의 정수 값으로 매핑한다는 것을 의미합니다. 따라서 단위당 모든 (5 / 1024 = 4.9mV).
이 모든 과정에서 전위차계 또는 포트를 'A0'채널에 연결하고 ADC 결과를 간단한 디스플레이에 표시 할 것입니다. 단순 디스플레이는 16x1 및 16x2 디스플레이 단위입니다. 16x1 디스플레이 장치는 16 자이며 한 줄로 표시됩니다. 16x2는 16in 1st 라인 에 총 32 개의 문자가 있고 2nd 라인 에 다른 16 개 문자가 있습니다. 여기서는 각 문자에 5x10 = 50 픽셀이 있으므로 한 문자를 표시하려면 50 픽셀이 모두 함께 작동해야한다는 것을 이해해야합니다. 그러나 디스플레이 장치에 다른 컨트롤러 (HD44780)가 있기 때문에 걱정할 필요가 없습니다. 픽셀을 제어하는 작업입니다 (LCD 장치에서 볼 수 있으며 뒷면의 검은 눈입니다).
필요한 구성 요소
하드웨어: ARDUINO UNO, 전원 공급 장치 (5v), JHD_162ALCD (16x2LCD), 100uF 커패시터, 100KΩ 포트 또는 전위차계, 100nF 커패시터.
소프트웨어: arduino IDE (Arduino nightly)
회로도 및 설명
16x2 LCD에는 백라이트가 있으면 전체적으로 16 개의 핀이 있고, 백라이트가 없으면 14 개의 핀이 있습니다. 백라이트 핀에 전원을 공급하거나 남겨 둘 수 있습니다. 이제 14 핀에는 8 개의 데이터 핀 (7-14 또는 D0-D7), 2 개의 전원 공급 장치 핀 (1 & 2 또는 VSS & VDD 또는 GND & + 5v), 대비 제어를위한 세 번째 핀 (VEE- 문자의 두께 제어)이 있습니다. 표시) 및 3 개의 제어 핀 (RS & RW & E).
회로에서 내가 두 개의 제어 핀만 가져 왔음을 알 수 있습니다. 대비 비트와 READ / WRITE는 자주 사용되지 않으므로 접지로 단락 될 수 있습니다. 이렇게하면 LCD가 가장 높은 명암비 및 읽기 모드가됩니다. ENABLE 및 RS 핀을 제어하여 문자와 데이터를 적절하게 전송하면됩니다.
LCD에 대해 수행되는 연결은 다음과 같습니다.
접지에 대한 PIN1 또는 VSS
PIN2 또는 VDD 또는 VCC ~ + 5v 전원
PIN3 또는 VEE to ground (초보자에게 최상의 대비를 제공)
ARDUINO UNO의 PIN4 또는 RS (등록 선택) ~ PIN8
PIN5 또는 RW (읽기 / 쓰기)를 접지 (LCD를 읽기 모드로 설정하여 사용자의 통신을 용이하게 함)
ARDUINO UNO의 PIN6 또는 E (활성화)에서 PIN9까지
ARDUINO UNO의 PIN11 또는 D4 ~ PIN10
ARDUINO UNO의 PIN12 또는 D5 ~ PIN11
ARDUINO UNO의 PIN13 또는 D6 ~ PIN12
ARDUINO UNO의 PIN14 또는 D7 ~ PIN13
ARDUINO IDE를 통해 사용자 는 4 비트 모드에서 LCD 를 사용할 수 있습니다. 이러한 유형의 통신을 통해 사용자는 ARDUINO의 핀 사용량을 줄일 수 있습니다. 다른 ARDUINO는 4 it 모드에서 사용하기 위해 별도로 프로그래밍 할 필요가 없습니다. 기본적으로 ARDUINO는 4 비트 모드로 통신하도록 설정되어 있기 때문입니다. 회로에서 4 비트 통신 (D4-D7)을 사용했음을 알 수 있습니다.
따라서 위의 표에서 간단히 살펴보면 LCD의 6 핀을 컨트롤러에 연결합니다. 여기서 4 핀은 데이터 핀이고 2 핀은 제어용입니다.
위 그림은 ARDUINO UNO의 ADC 회로도입니다.
일
LCD를 ARDUINO UNO에 연결하려면 몇 가지 사항을 알아야합니다.
|
먼저 모든 UNO ADC 채널의 기본 참조 값은 5V입니다. 즉, 모든 입력 채널에서 ADC 변환을 위해 최대 5V의 입력 전압을 제공 할 수 있습니다. 일부 센서는 0-2.5V의 전압을 제공하기 때문에 5V 기준으로 정확도가 떨어 지므로이 기준 값을 변경할 수있는 명령이 있습니다. 따라서 참조 값을 변경하기 위해 ("analogReference ();")
기본적으로 최대 보드 ADC 분해능은 10 비트이며,이 분해능은 명령어 (“analogReadResolution (bits);”)를 사용하여 변경할 수 있습니다. 이 해상도 변경은 경우에 따라 유용 할 수 있습니다.
이제 위의 조건을 기본값으로 설정하면“analogRead (pin);”함수를 직접 호출하여 채널 '0'의 ADC에서 값을 읽을 수 있습니다. 여기서“pin”은 아날로그 신호를 연결 한 핀을 나타냅니다.이 경우에는 "A0"이됩니다. ADC의 값은“int ADCVALUE = analogRead (A0); ”,이 명령어에 의해 ADC 이후의 값은 정수“ADCVALUE”에 저장됩니다.
이제 16x2 LCD에 대해 조금 이야기 해 봅시다. 먼저 헤더 파일을 활성화해야합니다 ('#include
둘째, 우리가 여기에서 사용하고있는 LCD의 종류를 보드에 알려줘야합니다. 20x4, 16x2, 16x1 등과 같은 다양한 유형의 LCD가 있기 때문입니다. 여기에서는 16x2 LCD를 UNO에 인터페이스하여 'lcd.begin (16, 2);'을 얻습니다. 16x1의 경우 'lcd.begin (16, 1);'을 얻습니다.
이 명령에서는 핀이 연결된 위치를 보드에 알려줄 것입니다. 연결된 핀은 "RS, En, D4, D5, D6, D7"순서로 표시됩니다. 이 핀은 올바르게 표시되어야합니다. 회로도에서와 같이 RS를 PIN0 등에 연결했기 때문에 보드에 들어갈 핀 번호를“LiquidCrystal lcd (0, 1, 8, 9, 10, 11);”로 표시합니다.
위에서 남은 것은 데이터를 보내는 것 뿐이며, LCD에 표시해야 할 데이터는“cd.print ("hello, world!");”로 써야합니다. 이 명령을 사용하면 LCD에 'hello, world!'가 표시됩니다.
보시다시피 다른 것에 대해 걱정할 필요가 없습니다. 초기화 만하면 UNO가 데이터를 표시 할 준비가됩니다. 여기서 BYTE 단위로 데이터를 전송하기 위해 프로그램 루프를 작성할 필요가 없습니다.
Arduino Uno의 ADC 사용 은 아래의 C 프로그램에서 단계별로 설명합니다.