이 튜토리얼에서는 BMP180과 ARDUINO를 사용하여 기압 측정 시스템을 설계 할 것 입니다. 먼저 BMP180을 ARDUINO에 연결하려면 BMP180 용으로 특별히 설계된 라이브러리를 다운로드해야합니다. 이 라이브러리는 다음에서 사용할 수 있습니다. https://github.com/adafruit/Adafruit-BMP085-Library 해당 라이브러리를 연결 한 후 BMP180 센서 작업을 쉽게하는 특수 함수를 호출 할 수 있습니다.
필요한 구성 요소
하드웨어: Arduino uno 보드, 연결 핀, 220Ω 저항, BMP180 기압 센서, 16x2 LCD, 브레드 보드.
소프트웨어: Arduino nightly
회로도 및 작동 설명
헤더를 호출 한 후에는 Arduino Uno와 BMP180 센서 간의 통신 설정에 대해 걱정할 필요가 없습니다. 우리는 우리를 위해 그렇게 할 특수 함수를 간단히 호출 할 수 있습니다. LCD를 초기화하고 SENSOR에서 호출 된 값을 표시하기 만하면됩니다.
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 (활성화) toPIN9
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 핀은 제어용입니다.
BMP180을 Arduino Uno에 연결하려면 다음을 수행해야합니다.
|
먼저 특수 기능 "#include"를 활성화하기 위해 헤더 파일을 호출해야합니다.
이 헤더 파일을 사용하면 퍼지없이 센서에서 직접 값을 읽을 수있는 함수를 호출 할 수 있습니다.
이제 C 통신을 활성화해야합니다. "#include
“String PRESSUREVALUE = String (bmp.readPressure ());”를 호출하여 압력을 읽을 수 있습니다. 여기에서 압력 값은 센서에서 읽혀지며“PRESSUREVALUE”문자열에 저장됩니다.
“String TEMPARATUREVALUE = String (bmp.readTemperature ());”를 호출하여 온도를 읽을 수 있습니다. 여기에서 압력 값은 센서에서 읽혀지며“TEMPARATUREVALUE”문자열에 저장됩니다.
먼저 헤더 파일을 활성화해야합니다 ('#include
둘째, 우리가 여기에서 사용하고있는 LCD의 종류를 보드에 알려줘야합니다. 다양한 유형의 LCD (예: 20 * 4, 16 * 2, 16 * 1 등)가 있기 때문입니다. 여기에서 16 * 2 LCD를 UNO에 인터페이스하여 'lcd.begin (16,2);'을 얻습니다. 16 * 1의 경우 'lcd.begin (16,1);'을 얻습니다.
이 명령에서는 핀이 연결된 위치를 보드에 알려줄 것입니다. 연결된 핀은 "RS, En, D4, D5, D6, D7"순서로 표시됩니다. 이 핀은 올바르게 표시되어야합니다. 회로도에서와 같이 RS를 PIN0 등에 연결했기 때문에 기판에 대한 핀 번호를“LiquidCrystallcd (0,1,8,9,10,11);”로 표시합니다.
위에서 남은 것은 데이터를 보내는 것 뿐이며, LCD에 표시해야 할 데이터는“cd.print ("hello, world!"); "로 써야합니다. 이 명령을 사용하면 LCD에 'hello, world!'가 표시됩니다.
보시다시피 다른 것에 대해 걱정할 필요가 없습니다. 초기화 만하면 UNO가 데이터를 표시 할 준비가됩니다. 여기서 BYTE 단위로 데이터를 전송하기 위해 프로그램 루프를 작성할 필요가 없습니다. 센서에서 값을 읽은 후 16x2 LCD에 표시합니다.