Inter-Integrated Circuit(I2C) 통신에 크게 신경을 안 썼는데
이번에 1602 LCD에 I2C 컨버터를 사용하면서 I2C Scanner 를 쓸일이 있어 다시 소개하기로..
사실 사용법이랄게 없어서 일전에 BME280, BME280 에서는 언급정도만 했었다
i2c 1602 LCD 예제를 보면 대부분 0x27 을 사용하는데
굴러다니는 1602 LCD 의 16개 핀을 다 연결하려니 귀찮아서
1602 LCD Adapter Plate i2c 컨버터를 샀는데 납땜 실수로 0x27 주소가 바꼈기 때문이다..
주문한 제품: https://ko.aliexpress.com/item/32277096713.html
아답터의 MR 표시옆을 보면 납땜할 수 있게 돼있는데
i2c 주소를 변경하려면 저기에 납땜을 해주면 된다
i2c는 주소기반 다중통신이 가능하여, 기기의 주소만 다르다면 병렬로 사용 가능하다고 한다
아두이노의 SCL, SDA 에 사용할 I2C 센서를 연결하고
프로그램을 업로드함으로 address를 찾을 수 있다
핀이 4개(VCC, GND, SDA, SCL) 이고 똑같이 연결해주면 되니 헷갈릴건 없다
#include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); while (!Serial); // Leonardo: wait for serial monitor Serial.println("\nI2C Scanner"); } void loop() { byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for(address = 1; address < 127; address++ ) { Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address<16) Serial.print("0"); Serial.print(address,HEX); Serial.println(" !"); nDevices++; } else if (error==4) { Serial.print("Unknown error at address 0x"); if (address<16) Serial.print("0"); Serial.println(address,HEX); } } if (nDevices == 0) Serial.println("No I2C devices found\n"); else Serial.println("done\n"); delay(5000); // wait 5 seconds for next scan } |
출처: https://playground.arduino.cc/Main/I2cScanner/
소스를 아두이노에 업로드하고
시리얼 모니터로 확인만 하면 된다
0x27 으로 확인된다
다만 이건 다른 i2c 아답타라서 0x27로 나온거라..
납땜한건 다른걸로 바껴있었다
013. Arduino 아두이노 - 1602 IIC I2C LCD 사용해보기
024. Arduino 아두이노 - bme280 / bmp280 센서모듈(Using bme280 / bmp 280 sensor module)
I2C Scanner 소스출처: https://playground.arduino.cc/Main/I2cScanner/
036. Arduino 아두이노 - 0.96" OLED 모듈 사용하기 with SSD1306 (0) | 2023.02.11 |
---|---|
035. Arduino 아두이노 리셋 시키기 - Arduino software reset (1) | 2023.01.31 |
033. Arduino 아두이노 - 가변저항으로 7개 LED 점등 속도 조절하기(Control 7 LED Blink Speed Rate With Potentiometer) (0) | 2020.05.24 |
032. Arduino 아두이노 - GP2Y1014AU0F 미세먼지 센서 (0) | 2020.05.17 |
031. Arduino 아두이노 - 보드 추가하기(Adding Arduino Boards) (0) | 2020.01.15 |
댓글 영역