1.44인치 TFT LCD에 이미지 표시
1.44 인치 TFT LCD 128 x 128 ST7735 작동 확인 메모
htps : // 코 m / 산타로 6 / ms / 7f2946 굳이 918245049440
계속
이미지를 표시하고 싶습니다.
※소스는, 나중에, 업합니다
결과로부터 나타내면, 이하와 같이 낼 수 있었다.
절차는
1) 표시하는 화상 파일로부터, 기입용의 데이터를 작성한다
2) 데이터를 EEPROM에 기록
3) EEPROM의 데이터를 읽으면서 TFT 액정에 그리기
좀 더 세밀하게 쓰면,
1) 표시하는 화상 파일로부터, 기입용의 데이터를 작성한다
1-1) 128 × 128 픽셀의 비트 맵 (bmp) 이미지 준비
1-2) bmp에서 각 xy 좌표의 RGB 데이터를 검색합니다.
1-3) 24bit의 RGB 데이터를 16bit의 RGB 데이터로 변환하고, 16진 표기하고, 텍스트화한다
24bit일 때, R=1byte(8bit), G=1byte(8bit), B=1byte(8bit)
(3byte : RRRRRRRRGGGGGGGGBBBBBBBBB)
16bit일 때, R=(5bit), G=(6bit), B=(5bit)
(2byte:RRRRRGGGGGGBBBBB)
이 변환은
R과 B는, 0~255를, 0~31로 변환. (예:r1=r0/256*32)
G는, 0~255를, 0~63으로 변환. (예: g1=g0/256*64)
2) 데이터를 EEPROM에 기록
쓰기는 여기를 참조했습니다.
htps //w w. 페치 t 몬테. 이 m/로보 t/호 w와_예 p로m_이 2c. HTML
htp://라지오펜 ch. bぉg96. FC2. 소 m/bぉg-엔트리-574. html
메모리는 이것입니다.
EEPROM 24FC1025
htp // 아키즈키덴시. 코 m/타타 g/g/기-03570/
1024Kbit이므로 128Kbyte 쓸 수 있다.
(1화면당, 128 x 128 x 2byte = 32Kbyte이므로, 4장분 들어간다.)
※발췌
write_eeprom.ino
for (i=( (m_x * stp)); i<((m_x * (stp+1))); i++){
Wire.beginTransmission(DEVICE_ADDRESS);
Wire.write(i >> 8); // Address(High Byte)
Wire.write(i & 0x00FF); // Address(Low Byte)
int id1;
id1 = pgm_read_byte(IMAGE_DATA1 + id_ad);
Wire.write(id1);
id_ad ++;
Wire.endTransmission();
delay(5);
}
3) EEPROM의 데이터를 읽으면서 TFT 액정에 그리기
※발췌
tft_drawPixel.ino
for (int16_t y=0; y < tft.height(); y+=1) {
for (int16_t x=0; x < tft.width(); x+=1) {
int16_t ad1 = (y * 256) + (x * 2);
int16_t ad2 = (y * 256) + (x * 2) + 1;
Wire.beginTransmission(DEVICE_ADDRESS);
Wire.write(ad1 >> 8); // Address(High Byte)
Wire.write(ad1 & 0x00FF); // Address(Low Byte)
Wire.endTransmission();
Wire.requestFrom(DEVICE_ADDRESS, 1);
while (Wire.available() == 0 ){}
unsigned char a1 = Wire.read();
Wire.beginTransmission(DEVICE_ADDRESS);
Wire.write(ad2 >> 8); // Address(High Byte)
Wire.write(ad2 & 0x00FF); // Address(Low Byte)
Wire.endTransmission();
Wire.requestFrom(DEVICE_ADDRESS, 1);
while (Wire.available() == 0 ){}
unsigned char a2 = Wire.read();
unsigned short int c1 = (a1 << 8) + a2;
tft.drawPixel(x, y, c1);
delay(0);
}
}
Reference
이 문제에 관하여(1.44인치 TFT LCD에 이미지 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/santarou6/items/d5ce7c795b892e45a970텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)