목차
준비
부품 목록
번호 | 부품명 | 수량 | 기능 | 판매처 |
---|---|---|---|---|
1 | WAT-Arduino128 | 1 | 아두이노 | https://kit128.com/goods/view?no=64 |
2 | Bluetooth Module HC-06 (5V) | 1 | 블루투스 통신 | https://kit128.com/goods/view?no=65 |
3 | I2C LCD | 1 | TEXT 출력 | https://kit128.com/goods/view?no=80 |
WAT-Arduino128 | Bluetooth Module HC-06 (5V) | I2C LCD |
---|---|---|
|
![]() |
핀 연결
아래와 같이 블루투스 모듈을 WAT-Arduino128 핀을 연결합니다.
WAT-Arduino128 의 경우 HC-06 모듈 전용핀을 제공하여 4핀 커넥터로 바로 연결 가능합니다.
HC-06 핀 | WAT-Arduino128 핀 |
---|---|
RXD | PD3 (TXD) |
TXD | PD2 (RXD) |
GND | GND |
VCC | 5V |
아래와 같이 I2C LCD와 WAT-Arduino128 핀을 연결합니다.
I2C LCD핀 | WAT-Arduino128 핀 |
---|---|
SCL | PD0 ( SCL) |
SDA | PD1 (SDA) |
VCC | 5V |
GND | GND |
소스코드
최신 소스코드는 [파일]=>[예제]=>[WhiteAT UNO] =>[Bluetooth_I2CLCD] 에 있습니다.
/* Bluetooth 로 I2C LCD 제어 예제 32 bytes의 데이터와 '\n' 코드를 입력 받아 LCD의 2줄에 출력 출처: http://whiteat.com/Arduino 연결 . PD0 (SCL) -> I2C SCL . PD1 (SDA) -> I2C SDA . PD2 (TXD) -> Bluetooth TX . PD3 (RXD) -> Bluetooth RX */ #include <Wire.h> #include <LiquidCrystal_I2C.h> String strLine1="WAT-Arduino128 "; String strLine2="LCD I2C Module "; byte backlight = HIGH; // I2C LCD 기본 어드레스는 0x27 LiquidCrystal_I2C lcd(0x27); // 프로그램 시작 - 초기화 작업 void setup() { Serial.begin(115200); // 아두이노 시리얼 모니터 화면 Serial.print("Connecting Serial to PC"); Serial1.begin(9600); // HC-06 용 시리얼 Serial1.print("AT+NAME BT - Whiteat.com\n"); // 자동으로 I2C address 설정 lcd = LiquidCrystal_I2C(GetAddress()); lcd.begin (16,2); // 16 x 2 } // 계속 실행할 무한 루프 void loop() { lcd.setBacklight(backlight); lcd.setCursor(0,0); lcd.print(strLine1); lcd.setCursor(0,1); lcd.print(strLine2); delay(1000); } String inString; void serialEvent1() { while (Serial1.available()) { int inChar = Serial1.read(); if ( isAlphaNumeric(inChar) || inChar=='-') { inString += (char)inChar; } else if (inChar == '\n') { if(inString.length()>=32) { strLine1 = inString.substring(0,16); // line1 데이터 추출 strLine2 = inString.substring(16,32); // line2 데이터 추출 Serial.print("LIne1:"); Serial.println(strLine1); Serial.print("LIne2:"); Serial.println(strLine2); } else if(inString.length()==1) { if(inString[0]=='1') { backlight = HIGH; } else { backlight = LOW; } } else { Serial.print("Short Data Retry [Data:"); Serial.print(inString); Serial.println("]"); } inString = ""; } } } // I2C address 찾기 byte GetAddress() { Wire.begin(); for (byte i = 1; i < 120; i++) { Wire.beginTransmission(i); if (Wire.endTransmission() == 0) { Serial.print("Found address: "); Serial.print(i, DEC); Serial.print(" (0x"); Serial.print(i, HEX); Serial.println(")"); return i; delay(10); } } }
안녕하세요
키트128입니다.
여기에 사용된 블루투스 모듈은 시리얼 통신 방식입니다.
Seial.print() 로 제어 가능합니다.
감사합니다.