'알리익스프레스'에 해당되는 글 141건
- 2019.10.12 Hardware | 공기질 측정용 MiCS-6814 센서를 사용해 보자 - 1 26
- 2019.10.08 Hardware | LCD2004 를 arduino 로 컨트롤 해보기 - 1
- 2019.10.01 Hardware | ebook 크레마 사운드업 액정 수리기 27
- 2019.09.08 Hardware | Dual-axis XY Joystick Module
- 2019.08.28 Hardware | LED 전등 교환기
- 2019.08.12 Hardware | ADS1115 16bit 4채널 ADC 를 사용해 보자 6
- 2019.08.04 Hardware | Arduino 를 DIY 해보자 - 2
- 2019.08.02 Hardware | 납땜 주변 용품
- 2019.07.07 Hardware | bluetooth 모듈 HC-06 / HC-05 사용해 보기 - 1
- 2019.07.04 Hardware | iPhone SE 스크린 교환기
1. 공기
사람이 건강하게 살아가는데 필요한게 뭘까 라고 생각했을 때, 육체적 관점에서 보면 아래와 같다고 생각합니다.
- 깨끗한 공기
- 깨끗한 물
- 오염되지 않은 먹거리
- 쾌적한 주거 환경
- 충분한 수면
- 충분한 운동
예전에는 당연한 것이였지만, 이 시대에 와서는 가장 돈을 많이 들여야 하는 항목들이 되었습니다.
과거로 회기하는데 드는 비용이죠.
자고로, 산업혁명이 일어나 지구가 오염되기 전 상황으로 되돌아 가는 것이, 육체적인 건강한 삶 되겠습니다. (나의 생각)
나만 잘한다고 되는건 아니라 요원하긴 하지만...
이 arduino 나 sensor 를 가지고 노는 이유도, 전자적인 지식을 습득해 나가는 것에 대한 희열 말고도,
위의 "건강한 삶을 보낼 수 있는 환경" 에 대한 추구가 다른 주된 이유이기도 합니다.
그래서, "깨끗한 공기" 가 목적이지만, 그 이전에 현재 "어떤 공기" 속에서 살고 있는지 알아보고 싶어졌습니다.
일전에 공기질의 척도만 나타내 주는 센서를 가지고 놀아본 적이 있습니다.
* Hardware | ZP07-MP901 공기질 측정 센서
- https://chocoball.tistory.com/entry/Hardware-ZP07-MP901-air-quality-sensor
다만 위의 센서는 공기의 성분까지는 알려주지 못해 그닥 쓸모가 없었죠.
2. 센서
기체를 알아보는 sensor 는 꽤 많이 나와 있습니다. 대표적으로는 MQ series 가 있지요.
이 MQ 시리즈를 이용하면 왠만한건 다 잡아 낼 수 있을 것 같습니다.
다만, 이 MQ 시리즈의 단점이 히터를 통해서 기체를 태우고 그에 따른 반응으로 측정을 하는 방법인지라,
가스나 화기를 취급하는 곳에서는 발화의 원인이 될 수 있습니다. 그래서 인화 물질을 취급하는 공장이나 병원에서는 사용되지 못합니다.
그러던 중, MiCS-6814 라는 센서의 존재를 알게 됩니다.
이 센서는 metal oxide = 기체에 의한 금속 산화도 에 따른 저항 값을 가지고 측정하므로, MQ 시리즈보다는 더 안전합니다.
SGX-CMOS-Gas-Sensor-MiCs-6814.pdf
잡아낼 수 있는 기체들은 다음과 같다고 하네요.
• Carbon monoxide CO 1 – 1000ppm
• Nitrogen dioxide NO2 0.05 – 10ppm
• Ethanol C2H5OH 10 – 500ppm
• Hydrogen H2 1 – 1000ppm
• Ammonia NH3 1 – 500ppm
• Methane CH4 >1000ppm
• Propane C3H8 >1000ppm
• Iso-butane C4H10 >1000ppm
하나의 센서 chip 으로 많은 성분을 잡아 낼 수 으며, 소형인지라,
MQ 시리즈를 구입해서 실험 해보기 보단, 이놈으로 결정하였습니다.
3. Grove - Multichannel Gas Sensor
MiCS-6814 를 활용하기 위해 가장 좋은 방법은,
MiCS-6814 를 활용한 breakout board 인 Grove 사의 Multichannel Gas Sensor 를 구입하는 것 입니다.
* Grove - Multichannel Gas Sensor
- http://wiki.seeedstudio.com/Grove-Multichannel_Gas_Sensor/
Arduino 와의 통신도 I2C로 이루어 지며, 센서의 3개 측정값 - CO, NH3, NO3 - 의 조합으로 다른 기체도 유추해 놓는것 같습니다.
거기에 정확하지는 않지만, 어느정도 calibration 도 잡혀 있을 것이구요.
다만, 항상 그렇 듯, 가격이 문제 입니다. 요즘은 팔지도 않거니와, 실 구매 가격은 약 10만원 정도.
나중에 혹시 PCB 라도 꾸며서 만들 수 있으면 만들어 보고자, 여기에 회로 관련 정보를 올려 놓습니다.
Grove-Multichannel_Gas_Sensor_v1.0_sch.pdf
Grove-Multichannel_Gas_Sensor_v1.0_eagle_files.zip
1143_Datasheet-MiCS-6814-rev-8.pdf
* Firmware (Seeed-Studio/Mutichannel_Gas_Sensor)
- https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor
4. 구입
눈물을 뒤로 하고, AliExpress 로 향합니다.
* 1pcs CJMCU- MICS-6814 Air Quality CO VOC NH3 Nitrogen Oxygen Gas Sensor
- https://www.aliexpress.com/item/32762216430.html
저를 위로해 주는 기교적 착한 가격. 거진 3만원돈 이지만, 과감하게 투자해 봅니다. (6개월 고민... ㅠㅠ)
대단한건 아니지만, 도착했을 시 꽤 기뻤습니다. 이제야 이런 고급진 센서 써보는구나~ 라고.
정말 단순한 구조. 레귤레이터도 없어...
뒷면입니다.
5. 연결
어떻게 arduino 와 연결하여, 각 기체의 값을 알아낼까 찾아보던 중 아래 사이트를 발견합니다.
* Wiring MiCs 5524 / 6814 CMOS MEMS Gas Detection Sensor
- https://www.14core.com/wiring-mics-5524-6814-cmos-mems-gas-detection-sensor/
걍 analog pin 에 직결하라고 하네요?
제가 구매한 breakout 보드에는 MOSFET 도 없고 그렇지만, 일단 아래 소스를 가지고 돌려 봅니다.
int NH3 = 0; int NO2 = 1; int CO = 2; void setup() { pinMode(NH3, OUTPUT); pinMode(NO2, OUTPUT); pinMode(CO, OUTPUT); Serial.begin(9600); Serial.println("MiCS 6814 simple test"); } void loop() { int sense_val_1 = analogRead(NH3); int sense_val_2 = analogRead(NO2); int sense_val_3 = analogRead(CO); Serial.print("NH3 : "); Serial.print(sense_val_1); Serial.print(" \t NO2 : "); Serial.print(sense_val_2); Serial.print(" \t CO : "); Serial.println(sense_val_3); delay(1000); }
Serial Monitor 로 값을 확인해 보고, EXCEL 로 그래프를 그려 봅니다.
음... 뭔가 알아보기 힘드네요. 각 기체의 값이 서로 비슷하게 나와버립니다.
6. 저항을 추가하여 연결
아래 사이트에서 이 아저씨가 한 작업은,
측정값이 현실적으로 되려면 analog pin 에 입력되는 값은, 3.3V 를 저항을 거쳐서 연결하라고 합니다.
(이론적으로는 50K ohm 이 좋으나, 제품으로 나오는 저항은 47K ohm 이 제일 가까운 값)
* ESP32, PMS5003, BME280, MICS6814 Sensor Build
- http://kstobbe.dk/2019/02/16/esp32-pms5003-bme280-mics6814-sensor-build/
또한, 아래 arduino forum 에서는, 각 단자에 47K ohm 통해 연결하는 전원은 3.3V 보단, 5V 를 먹이라고 하네요.
아마도 MiCS-6814 구동 전압이 5V 임을 감안하면, 동일한 입력 값이 좀더 예민한 값의 도출에 좋다는 이야기 같습니다.
(솔직히 잘 모름)
* CJMCU-6814 adapter board with MICS-6814 CO/NH3/NO2-sensor
- https://forum.arduino.cc/index.php?topic=619992.0
Tested the sensor with the code and schematic. Connected 47k to 3 gases and 5v rather than 3v. The results seem to reflect well to CO. Have not tested NO2 and NH3.
바로 따라해 봅니다.
Serial Monitor 에서 측정된 값이구요.
EXCEL 에서 그래프화 해 봤습니다.
오오오오오, 뭔가 나오네요.
가능한 24시간동안 예열하도록 안내가 되어 있듯이, 예열 구간동안 특정 값으로 꾸준히 변화되는 것을 알 수 있습니다.
위의 빨간 표시한 부분은, 시험삼아 숨을 한번 불어본 구간입니다. 변화를 잘 감지하는군요!
하룻밤 측정해본 결과 입니다.
각 기체의 상관 관계와 실내 공기 내에서의 NH3, NO2, CO 의 값은 이정도인 듯 합니다.
7. 15bit ADC + 저항을 추가하여 연결
Arduino 내장 10 bit ADC 를 가지고 측정한 결과 보다는 15 bit ADC 가 훨씬 정확합니다.
아래 포스트 이후로, 향후 모든 측정값은 더 높은 ADC 를 통하라고 배웠습니다.
* Hardware | ADS1115 16bit 4채널 ADC 를 사용해 보자
- https://chocoball.tistory.com/entry/Hardware-ADS1115-16bit-4channel-ADC
ADS1115 이 입력값을 받구요.
#include "Wire.h" #include "Adafruit_ADS1015.h" Adafruit_ADS1115 ads(0x48); void setup(void) { Serial.begin(115200); ads.begin(); } void loop(void) { int16_t adc1; // CO int16_t adc2; // NH3 int16_t adc3; // NO2 adc1 = ads.readADC_SingleEnded(1); adc2 = ads.readADC_SingleEnded(2); adc3 = ads.readADC_SingleEnded(3); Serial.print("NH3 : "); Serial.print(adc2); Serial.print(" \t NO2 : "); Serial.print(adc3); Serial.print(" \t CO : "); Serial.println(adc1); delay(1000); }
확실히 뭔가 엄청나게 숫자가 불어나 있습니다.
EXCEL 을 통해서 그래프화 시켜 봅니다.
패턴은 47K ohm 저항 꼽고 측정할 때와 비슷하게 나왔습니다.
다만, 높은 ADC 를 통하여 해상도는 좋아졌지만,
어떤 기준값으로 나누어야 할지 알지 못하기 때문에, trend 만 알 수 있지 정확한 수치화까지는 진행하지 못했습니다.
8. Next Step
이런 공기질 측정에서의 수치화는 calibration 인데,
그렇게 하려면 실제 실험실 환경을 통해서, 실제 기체를 가지고 기준을 잡아야 합니다.
위의 방법이 현실적으로 불가능 하기에,
다음에 할 것으로는 Grove - Multichannel Gas Sensor 의 breakout 을 만들어서 (아님 구입해서),
제조사인 SeeedStudio 의 경험이 녹아들어가 있는 firmware 와 소스코드를 가지고 수치화 해보는 것 이겠습니다.
공기 질에 관한 센서는 몇 개가 더 있습니다. 계속 놀아보도록 하지요.
To Be Continued...
'Hardware' 카테고리의 다른 글
Hardware | SMD 솔더링에 대한 고찰 (0) | 2019.10.23 |
---|---|
Hardware | 레트로 led 글자판 HPDL-1414 사용기 - 1 (0) | 2019.10.15 |
Hardware | LCD2004 를 arduino 로 컨트롤 해보기 - 1 (0) | 2019.10.08 |
Hardware | Arduino 로 Gimbal 컨트롤 하기 (2) | 2019.10.07 |
Hardware | 재생토너 chip 교환기 - 2 (0) | 2019.10.04 |
1. 시작
흠흠흠~ 하면서 인터넷을 보던 중, arduino 로 컨트롤 하는 Liquid Crystal Display 를 보게 됩니다.
이게 흔히 말하는 LCD 이죠.
OLED 와 비교하여 부피도 크고, 명암 조절을 수동으로 해줘야 하는 등, 불편한 device 라고 생각하고 있던 중,
LCD 의 푸른색 색감을 보고 반해버렸습니다.
Display 부품을 늘이고 싶지 않았지만, 이제 구입할 때가 된것 같아 구입합니다.
* LCD2004+I2C 2004 20x4 2004A blue screen HD44780 Character LCD /w IIC/I2C Serial Interface Adapter Module For Arduino
- https://www.aliexpress.com/item/32831845529.html
결코 싼 가격은 아니지만, 이왕 구입하는 김에 보편적으로 많이 사용하는 녹색과 색감에 반한 푸른색, 두 개를 삽니다.
2. 도착
한 2주만에 재품을 받았습니다.
무료 배송이 점점 없어지고 배송비 책정이 되면서 배송 기간이 점점 짧아지고 있는 듯 합니다.
푸른색, 녹색 두개가 와서 PCB 를 비교해 보니, 서로 동일한 듯 하나 살짝 다른 모습 입니다.
I2C 컨트롤러의 칩 한쪽은 마킹이 너무 얇아 fake 제품처럼 보입니다.
조금이라도 진품처럼 보이는 쪽은 파란색 버전 입니다.
납땜도 녹색보다는 파란색이 잘 되어 있습니다.
PCB 마킹도, 파란색은 동판에 미리 새겨져 있고, 녹색은 프린팅 되어 있네요.
뭐, 생산하다가 점점 원가절감 하면서 변화된 것 일 수도 있습니다.
보통 녹색을 많이 사용하니, 녹색이 원가절감이 더 된 것 일수도 있구요.
3. Pin
Pin 수는 16개로, 아래와 같은 사양을 가집니다.
------------------------------------------------------------------- | pin | function | ------------------------------------------------------------------- | VSS | connected to ground | ------------------------------------------------------------------- | VDD | connected to a +5V power supply | ------------------------------------------------------------------- | V0 | to adjust the contrast | ------------------------------------------------------------------- | RS | A register select pin that controls where in the LCD's | | | memory you are writing data to. You can select either | | | the data register, which holds what goes on the screen, | | | or an instruction register, which is where the LCD's | | | controller looks for instructions on what to do next. | ------------------------------------------------------------------- | R/W | A Read/Write pin to select between reading and writing | | | mode | ------------------------------------------------------------------- | E | An enabling pin that reads the information when HIGH | | | level(1) is received. The instructions are run when the | | | signal changes from HIGH level to LOW level. | ------------------------------------------------------------------- | D0-D7 | to read and write data | ------------------------------------------------------------------- | A | Pins that control the LCD backlight. Connect A to 3.3V. | ------------------------------------------------------------------- | K | Pins that control the LCD backlight. Connect K to GND. | -------------------------------------------------------------------
대충 훑어 보면, back light 전원, 본체 전원, 명암 조절, data 통신과 컨트롤 라인 등이 있습니다.
제가 구매한 제품은 I2C 모듈인 "PCF8574" 컨트롤러가 달린 제품입니다.
그러니, 일일이 모두 연결할 필요 없이 I2C 를 통해, 단 4가닥 선으로 컨트롤 할 수 있습니다.
이 chip 의 생산은 Philips, TI, NXP 등에서 생산되고 있네요. PDF 사양서를 올려 놓습니다.
LCD2004
Systronix_20x4_lcd_brief_data.pdf
HD44780
LCD Interfacing using HD44780 Hitachi chipset compatible LCD.pdf
PCF8574
4. I2C
Arduino 와 연결은 I2C 이므로, 4가닥으로 처리됩니다.
Liquid Crystal I2C 라이브러리가 필요합니다.
일반 Liquid Crystal I2C 라이브러리를 설치해도 되나, 궂이... 궂이 PCF8574 용 라이브러리를 찾아서 설치해 봅니다.
(범용 Liquid Crystal I2C 라이브러리가 아님)
위의 라이브러리를 설치하면 아래처럼 sample code 를 사용할 수 있습니다.
File > Examples > LiquidCrystal_PCF8574 > LiquidCrystal_PCF8574_test
I2C 활용시에는 항상 address 를 확인해 봐야 합니다.
Arduino 와 I2C 로 연결 후, i2cdetect 소스를 돌려 봅니다.
0x27 로 잡혀 있네요.
참고로 다른 I2C 센서들과 연동 시에 address 충돌이 일어나면, 아래 사진의 A0, A1, A2 쇼트 조합으로 주소를 바꿀 수 있습니다.
5. I2C 소스
친절하게도 example 소스가 충분히 잘 만들어져 있는지라, 그냥 돌려 봅니다.
#include "LiquidCrystal_PCF8574.h" #include "Wire.h" LiquidCrystal_PCF8574 lcd(0x27); // set the LCD address to 0x27 for a 16 chars and 2 line display int show = -1; void setup() { int error; Serial.begin(115200); Serial.println("LCD..."); // wait on Serial to be available on Leonardo while (!Serial) ; Serial.println("Dose: check for LCD"); // See http://playground.arduino.cc/Main/I2cScanner how to test for a I2C device. Wire.begin(); Wire.beginTransmission(0x27); error = Wire.endTransmission(); Serial.print("Error: "); Serial.print(error); if (error == 0) { Serial.println(": LCD found."); show = 0; lcd.begin(20, 4); // initialize the lcd } else { Serial.println(": LCD not found."); } // if } // setup() void loop() { if (show == 0) { lcd.setBacklight(255); lcd.home(); lcd.clear(); lcd.print("Hello LCD"); delay(1000); lcd.setBacklight(0); delay(400); lcd.setBacklight(255); } else if (show == 1) { lcd.clear(); lcd.print("Cursor On"); lcd.cursor(); } else if (show == 2) { lcd.clear(); lcd.print("Cursor Blink"); lcd.blink(); } else if (show == 3) { lcd.clear(); lcd.print("Cursor OFF"); lcd.noBlink(); lcd.noCursor(); } else if (show == 4) { lcd.clear(); lcd.print("Display Off"); lcd.noDisplay(); } else if (show == 5) { lcd.clear(); lcd.print("Display On"); lcd.display(); } else if (show == 7) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("*** first line."); lcd.setCursor(0, 1); lcd.print("*** second line."); lcd.setCursor(0, 2); lcd.print("*** third line."); lcd.setCursor(0, 3); lcd.print("*** forth line."); } else if (show == 8) { lcd.scrollDisplayLeft(); } else if (show == 9) { lcd.scrollDisplayLeft(); } else if (show == 10) { lcd.scrollDisplayLeft(); } else if (show == 11) { lcd.scrollDisplayRight(); } else if (show == 12) { lcd.clear(); lcd.print("write-"); } else if (show > 12) { lcd.print(show - 13); } // if delay(1400); show = (show + 1) % 16; } // loop()
Serial Monitor 에서 확인해 보니, 잘 인식 되었네요.
너무 쉽게 되어서 살짝 김이 빠지는 정상적인 결과.
동영상도 올려 봅니다. (동영상은 16x2 버전으로 돌린 결과. 수정된 위의 소스로 20x4 로 변경된 소스를 사용하면 4줄 다 사용.)
6. Direct 연결
여기서 끝내면 너무 재미 없는지라, 한땀한땀 직접 연결해 봅니다.
워낙 오래된 부품이라, 아래 arduino 정식 사이트에서 자세히 소개되어 있습니다.
* TUTORIALS > Examples from Libraries > LiquidCrystal > HelloWorld
- https://www.arduino.cc/en/Tutorial/HelloWorld?from=Tutorial.LiquidCrystal
각 Pin 의 정보는 다음과 같습니다.
실제 arduino 와 연결은 다음과 같습니다.
-------------------------------- | LCD2004 | Arduino Nano | -------------------------------- | VSS | GND | | VDD | 5V | | V0 | S of potentiometer | | RS | D12 | | R/W | GND | | E | D11 | | D0-D3 | no connected | | D4 | D5 | | D5 | D4 | | D6 | D3 | | D7 | D2 | | A | 3.3V | | K | GND | --------------------------------
Diagram 으로도 그려 봤습니다. (Digital pin 은 실제와 살짝 틀림)
7. Potentiometer
여기서 필요한 것이 potentiometer 입니다. 가변 저항이죠.
다이얼을 돌려서 저항값을 변화시키는 부품이죠. 구입을 미뤄 오다가, 이번 기회에 사용하고자 구입 했습니다.
* 5 PCS/Lot Potentiometer Resistor 1K 10K 20K 50K 100K 500K Ohm 3 Pin Linear Taper Rotary Potentiometer for Arduino with Cap
- https://www.aliexpress.com/item/32948875673.html
구입한 버전은 10K Ohm.
글의 문맥상 뜬금 없지만, 도착샷 입니다. 빠질 수 없죠.
요런 모양 입니다.
8. Direct 연결 구동
직접 연결하는 방법은 Arduino IDE 에서 기본 제공합니다.
소스는 다음과 같구요.
기본 16x2 버전으로 되어 있으니, 20x4 버전으로 살짝 수정해 줍니다.
/* LiquidCrystal Library - Hello World Demonstrates the use a 16x2 LCD display. The LiquidCrystal library works with all LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface. This sketch prints "Hello World!" to the LCD and shows the time. The circuit: * LCD RS pin to digital pin 12 * LCD Enable pin to digital pin 11 * LCD D4 pin to digital pin 5 * LCD D5 pin to digital pin 4 * LCD D6 pin to digital pin 3 * LCD D7 pin to digital pin 2 * LCD R/W pin to ground * LCD VSS pin to ground * LCD VCC pin to 5V * 10K resistor: * ends to +5V and ground * wiper to LCD VO pin (pin 3) Library originally added 18 Apr 2008 by David A. Mellis library modified 5 Jul 2009 by Limor Fried (http://www.ladyada.net) example added 9 Jul 2009 by Tom Igoe modified 22 Nov 2010 by Tom Igoe This example code is in the public domain. http://www.arduino.cc/en/Tutorial/LiquidCrystal */ // include the library code: #include "LiquidCrystal.h" // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // set up the LCD's number of columns and rows: lcd.begin(20, 4); // Print a message to the LCD. lcd.setCursor(0, 0); lcd.print(" Chocoball's Tech"); lcd.setCursor(0, 2); lcd.print(" chocoball.tistory"); } void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 3); // print the number of seconds since reset: lcd.print(millis() / 1000); }
전부 연결하면 아래와 같습니다.
동영상도 올려 봅니다.
hello, world! 를 저의 블로그명으로 바꿔 봤습니다.
단순한 표시 방법과 오랜 기간 수정된 라이브러리 덕으로, 정말 스트레스 없이 구동 시켰습니다.
9. I2C 와 Direct 연결시 명령어 차이
I2C 를 통한 함수와, 직접 연결했을 시에 사용할 수 있는 명령어 구성이 살짝 다릅니다.
고맙게도 아래 사이트에서 잘 정리된 테이블이 있어서 여기에 올려 봅니다.
* LCD Display Tutorial for Arduino and ESP8266
- https://diyi0t.com/lcd-display-tutorial-for-arduino-and-esp8266/
LiquidCrystal | LiquidCrystal_I2C | Function LiquidCrystal library | Description |
x | x | LiquidCrystal() LiquidCrystal_I2C() | This function creates a variable of the type LiquidCrystal. The parameters of the function define the connection between the LCD display and the Arduino. You can use any of the Arduino digital pins to controll the display. The order of the parameters is the following: LiquidCrystal(RS, R/W, Enable, d0, d1, d2, d3, d4, d5, d6, d7) If R/W is connected to GND you do not use the parameter in the function: LiquidCrystal(RS, Enable, d0, d1, d2, d3, d4, d5, d6, d7) If you want to operate in the 4-bit mode the function changes: LiquidCrystal(RS, R/W, Enable, d4, d5, d6, d7) If you are using an LCD display with the I2C connection you do not define the connected pins because you do not connected to single pins but you define the HEX address and the display size: LiquidCrystal_I2C lcd(0x27, 20, 4); |
x | lcd.begin() | The lcd.begin(cols, rows) function has to be called to define the kind of LCD display with the number of columns and rows. The function has to be called in the void setup() part of your sketch. For the 16x2 display you write lcd.begin(16,2) and for the 20x4 lcd.begin(20,4). The example below defines the display as 20x4 display and display a text. | |
x | lcd.init() | Initialization of the I2C display. | |
x | x | lcd.clear() | The clear function clears any data on the LCD screen and positions the cursor in the upper-left corner. The following sketch first outputs the text and clears the display after a short delay. |
x | x | lcd.home() | This function places the cursor at the upper left corner of the screen. |
x | x | lcd.setCursor() | If you want to write text to your LCD display, you have to define the starting position of the character you want to print onto the LCD with function lcd.setCursor(col, row). Although you have to define the row the character should be displayed. The following example print the word DIYI0T on different positions onto the screen. |
x | x | lcd.write() | Use the function write to display the value of a variable. For example the sensor value of a temperature module like the following example. |
x | x | lcd.print() | This function displays different data types: char, byte, int, long, or string. A string has to be in between quotation marks („“). Numbers can be printed without the quotation marks. Numbers can also be printed in different number systems lcd.print(data, BASE) with BIN for binary (base 2), DEC for decimal (base 10), OCT for octal (base 8), HEX for hexadecimal (base 16). The following example prints the string „DIYI0T“ and 101 on the display. |
x | lcd.println() | This function displays also different data types: char, byte, int, long, or string like the function lcd.print() but lcd.println() prints always a newline to output stream. In the following example you see the difference between the function lcd.print() and lcd.println(). | |
x | x | lcd.cursor() / lcd.noCursor() | Displays or hide the LCD cursor as an underscore (line) at the position to which the next character will be written. The following example shows a sketch to make a blinking cursor similar to what you see in many text input fields. |
x | x | lcd.blink() / lcd.noBlink() | The blink and noBlink function shows or hides a block style cursor that blinks on and off. |
x | x | lcd.display() / lcd.noDisplay() | This function turn on and off any text or cursor on the display but does not delete the information from the memory. Therefore is is possible to turn the display on and off with this function like you see in the following example. |
x | x | lcd.scrollDisplayLeft() / lcd.scrollDisplayRight() | This function scrolls the contents of the display (text and cursor) a one position to the left or to the right. After 40 spaces the function will loops back to the first character. With this function in the loop part of your sketch you can build a scrolling text function. Scrolling text if you want to print more than 16 or 20 characters in one line, than the scrolling text function is very handy. First the substring with the maximum of characters per line is printed, moving the start column from the right to the left on the LCD screen. Than the first character is dropped and the next character is printed to the substring. This process repeats until the full string is displayed onto the screen. The following example shows a scrolling text on an 20x4 LCD display. |
x | x | lcd.autoscroll() / lcd.noAutoscroll() | The autoscroll function turn on or off the functionality that each character is shifted by one position. The function can be used like the scrollDisplayLeft / scrollDisplayRight function. The following example shows a scrolling text on an 20x4 LCD display. |
x | x | lcd. leftToRight() / lcd.rightToLeft() | The leftToRight and rightToLeft functions changes the direction for text written to the LCD. The default mode is from left to right which you do not have to define at the start of the sketch. The next example sketch shows you the difference between both functions for the string „DIYI0T“. |
x | x | lcd.createChar() | There is the possibility to create custom characters with the createChar function. How to create the custom characters is described in the following chapter of this article as well as an example. |
x | lcd.backlight() | The backlight function is usefull if you do not want to turn off the whole display (see lcd.display()) and therefore only switch on and off the backlight. But before you can use this function you have to define the backlight pin with the function setBacklightPin(pin, polarity). The following example shows a sketch to turn on and off the backlight. lcd.setBacklightPin(7, NEGATIVE); lcd.setBacklight(1); | |
x | lcd.moveCursorLeft() / lcd.moveCursorRight() | This function let you move the curser to the left and to the right. To use this function usefull you have to combine it with lcd.setCursor() because otherwise there is not cursor to move left or right. For our example we also use the function lcd.cursor() to make the cursor visible. | |
x | lcd.on() / lcd.off() | This function switches the LCD display on and off. It will switch on/off the LCD controller and the backlight. This method has the same effect of calling display/noDisplay and backlight/noBacklight. |
10. 커스텀 폰트
명령어 차이를 자세하게 올려준 사이트에서 폰트 커스텀에 대해서도 내용이 있어서 따라해 봤습니다.
이 때, 사용하는 LiquidCrystal_I2C 라이브러리는 범용을 사용하는 지라, 아래 라이브러리를 설치합니다.
소스는 아래와 같습니다. 폰트라기 보단 캐릭터 입니다.
#include "Wire.h" #include "LiquidCrystal_I2C.h" // Set the LCD address to 0x27 in PCF8574 by NXP and Set to 0x3F in PCF8574A by Ti LiquidCrystal_I2C lcd(0x27, 20, 4); byte customChar1[] = { B01110, B01110, B00100, B11111, B00100, B01110, B01010, B01010 }; byte customChar2[] = { B01110, B01110, B10101, B01110, B00100, B00100, B01010, B10001 }; void setup() { lcd.init(); lcd.backlight(); } void loop() { lcd.createChar(0, customChar1); lcd.home(); lcd.write(0); delay(1000); lcd.createChar(0, customChar2); lcd.home(); lcd.write(0); delay(1000); }
Bitmap 을 이용해서 만들었고, 화면 refresh 를 통해서 움직이는 것 처럼 구성했네요.
동영상도 올려 봅니다.
참고로, 이 Liquid Crystal 은 Hitachi HD44780 를 사용하거나 호환품들이라 아래 폰트를 기본 제공합니다.
11. 아...
인터넷에서 보지 말아야 할 것을 봐버렸습니다.
이렇게 이쁘게도 커스터마이징 할 수 있는거군요.
다음은, 커스텀 폰트를 가지고 놀아보겠습니다.
'Hardware' 카테고리의 다른 글
Hardware | 레트로 led 글자판 HPDL-1414 사용기 - 1 (0) | 2019.10.15 |
---|---|
Hardware | 공기질 측정용 MiCS-6814 센서를 사용해 보자 - 1 (26) | 2019.10.12 |
Hardware | Arduino 로 Gimbal 컨트롤 하기 (2) | 2019.10.07 |
Hardware | 재생토너 chip 교환기 - 2 (0) | 2019.10.04 |
Hardware | SMD 부품 납땜용 오븐 취득기 (0) | 2019.10.02 |
1. 수리 의뢰
독서를 좋아하는 회사 동료는 크레마 사운드업을 들고 출퇴근 하면서 글을 많이 읽습니다.
책에 대해 이런저런 이야기 하다가, 일전에 크레마 사운드업 액정이 깨졌지만, 이만한게 없어서 또 샀다고 하더군요.
흠흠... 새로운 기기의 수리 기회인가?
일단 가져와 보라 했습니다.
크레마 계열이 소금 액정이라 쉽게 깨진다고 하네요.
e-ink 라서 그런지, 죽기 바로 직전의 화면을 계속 보여줍니다.
저렴하게 수리할 수 있겠다라는 느낌을 가지고 수리 의뢰를 받습니다.
2. 분해
어떤 액정을 사용하는지, 수리가 가능한지를 알아보기 위해 분해를 시작합니다.
외관상 볼트는 보이지 않으니, 헤라를 넣어서 상하판을 분리하기 위한 적당한 위치를 찾습니다.
전원 스위치 옆부분을 살짝 밀어보니 단차가 생깁니다. 구조적으로 지지대가 적어 헤라를 넣기 적당해 보이네요.
드드득 하면서 분리가 됩니다.
특별한 상처 나지 않고 기분 좋게 분리가 되었습니다.
나중에 배터리 교환도 쉽게 가능하겠네요.
페이지 넘기는 버튼과 연결된 부분 말고는 마무리는 나쁘지 않아 보입니다.
크렉이, 이 페이지 넘기는 버튼 쪽에서 생겼네요. 세게 눌렸거나 이동중에 이쪽 부분에 충격이 가해져서 깨진 것 같습니다.
기판이 이뻐서 기판만 찍어봅니다.
위에서 보이는 것 처럼, 액정과 연결된 부분은 총 세 곳 입니다.
사진에서 오른쪽은 터치센서 커넥터 이고, 왼쪽 작은것은 LED 커넥터와 액정 데이터 커넥터 입니다.
기판 분해를 시작합니다. 오른쪽에 테이프를 놔두고 나사가 도망가지 않게 하나하나를 붙여 놓습니다.
터치센서 커넥터 분리하구요.
액정과 화면밝기 (LED) 커넥터를 분리합니다.
기판이 분리되고 드디어 액정의 정보를 확인 할 수 있습니다.
ED060XCD 네요.
크렉 전체 샷 입니다.
액정 밑 부분의 검은 색 LED 빛샘 방지 테이프를 살살 벗긴 후,
태두리의 양면 테이프를 헤어드라이기로 달궈서 분리시키면, 최종적으로 상판과 액정이 분리됩니다.
검은색 스폰지 부분도 분리해 줍니다. 양면테이프라 조심해서 분리해야 추가 파손을 막을 수 있습니다.
e-ink 라 그런지, 이 난리를 쳐도 마지막 모습으로 잉크가 세겨져 있습니다.
손으로 만져보면 꼭 인쇄된것 같이, 검은 색 부분이 오돌토돌 합니다.
커넥터 들을 자세히 보면, 액정 위에 LED 조명, 그리고 터치 센서가 올라가 있는 것을 확인 할 수 있습니다.
액정 > LED > 터치 센서 순서 입니다.
LED 와 터치 센서는 재활용 해야 하니, 액정만 잘 분리해야 합니다.
여러 겹으로 연결되어 있으니, 최소한의 껍질만 벗겨내야 합니다.
깨진 액정을 마지막으로 제거하구요.
액정과 LED 판 사이에 있는 마지막 한장 (e-ink 로 더러워진) 층만 벗겨내면 끝 입니다.
액정을 제거하면서 자잘한 무수한 유리가루가 튑니다. 손에도 찔리면 너무 작아서 찾을 수도 없어요.
가능하면 보호 장갑을 착용하고 작업하시길 권해 드립니다.
저는 귀찮아서 걍 했습니다.
3. 액정 대체품 선정
원래 재품인 ED060XCD 를 구입하면 좋겠지만, LED 와 터치센서 한몸으로만 팔고 있습니다.
45 USD... 이럴꺼면 그냥 정식 수입 업체에 수리 맡기면 됩니다.
- https://cafe.naver.com/ebook/468036
위위 사진의 흰색 스티커 부분을 보면 사운드의 액정은 ED060XH7 모델입니다.
구글링 합니다.
ED060XH7를 사용하는 다른 e북 제품이 다른 액정 모델과 혼용해서 쓰고 있다는 것을 발견합니다.
ED060XD4 !!!
다른 모델도 있었던 거 같은데 기억이 안 나네요;
알리를 검색합니다. 가격 차이가 없네요 ㅡㅜ
4. 6인치 액정 제품들
참고로 6인치 e-ink 제품들에 대한 리스트를 올려 봅니다.
여기서 알게된 사실은, 크레마 사운드에 들어간 액정이, 사운드업에 들어간 액정보다 더 좋습니다. (DPI 가 더 높음)
그래서, 액정 교체시 가장 좋은 선택은, 터치센서와 LED 가 빠진, 민짜 ED060XH7 만을 구입해서 이식하는 것 입니다.
그런데, 아직 민짜 ED060XH7 만을 파는 곳이 없네요.
9월 초에 주문을 넣었지만, 한가위가 끝나고 9월이 다되어 갈 때쯔음 도착했습니다.
제품이 액정이니 만큼, 잘 포장되어 왔습니다.
뽁뽁이로 잘 쌓여져 왔구요.
마지막 테스트한 화면으로 배송이 되었습니다.
여타 액정과 비슷해 보입니다.
커넥터 부분에 캐패시터 SMD 와 칩이 하나 달려 있습니다.
전체적인 모양은 원래 액정과 다르나, 커넥터 끝부분은 동일합니다.
우선 PCB 에 연결해서 정상 동작 하는지 확인해 봅니다.
오오오!!! 동작해!
확인이 끝났으니, 확신을 가지고 조립을 시작합니다.
바로 본격적인 조립으로 들어갑니다. 순서는 분해의 역순...
먼저 분리해 놨던, 터치센서와 LED 뭉치를 상판에 올려 놓습니다.
양면테이프에 원래 붙여져 있던 흔적이 있으니, 정확히 맞춰서 올려 줍니다.
이게 틀어지면 PCB 커넥터 부분에서 불필요한 힘을 받을 수 있으니 주의애햐 합니다.
그 위에, 이번에 도착한 새로운 액정을 올려 줍니다.
LED 빛샘을 방지하는 검은 테이프를 올려서 다시 잘 붙여 줍니다.
검은색 쿠션도 붙여 주구요. (이거 붙이는거 잊어버려 나중에 한번 더 분해...)
테이프에 붙여서 챙겨 놨던 나사들을 하나씩 다시 조여 줍니다.
LED 커넥터를 결합해 줍니다.
커넥터를 오픈하는 방법이 다른 것과 달리 뒤쪽을 열어줘야 합니다. 그리고 선을 넣을 때 좀 빡빡합니다. 주의해서 연결해 줍니다.
터치 센서와 액정 커넥터를 이어주고, 전원 스위치 커넥터도 연결해서 마무리 해줍니다.
나머지는 뚜껑을 닫고 문제 없이 동작하기를 빌면 끝.
모두 조립하고 전원을 인가합니다.
두둥!!! 성공입니다.
터치도 화면 밝기도 잘 동작합니다.
집에 있는 인터넷에 연결해서 Wi-Fi 도 확인해 봅니다.
그 사이에 시스템도 업데이트 되었네요. 테스트 겸 시스템 업데이트도 해 줍니다.
모든게 정상으로 마무리 되었습니다. 뿌듯!
원래 주인에게 돌려 주면서 기존 액정과 비교해 봤습니다.
확실히 원래 사용된 ED060XCD 가 ED060XD4 보다 가독성이 좋습니다.
보호필름 차이도 살짝 있겠지만, 액정 차이가 있다는 것은 확실해 보입니다.
원래 액정이 잔상도 훨씬 더 적구요.
왠지 그냥 끝내기가 아쉬워, 액정 고장난 크레마 하나를 더 구해서 수리 해보고 싶어 졌습니다.
지금까지 조사하고 확인한 정보들이 있으니, 다음번은 쉽게 가능할 것 같습니다.
1만원에 중고장터에서 구입 했습니다.
액정 깨진 크레마 카르타가 도착하면, 또다시 "저렴한" 수리 도전해 보겠습니다.
'Hardware' 카테고리의 다른 글
Hardware | 재생토너 chip 교환기 - 2 (0) | 2019.10.04 |
---|---|
Hardware | SMD 부품 납땜용 오븐 취득기 (0) | 2019.10.02 |
Hardware | Dual-axis XY Joystick Module (0) | 2019.09.08 |
Hardware | LED 전등 교환기 (0) | 2019.08.28 |
Hardware | 555 chip 알아보기 - 1 (0) | 2019.08.26 |
1. Dual-Axis XY
집에 가지고 있는 Stepping motor 를 원격으로 조정하고 싶을 때, 조이스틱으로 하면 편할것 같아,
우선 arduino 와 조이스틱 구성의 기본 동작을 익혀봤습니다.
위의 목적 외에도 새로운 모듈을 시험해 보는 것은 언제나 즐거운 일 입니다.
2. 구매
AliExpress 를 뒤지면 여러가지 나오는데, 저는 아래 제품을 구매 했습니다.
* For Arduino Dual-axis XY Joystick Module Higher Quality PS2 Joystick Control Lever Sensor KY-023 Rated 4.9 /5
- https://www.aliexpress.com/item/32683242155.html
옵션으로 고정 틀이 들어간 세트도 같이 팔지만,
언제나 그렇 듯, 최소한의 비용 투자가 회사원의 취미로 유지되는 조건이므로 모듈만 구매합니다.
혹시 여유가 있으시다면, 아크릴 고정 틀 세트로 구매하시는 것을 추천드립니다.
어디 놓고 테스트 하거나 구동시킬라면 손으로 잡고 해야 하는데 꽤 불편합니다.
3. 도착
잊을만 할 때 도착했습니다.
엄지 손가락으로 조정하는 고무 모자를 벗겨 보면, XY 축 센서와 SW 센서가 붙어 있습니다.
더 이상 설명이 필요없는 간단한 구성 입니다.
4. Layout
XY 센서는 analog 이고, switch 는 digital 신호로 컨트롤 됩니다.
Arduino nano 와의 연결은 다음과 같습니다.
Joystick | Arduino Nano -------------------------- GND | GND 5V | 5V VRX | A0 VRY | A1 SW | D2 --------------------------
배선도는 다음과 같구요.
실제 연결은 다음과 같습니다.
선이 5가닥이 필요하다 보니, 회로 구성 시 자칫 복잡해 질 수 있는 여건이네요.
5. Sketch
소스는 다음과 같습니다. 소스 참고는 아래 사이트 입니다.
* How to connect and use Analog Joystick with Arduino
- https://www.brainy-bits.com/arduino-joystick-tutorial/
Switch 눌림과 XY 축 값을 5V 기준으로 leveling 하여 수치로 표시해 줍니다.
// Arduino pin numbers const int SW_pin = 2; // digital pin connected to switch output const int X_pin = 0; // analog pin connected to X output const int Y_pin = 1; // analog pin connected to Y output void setup() { pinMode(SW_pin, INPUT); digitalWrite(SW_pin, HIGH); Serial.begin(115200); } void loop() { Serial.print("Switch: "); Serial.println(digitalRead(SW_pin)); Serial.print("X-axis: "); Serial.println(analogRead(X_pin)); Serial.print("Y-axis: "); Serial.println(analogRead(Y_pin)); Serial.print("\n"); delay(500); }
스위치가 눌려있는 시간에는 Switch 값이 "0" 으로 변합니다.
요리조리 움직이다 보면 최대값이 나오는 구간이 있습니다. 5V 입력이다 보니 최대값이 1023 으로 표시됩니다.
입력 Vcc 를 3.3V 로 변경하면, 5V 대비 3.3V 로 레벨링 하여 나옵니다. 이 때는 대략 675 정도가 최대값이 되겠네요.
동영상 띄워 봅니다.
FIN
음? 벌써 끝?
네, 이 포스트는 gimbal 에 달려 있는 stepping 모터를 컨트롤 하기 위한 준비 단계라,
XY joystick 모듈과 arduino 와의 연결 확인만 되면 됩니다.
실제 gimbal 과 연결하여 stepping 모터를 컨트롤 하는 것은 다음 포트스에서 해보겠습니다.
'Hardware' 카테고리의 다른 글
Hardware | SMD 부품 납땜용 오븐 취득기 (0) | 2019.10.02 |
---|---|
Hardware | ebook 크레마 사운드업 액정 수리기 (27) | 2019.10.01 |
Hardware | LED 전등 교환기 (0) | 2019.08.28 |
Hardware | 555 chip 알아보기 - 1 (0) | 2019.08.26 |
Hardware | ESP-01 or ESP8266 사용기 - 5 (2) | 2019.08.14 |
1. LED 전등
한창 LED 전구로 전등을 바꾸는 붐이 불 때 (아마도 2016년도 쯤), 저도 그 흐름에 동참하고 싶었습니다.
LED 는 LG Innotek 이 좋네, 삼성이 좋네, LED 모듈에는 그에 맞는 SMPS 를 구매해야 하네 등, 여러 정보를 수집했더랬습니다.
대략 제품을 정해 놓고 막상 교체할 전등 갯수에 맞는 비용을 상정해 봤더니, 그 당시 거진 40만원 선.
그냥 싼마이 현광등을 10년 이상치를 사놔도 되는 금액이었습니다.
그에 반하여 전기료에 미치는 영향은 미비. 왜냐하면 한여름 아니면 한달 전기세가 1만 5천원을 넘지 않으니.
비록 당시의 꿈을 펼치지는 못했지만, 마음속에 계속 간직하고 있었습니다. (이게 뭐라고~)
2. 쓰레기장
때는 2019년 봄, 유독 올해는 세계의 기운이 바뀐다는 2019년 봄 여느 일요일.
평소와 다름 없이 쓰레기를 버리러 가다, 쓰레기장에 버려진 LED 전등이!
이사를 새로 오면서 기존에 달린 전등을 탈거하고 수거장에 버린 듯 합니다.
으아아아아앙아아아아~~~!!!!!
바로 집으로 가지고 옵니다.
꽤나 긴 LED 모듈 입니다.
생산연도는 잘 모르겠습니다.
3P 전선 연결 커넥터도 득템 하구요.
철제로 된 베이스 판은 도로 쓰레기장에 갔다 버리고, LED 모듈이 정상인지 테스트 해봅니다.
한놈은 중간이 들어오지 않는군요.
LED 모듈은 LED chip 몇개를 한 그룹으로 나누고, 그룹끼리 전원이 병렬로 연결되어 있습니다.
그룹내 에서는 LED chip 끼리는 직렬로 연결되어 있어서, 그 중 한놈만 죽어도 저렇게 한 그룹이 나갑니다.
해체하면서 손상되었는지 위 사진처럼 손상된 chip 들이 꽤 있습니다.
누런 찌꺼기도 많아서, 1000원짜리 소독용 에탄올로 일단 씻어 놓습니다.
이번에 수거한 LED 는 길이가 길고, 손상된 LED chip 들이 많아, 회생시키고 실제 활용하려면 손이 많이 갈것 같습니다.
3. again 쓰레기장
음?!!! 몇 주 지나지 않아 또다른 LED 전등이 쓰레기장에 버려져 있었습니다.
이 친구는 군데군데 chip 이 아예 타버렸네요.
탄게 아니라 거의 폭발 수준.
기판에도 폭발시의 열기로 변형되어 있는 부분이 있습니다.
전원 커넥터는 분리하다가 바스라져 버리네요.
강력본드로 복구는 해 놓습니다.
전등 제조사에서 붙여놓은 스펙입니다.
소비전력이 명기되어 있지 않습니다만, 정격 입력전력이 사용되는 전력일까요? 그렇다면 꽤나 많은 양이네요.
컨버터 용량을 보니 3개 해서 90W 는 사용할 것 같습니다.
생산연도는 2016년 입니다.
일단 살아있는 놈 하나 건집니다.
4. 필요한 부품 구매
기존 형광등 하우징에 설치되어 있는 형광등 부품을 제거하여 공간을 마련하고, 아래 그림처럼 LED 모듈을 자석으로 고정하도록 합니다.
단, 위처럼 생긴 자석은 그리 센것이 없어서,
네오디뮴으로 되어 있고, 중앙에 구멍이 뚫려 있어 볼트를 이용해서 스페이서와 고정할 수 있는 자석을 구입할껍니다.
우선 얼마나 LED 모듈 기판을 띄울 것인지, 기존 거실 현광등의 하우징을 측정해 봅니다. 깊이는 42mm.
기존 control box 의 높이는 21mm.
그렇담, 25mm 정도를 띄워 주면 되겠군요.
우선 하우징 철판에 고정할 수 있도록, 네오디움 자석을 구입합니다. 높이는 3mm.
구매시 주의할 점은, 너트를 끼워도 높이에 영향가지 않도록, 가운데가 오목한 제품을 선택해야 합니다.
* 5/10/20pcs 10 x 3mm Hole: 3mm Ring Neodymium Countersunk Magnets 10x3 Super Strong Rare Earth Magnet 10*3-3
- https://www.aliexpress.com/item/32955383709.html
크기가 10mm 가 적당한지, 12mm 가 적당한지 몰라, 두 가지 모두 일단 10개씩 구입합니다.
* 10pcs 12 x 3 mm Hole 3 mm Super Strong Ring Loop Countersunk Magnet Rare Earth Neo Neodymium Magnets Cylinder 3mm
- https://www.aliexpress.com/item/32954005998.html
붙을 수 있는 금속이 근처에 있으면 무섭게 달라 붙기 때문에, 꽤 두꺼운 뽁뽁이에 쌓여져 배달되었습니다.
우선 10mm 짜리가 왔습니다.
특별히 문제는 없지만, 철판과 닿는 면적이 작아서 그렇게까지 세게 붙어있지 않습니다.
나중에 12mm 짜리가 와서 모두 장착해 봤더니, 딱 맞는 세기로 잘 붙었습니다.
여러분들도 동일한 작업시에는 12mm 짜리 구입하세요.
다음으로는 대가리가 평평한 볼트 입니다.
* 50pcs M1 M1.2 M1.4 M1.6 M2 M2.5 M3 M4 Mini Micro Small Black 304 Stainless steel Cross Phillips Flat Countersunk Head Screw Bolt
- https://www.aliexpress.com/item/32975242274.html
있어보이게 black zinc 로 된 제품으로 구입했습니다.
볼트 헤드가 납짝해야 자석과 채결 시, 네오디뮴 자석이 철판에 닿는 것을 방해하지 않습니다.
볼트의 내 직경이 3mm 짜리를 M3 로 칭하는 것 같습니다. 모든 부품들을 M3 나 3mm 로 통일합니다.
불트를 구매했으니 너트도 필요하겠죠?
* 50pcs/20pcs/lot Nylon Lock Nut DIN985 M2 M2.5 M3 M4 M5 M6 Steel With Black OR White Znic
- https://www.aliexpress.com/item/32844861148.html
너트 안에 고무가 있어, 잘 풀어지지 않는 너트를 구입했습니다.
스페이서는 22mm 짜리를 구매합니다. 그래야 22mm (스페이서) + 3mm (자석) = 25 mm 라는 계산이 나옵니다.
역시 동일하게 M3 형식입니다.
한 끝쪽에 3mm 볼트를 채결할 수 있도록 되어 있습니다. 설명에는 6mm 가 파여있다고는 하지만, 더 파져 있습니다.
* 50Pcs M3*5/6/8/10/12/14/16/18/20/25+6mm Hex Nut Spacing Screw Brass Threaded Pillar PCB Computer PC Motherboard Standoff Spacer
- https://www.aliexpress.com/item/32823612285.html
볼트 + 스페이서 + 너트를 채결하면 다음과 같습니다.
5. 기존 부품 제거
기존 현광등과 관련된 전선을 제거합니다.
LED 흉내만 내고 1년이 안되어서 죽어버린 LED 형광등을 제거합니다.
안정기와 소켓, 그리고 지지대 등이 제거되니 깔끔해 집니다.
6. LED 모듈 장착
먼저 도착한 10mm 직경 자석이 사진에서 오른쪽, 12mm 가 왼쪽 입니다.
10mm 도 괜찮지만, 좀더 확실히 하기 위해 모두 12mm 네오디뮴 자석으로 교체합니다.
중앙이 움푹 파인 자석을 구매했지만, 패이지 않은 자석이 하나 있네요. QA 가 대충인 결과입니다.
전원 커넥터에 쉽게 삽입이 될 수 있게, DC 컨퍼터의 전선 끝을 납땜해 줍니다.
DC 전원 컨버터 다리에도 자석을 붙여서 하우징 철판에 붙여 줍니다.
딱 소리 나면서 잘 붙는게 기분 좋네요. 위치가 마음에 안들면 요리조리 움직여도 됩니다. Neodymium 자석 넘 좋아요.
접지도 잊지 않고 해 줍니다. 사진에서 녹색 전선이 접지 입니다.
LED 모듈 본체 부착!
따따닥~! 하면서 고정되었습니다.
한가지 아쉬운 점은 길이가 맞지 않아 윗 사진처럼 비틀어서 넣어야 한다는 것.
겉유리 마저 채결하면 작업 끝 입니다.
7. 마무리
부품 수급 과정이 오래 걸렸지만, 막상 작업시에는 문제 없이 끝났습니다.
아핫 깔끔 하군요.
거추장 스러웠던 예전 부품들을 버리고 내부가 깔끔해 진 것 같아서 기분이 좋습니다.
다만, LED 라고 해도 열이 꽤 있네요. 열이 잘 빠져나갈 수 있는 구조가 아니다 보니, 조금 걱정이 됩니다.
애초 디자인 부터 열배출을 감안하고 등가구들을 만들어 주면 어떨까 하는 생각이 매번 듭니다.
전등을 손볼 때 마다 드는 생각이, 나만의 등기구를 만들어 보고 싶다 입니다.
기능적 구조에서 디자인 까지 마음에 쏙 드는 제품을 찾아보기 힘든게 등가구 아닌가 싶습니다.
마음같아서는, 열 배출이 잘되는 등기구의 하우징, DC 컨버터 모듈 커버 및 회로 디자인, LED 모듈 디자인 등을 직접 해보고 싶네요.
이 작업 했다고 이 난리가 되었습니다.
'Hardware' 카테고리의 다른 글
Hardware | ebook 크레마 사운드업 액정 수리기 (27) | 2019.10.01 |
---|---|
Hardware | Dual-axis XY Joystick Module (0) | 2019.09.08 |
Hardware | 555 chip 알아보기 - 1 (0) | 2019.08.26 |
Hardware | ESP-01 or ESP8266 사용기 - 5 (2) | 2019.08.14 |
Hardware | ZP07-MP901 공기질 측정 센서 (0) | 2019.08.13 |
1. 16 bit ADC
ADC 는 Analog to Digital Converter 의 약자로서, 입력받는 값에 대해 digital 로 표현해 줍니다.
Arduino 에는 이 ADC 가 장착되어 있어서 analog input 에 입력받은 신호에 대해 digital 로 leveling 을 해서 보여줍니다.
즉, analog 값을 digital 로 변환해서 보여주는 것이죠.
참고로, arduino nano 에는 10 bit ADC 가 장착되어 있어서 10 bit (0 ~ 1023) 값으로 표현해 줍니다.
다 좋은데, 민감한 sensor 를 다룰 때에는, 이 10 bit ADC 가 아쉬울 때가 있습니다.
좀더 정밀한 값을 들여다 보고 싶은데, 값과 값의 사이값을 알수가 없는거죠.
이 때 등장하는 것이 외부 ADC 모듈 입니다.
AliExpress 와 arduino 를 사랑하는 사람들의 blog 를 보니 ADS1115 라는 것을 많이 사용하는 군요.
ADS1115 는 Texas Instruments 사의 chip 을 사용한 16 bit ADC 입니다.
- Resolution: 16 Bits
- Programmable Sample Rate: 8 to 860 Samples/Second
- Power Supply/Logic Levels: 2.0V to 5.5V
- Low Current Consumption: Continuous Mode: Only 150µA Single-Shot Mode: Auto Shut-Down
- Internal Low-Drift Voltage Reference
- Internal Oscillator
- Internal PGA: up to x16
- I2C Interface: 4-Pin-Selectable Addresses
- Four Single-Ended or 2 Differential Inputs
- Programmable Comparator
아래 link 의 제품이 적당해 보이네요. 구매합니다.
* I2C ADS1115 16 Bit ADC 4 channel Module with Programmable Gain Amplifier 2.0V to 5.5V for Arduino RPi
- https://www.aliexpress.com/item/32850495005.html
2. 도착
그간 업무로 정신 없었는데, 어느샌가 도착했습니다.
블로그 내용을 부풀리기 위해서라도 항상 도착샷을 올리는건 필수 입니다.
저렇코롬 생겼구요.
ALERT 와 ADDR 에 pinheader 는 남겨 놓고 납땜하기로 합니다. 그 덕에 2 pinheader 하나 득템.
그 이유는 이 밑에 설명.
3. Addressing
이 ADS1115 는 I2C 통신을 하는데, 하나의 arduino 와 4개까지 연결할 수 있다 보니, I2C 접근 주소가 겹치지 않게 할 수 있습니다.
방법은 ADDR pin 을 어디로 연결하느냐로 address 를 결정할 수 있습니다.
* Adafruit 4-Channel ADC Breakouts
- https://learn.adafruit.com/adafruit-4-channel-adc-breakouts
- 0x48 (1001000) ADR -> GND
- 0x49 (1001001) ADR -> VDD
- 0x4A (1001010) ADR -> SDA
- 0x4B (1001011) ADR -> SCL
회로를 꾸밀 때 마다, address 정의를 위한 연결을 해도 되지만, 귀찮겠죠?
또한, addressing 을 위해 I2C 용 핀이나, VCC 로 연결하면 왠지 껄끄럽습니다.
그래서 ground 로 연결하여, 기본 0x48 을 가지게 합니다.
또한, 아래 새다리님의 블로그를 보면, 이 연결을 가장 깔끔하게 처리하셨더군요. 따라쟁이는 바로 따라해 봅니다.
* 16비트, 4채널 ADC ADS1115 아두이노 Test
- https://m.blog.naver.com/twophase/220801664646
예전에 파손된 멀티탭 전원선에서 동선 한가닥을 짧게 잘라 내어 아래와 같이 납땜 해 주섰습니다.
캡톤 테이프로 혹시 모를 쇼트를 방지했구요.
i2cdetect 로 addressing 이 잘 되었나 확인해 봅니다.
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
흠흠. 잘 되었네요.
4. Layout
* Arduino ADS1115 Module Getting Started Tutorial
위의 tutorial 사이트에서 보면 ADS1115 를 활용하여, arduino 자체 3.3V 출력을 세밀하게 검증해 보는 소스가 있습니다.
따라쟁이는 당연 따라서 검증해 봅니다.
연결은 I2C 용 연결 2가닥과 VCC/GND 그리고, 입력용에 arduino 3.3V output 을 연결합니다.
ADS1115 | Arduino Nano ------------------------ VCC | 5V GND | GND SCL | A5 SDA | A4 A0 | 3.3V ------------------------
그림으로 그려보면 다음과 같습니다.
5. Sketch
이미 관련한 library 가 나와 있기 때문에, library 를 설치합니다.
역시 God Adafruit. 없는게 없습니다.
ads1115 로 검색하면 나오지 않고, ads1x 로 검색해야 나옵니다.
이제 HENRY'S BENCH 에서 Henry 아저씨가 arduino 3.3V output 에 대해, ADS1115 를 검증해 놓은 소스를 사용해 봅니다.
#include "Wire.h" #include "Adafruit_ADS1015.h" Adafruit_ADS1115 ads(0x48); float Voltage = 0.0; void setup(void) { Serial.begin(9600); ads.begin(); } void loop(void) { int16_t adc0; // we read from the ADC, we have a sixteen bit integer as a result adc0 = ads.readADC_SingleEnded(0); Voltage = (adc0 * 0.1875)/1000; Serial.print("AIN0: "); Serial.print(adc0); Serial.print("\tVoltage: "); Serial.println(Voltage, 7); delay(1000); }
이 소스에서 가장 중요한 것은 PGA (Programmable Gain Amplifier) 값 입니다.
이 ADS1115 의 default output 최대값이 6.144V 이므로, 이를 15 bit (16 bit 이지만, 부호를 표시하는 1 bit 를 빼면 15 bit 만 활용 가능) 인 32767 로 나누면, 출력 1 에 대해 0.1875mV 라는 계산이 나옵니다.
In the default mode, the setting is +/-6.144 volts.
Thus the value of 32767 would represent a value of 6.144 volts.
Dividing 6.144 volts by 32767 yields a scale factor of 0.1875 mV per bit. This is a significant improvement over the Arduino ADC which resolution of approximately 5 mV per bit. In fact, its about 26 times better!
위의 로직이 소스에 활용되었습니다.
6. 결과
지금까지 구성한 layout 과 위의 소스를 가지고 실행해 보면 다음과 같이 결과가 나옵니다.
3.3V 이지만, 미세하게 값이 변하고 있다는 것을 알 수 있습니다.
이게 USB 를 통해서 연결하지 않고 Power source 를 통해서 입력 받으면 좀더 정확하고 잘 변하지 않는 3.3V 를 얻을 수 있다고 해요.
7. 비교
Arduino nano 의 자체 3.3V 를 16 bit ADC 를 거치지 않은 채로, anlogRead (10 bit ADC) 를 하면 어떨까?
참고로 Arduino 의 AnalogReference 의 정의는 다음과 같습니다.
--------------------------------
Arduino AVR Boards (Uno, Mega, Leonardo, etc.)
- DEFAULT: the default analog reference of 5 volts (on 5V Arduino boards) or 3.3 volts (on 3.3V Arduino boards)
- INTERNAL: an built-in reference, equal to 1.1 volts on the ATmega168 or ATmega328P and 2.56 volts on the ATmega32U4 and ATmega8 (not available on the Arduino Mega)
- INTERNAL1V1: a built-in 1.1V reference (Arduino Mega only)
- INTERNAL2V56: a built-in 2.56V reference (Arduino Mega only)
- EXTERNAL: the voltage applied to the AREF pin (0 to 5V only) is used as the reference.
--------------------------------
AnalogReference(DEFAULT) 를 사용하여, 5V 기준으로 입력값을 leveling 하게 했으며,
arduino nano 에는 PGA 가 없으므로, 단순히 5V 를 10 bit ADC 해상도를 감안하여, 1024 로 나누어, 한 level 당, 0.0049 V 로 계산하도록 했습니다.
최종 소스는 다음과 같습니다.
#include "Wire.h" #include "Adafruit_ADS1015.h" Adafruit_ADS1115 ads(0x48); float Voltage = 0.0; float Voltage2 = 0.0; // analogRead(A2) void setup(void) { analogReference(DEFAULT); Serial.begin(9600); ads.begin(); } void loop(void) { int16_t adc0; // we read from the ADC, we have a sixteen bit integer as a result adc0 = ads.readADC_SingleEnded(0); Voltage = (adc0 * 0.1875)/1000; Serial.print("AIN0: "); Serial.print(adc0); Serial.print("\tVoltage: "); Serial.print(Voltage, 7); // analogRead(A2) start int16_t adc2; adc2 = analogRead(A2); Voltage2 = (adc2 * 0.0049); Serial.print("\tAIN2: "); Serial.print(adc2); Serial.print("\tVoltage2: "); Serial.println(Voltage2, 7); // analogRead(A2) end delay(1000); }
결과값은 이렇게 나왔네요. 많이 부정확 합니다.
그 원인으로는,
- 5V reference 전압이 USB 를 통해 공급받으며, USB 전원은 불안하게 공급받습니다.
- PGA 가 없이, 단순히 5V reference 전압을 10 bit 로 나눈 값을 기준값으로 정했습니다.
- 16 bit 하고는 비교도 안되는 10 bit 해상도 차이가 납니다.
ADS1115 16 bit ADC 를 이용한 센서값 입력은 보다 정확한 값을 보장해 주네요.
향후 자주 사용해야 겠습니다.
'Hardware' 카테고리의 다른 글
Hardware | ESP-01 or ESP8266 사용기 - 5 (2) | 2019.08.14 |
---|---|
Hardware | ZP07-MP901 공기질 측정 센서 (0) | 2019.08.13 |
Hardware | Digital Compass - HMC5883L 사용기 - 3 (0) | 2019.08.10 |
Hardware | Arduino 를 DIY 해보자 - 2 (0) | 2019.08.04 |
Hardware | 납땜 주변 용품 (0) | 2019.08.02 |
1. Arduino Nano 를 DIY 해보자
이 글은 아래 포스트에서 이야기한, arduino 를 직접 만들어보기 2탄 입니다.
* Hardware | Arduino 를 DIY 해보자 - 1
- http://chocoball.tistory.com/entry/Hardware-Arduino-DIY-itself-1
처음 DIY 대상으로 arduino nano 입니다.
일단, 회로 보는 EAGLE 프로그램에서 뽑은 part list 를 구입에 필요한 것만 정리해 봤습니다.
------------------------------------------------------------------------------------------------------- | name | value | type | ------------------------------------------------------------------------------------------------------- | C1, C4, C6, C9 | 100nF | 0603 SMD | | C3, C7, C8 | 1uF | 0805 SMD | | C2, C5 | 4.7uF 16V | 0603 SMD Tantalum capacitor | ------------------------------------------------------------------------------------------------------- | RP1, RP2 | 1k Ohm | CAY16 Network resistor SMD | | L, PWR, RX, TX | LED | 0805 SMD | ------------------------------------------------------------------------------------------------------- | D1 | SS1P3L-M3 | Schottky diodes & rectifier 30V 1A | | F1 | 500mA 6V | 0603 SMD MF-FSMF050 Resetable Fuse | ------------------------------------------------------------------------------------------------------- | J1, J2 | 15 x 2 | single row male 2.54mm pich pin head | | J3 | USB Mini B | USB Mini B type female socket | | J4 | 6 | double row male 2.54mm pitch pinhead | | SW1 | 157 | SMD tactail switch | ------------------------------------------------------------------------------------------------------- | IC1 | FT232RL | SSOP28 USB UART interface IC | | IC2 | LM1117IMPX-5.0| SOT223 Linear regulator | | IC3 | ATMEGA328P-AU | TQFP32 8-bit Microcontroller | | Y1 | 16MHz | SMD Crystal ceramic resonator | -------------------------------------------------------------------------------------------------------
0603 SMD 및 CAY16 network resistor 등, 소형화에 특화된 부품들로 구성되어 있습니다.
Oscillator 마저도 SMD 타입 입니다.
정품 arduino nano 의 앞면과 뒷면 사진 입니다.
최신 arduino nano 는 ATmega328 chip 크기가 더욱 작아진 MLF (Micro Lead Frame) 형식으로,
ATmega328-MU 가 실장되어 있습니다.
참고로, 이 ATmega328-MU 의 Package type 은 32M1-A 라고 하네요.
- Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Summary.pdf
아래는 밑면입니다.
맨 왼쪽 밑부분에 0603 크기의 fuse 가 있으며,
중간 부분에 SMD 형식의 network resistor 가 실장되어 있습니다.
공간을 최대한 적게 차지하도록 작은 부품들을 사용되어 있습니다. 다만 구하기 힘든 부품들입니다.
2. 구입 부품 최종 확인
정품 nano 에 사용된 SMD 크기는 0603 이지만, 받은 보드는 0805 SMD 로 수정되었으며,
다른 부붐들도 보다 범용적이고 큰 부품들로 변경되어 있다는 것을 알 수 있습니다. 아래 파일은 그 회로도 입니다.
* BL-386
* BL-386(Silk)
참고가 될 수 있도록 arduino nano 의 official 자료를 아래에 올려 놓습니다.
* Arduino Nano V3.2
아래는 무료로 받은 보드 윗면입니다.
부품 크기가 0805 SMD 죠? 그리고 reset switch 마저도 큼지막 합니다.
아래는 밑면입니다.
모두 0805 SMD 이며, 왼쪽 윗부분의 diode 도 큼지막 합니다.
특징으로는 oscillator 가 4 pin 이며, 정사각형의 모양입니다. 이런건 처음이네요.
이 보드를 설계하신 분의 배려가 느껴집니다.
Arduino Nano 의 보드 자체 크기가 0805 를 충분히 커버할 수 있으므로, 궂이 0603 SMD 를 쓸 이유는 없는 것이지요.
다음에 준비하고 있는 Duemilanove 에서도 0805 SMD 를 그대로 사용하고 있어,
추가 부품을 그렇게 많이 구입하지 않아도 되어서 다행입니다.
최종적으로 실제 필요한 부품을 다시 정리해 봤습니다.
------------------------------------------------------------------------------------------------------- | name | value | type | ------------------------------------------------------------------------------------------------------- | C1, C3, C4, C7, C9 | 0.1uF | 0805 SMD | | C5, C6 | 22pF | 0805 SMD | | C8 | 10uF | 0805 SMD | ------------------------------------------------------------------------------------------------------- | R1, R2, R3 | 1k Ohm | 0805 SMD | | R4, R5, R6, R7 | 680 Ohm | 0805 SMD | | L, PWR, RX, TX | LED | 0805 SMD | ------------------------------------------------------------------------------------------------------- | D1 | SS14 | Schottky diodes & rectifier 30V 1A | ------------------------------------------------------------------------------------------------------- | J1, J2 | 15 x 2 | single row male 2.54mm pitch pinhead | | J3 | USB Mini B | USB Mini B type female socket | | J4 | 6 | double row male 2.54mm pitch pinhead | | SW1 | 3 x 6 x 2.5mm | SMD Tactile switch | ------------------------------------------------------------------------------------------------------- | IC1 | FT232RL | SSOP28 USB UART interface IC | | IC2 | LM1117IMPX-5.0| SOT223 Linear regulator | | IC3 | ATMEGA328P-AU | TQFP32 8-bit Microcontroller | | Y1 | 16MHz | 3225 SMD Crystal ceramic resonator | -------------------------------------------------------------------------------------------------------
필요한 부품 리스트를 만들면서 알게된, 배려가 깃든 보드의 특징은 다음과 같습니다.
* no network resistor
저항을 한데 모아 회로를 단순화 하기 위한 부품으로 SMD 용으 구하기 힘드나,
위의 보드에서는 모두 0805 SMD 로 변경되었습니다.
* no fuse
Fuse 가 생략되었습니다.
사실 arduino nano 는 과전류에 사용될 목적으로 만들어 진 것이 아니므로, 단순화를 위해 삭제된것 같습니다.
* bigger crystal
좁쌀만한 oscillator 가 아닌, 좀더 큰 resonator 로 변경되었습니다.
* bigger diode
Diode 도 일반적으로 사용되는 큰 부품으로 대체되었습니다.
* bigger switch
RST switch 도 큰걸로 대체되었습니다.
* all 0805 SMD based
그렇습니다. 0603 SMD는 모두 0805 SMD 로 변경되었습니다.
배려가 깃든 보드인 것을 조사하면서 알게 되니 감사한 마음이 저절로 듭니다.
이 자리를 빌어 다시한번 감사의 말씀 드립니다.
이제 각 부품 구입을 정리해 봅니다.
동시에 다른 arduino 를 준비하다 보니, 겹치는 부품들이 꽤 있습니다.
이런 부품을 공유할 수 있어서 좋네요.
8pin DIP socket 이 필요해서 555 주문할 때, 따로 10uF 을 주문했습니다.
얘만 투명 릴에 왔네요.
위의 세트에는 다음 저항들이 포함되어 있고, 딱 680 Ohm 은 없습니다.
10R / 22R / 47R / 100R / 220 / 470R / 750R / 1K / 2K2 / 4K7 / 6K8 / 10K
22K / 47K / 75K / 100K / 220K / 470K / 750K / 1M
잘 도착하여 받아본 부품 입니다.
다만, 요즘 Micro USB 추세라, Micro USB 도 구매합니다.
Mini USB 와 비교시 pin 간의 간격만 다를 뿐, pin 순서는 동일했습니다.
역시 Micro USB 가 더 단순하고 깔끔한 느낌을 줍니다.
Pin 간격이 좁을 뿐, 순서는 동일합니다.
다만, 요놈은 도착까지 3개월이 걸렸네요.
물론 검정 버전도 같이 가지고 있습니다.
Duemilanove 용으로 구입한 세트에 모두 포함되어 있습니다.
5V/800mA 사양대로라면 특별히 문제될껀 없다고 봅니다.
확대 사진입니다.
형식만 알면 제품을 선택하는 것은 그리 어렵지 않습니다.
AliExpress 에서 검색하니 바로 나오네요. 그 중에서 16MHz 제품을 선택해 줍니다.
* 10pcs SMD 3225 active crystal oscillator OSC 16MHZ 16M 3.2*2.5 3.3V 25PPM
잘 도착했구요.
Oscillator 치고는 직사각형으로 생겨서 신기합니다.
인두 팁으로 납땜을 하다 보니, 아무래도 사용되는 납이 많아져 버립니다.
특히 소자 밑으로 스며들게 해야 하는 oscillator 가 가장 힘들었습니다. (좀 지저분하게 되었죠?)
표면에 안착되지 않은 듯 해서 납을 좀 많이 먹여버리기도 하고, 네 귀퉁이의 소자가 붙어버린 것 같아서 납을 빨아들이기도 하고.
0805 SMD 의 LED 소자는 납땜 하는 열로 인하여 안쪽 구조가 쉽게 망가질 수 있어서 신경이 많이 쓰였습니다.
신기한 것은, anode / cathode 가 쉽게 구분될 수 있도록 띠가 마킹 되어 있었습니다.
위의 사진 처럼, 돌기가 있는 쪽이 + 극이네요.
설계대로라면 USB mini B 이어야 하지만, 요즘은 micro USB 로 통합되는 분위기라서 micro USB 를 장착해 봤습니다.
리드선의 순서는 동일해서, 간극만 맞추고 납땜하면 되었습니다.
잘 안착되게 리드선을 밑으로 구부려서 납땜 해야 하는데, 그러지 않아서 납을 많이 먹여도 떠버리네요. (위 사진)
micro USB 부분의 접점이 잘 되지 않자, 조금 많이 인두로 지졌더랬습니다.
그랬더니 패턴이 나가버렸네요. ㅠㅠ (망함)
micro USB 를 PC 에 연결하면 LED 도 들어왔다 나갔다 뭔가 하는것 같은데, PC 에 인식이 되지 않았습니다.
pinheader 까지 다 납땜 해버렸는데...
이번 작업은 망했어요.
다시 이 기판을 주문하여 도착하면 다시 시작하려 합니다.
그러기 전에 열풍기로 작업해야 겠습니다.
열풍기가 준비 되면, 그 때 다시 arduino DIY 를 시작하겠습니다.
'Hardware' 카테고리의 다른 글
Hardware | ADS1115 16bit 4채널 ADC 를 사용해 보자 (6) | 2019.08.12 |
---|---|
Hardware | Digital Compass - HMC5883L 사용기 - 3 (0) | 2019.08.10 |
Hardware | 납땜 주변 용품 (0) | 2019.08.02 |
Hardware | bluetooth 모듈 HC-06 / HC-05 사용해 보기 - 1 (0) | 2019.07.07 |
Hardware | iPhone SE 스크린 교환기 (0) | 2019.07.04 |
납땜 취미를 가지다 보면, 인두기부터 시작하여 납땜을 잘 되게 해주는 flux, 인두팁 관리용 제품 등, 다양한 용품이 필요합니다.
향후 작은 SMD 소자를 잘 납땜하기 위해서도 꼭 필요한 물건들이 되겠습니다.
관련된 제품 중에는 일본산이 많습니다. 마침 출장간 김에 부품을 준비해 봅니다.
참고로, 본 일본 제품 구매는, 지금의 무역분쟁이 발생하기 전, 올 5월달에 구매했던 내용입니다.
1. 소포왔다~!
필요한 물품들을 AliExpress 에서 구매해도 되나, SMD를 잘 납땜하기 위해서는 좋은 품질의 용품이 필요하니,
마침 일본 출장 때, Amazon Japan 에서 구매하여 호텔로 배달시켰습니다.
출장 중, 호텔 프론트에서 받는 소포란... 뭔가 업무에 중요한 물건이라도 된 듯 표정으로 받아 들고 옵니다.
박스 하나와 서류 봉투같은 것, 두 개 왔습니다.
업무를 마치고 홀가분한 마음으로, 에어컨 빵빵한 호텔방에서 홀라당 빤쓰 차림으로 기분 좋게 하나씩 뜯어 봅니다.
아... 이게 얼마만에 주문하여 받아보는 물품이던가.
작년 말에 필요했었지만, 저번 출장 때는 생각을 못해 구매를 놓쳐버려, 이번 출장 오자마자 바로 주문하고 받았습니다.
물건 부피는 다 합쳐도 크지 않지만, 배송 상 쉽게 배송할 수 있도록 적어도 이 사이즈의 박스로 배송한다고 어디선가 들었습니다.
중국 AliExpress 는 거의 편지봉투 수준인데...
2. Tip Refresher
정확한 명칭이 이건지 모르겠지만, 인투팁 피막에 엉겨붙은 불순물들을 날려주는 용품입니다.
* goot チップリフレッサー BS-2
- https://www.amazon.co.jp/gp/product/B0016VDHIE/
이놈은 낱개 주문이 안되고, 한꺼번에 7개를 주문해야 배송해준다고 해서, 평생 쓸꺼 한꺼번에 샀습니다.
Before / After 모습을 그림으로 보여주고 있구요, 인두팁을 300~360도로 가열한 다음 사용하라고 되어 있습니다.
하나 까서 열어 봅니다.
손끝으로 만져보면, 무슨 금속 가루와 화학약품을 풀로 이겨서 굳혀 놓은것 같은 느낌입니다.
산화되어서 도저히 납땜이 되지 않는 저의 인투팁 등장.
달군 다음 살짝 fresher 에 뭍혀 봤습니다.
지지직~ 흠... 뭔가 변화가 별로 없네요?
아차차, 온도를 450 도로 맞춰 놨었네요.
310 도 정도로 낮춘 다음 다시 fresher 에 지져 봅니다.
오오오옷!
팁의 윤기가 돌아 왔어요~! 신기.
까슬까슬한 페이스트같은 게 녹으면서, 피막을 벗겨 내고 (사진상 페이스트에 뭍어있는 검붉은 색 부분)
혼합된 금속 가루들이 코팅되는 느낌입니다.
처음 구매했을 때의 때깔까지는 복원해 주지는 못하지만, 그럭저럭 사용할 만 하게 되었습니다.
효과 있네요.
4. Tip Recovery
이 제품도 인두 tip 을 재활시켜주는 물건입니다.
* goot チップリカバリー ST-45
- https://www.amazon.co.jp/gp/product/B01LWO95KZ/
Tip Refresher 와 비교하여 뭐가 좋은지 몰라서 두개 모두 구매해 본 것입니다.
이놈은 Tip Refresher 와는 반대로, tip 을 완전히 식힌 다음, 이 고무같은 것에 문지르라고 합니다.
고무긴 고무인데, 금속과 혼합되어 있어서, 팁을 문지르면 팁 표면이 갈리는 느낌이 납니다.
살살살 문지르면, 지우개 똥 만들어 지듯, 문지른 주위로 똥이 만들어지고 우수수 떨어집니다.
느낌 상 이게 더 효과가 좋아 보입니다. 깔끔하게 갈렸어요.
별로 많이 문지르지도 않았는데, 저렇게 시커멓게 되는군요.
갈린 부분을 코팅하고자 Tip Refresher 도 해줬습니다.
이 두 물품은 같이 쓰는게 맞는 듯 하네요. 갈아서 벗겨주고, 코팅해주고.
5. Flux
이 제품은 납땜을 이쁘게 해주는 flux 입니다.
SMD 납땜에는 필수라고 할 수 있겠습니다.
이걸 납땜할 자리에 도포하고 납과 함께 지지면, 신기하게도 부품 다리와 PCB 패턴에 납이 잘 모입니다.
* goot プリント基板フラックス BS-75B
- https://www.amazon.co.jp/gp/product/B004ANR7KY/
이놈만 병으로 되어 있어서, 뽁뽁이 봉투로 배달된 놈 입니다.
솔직히 이 가격에 이 용량은 좀 아닌것 같아요.
PCB 에 알아서 적정량 잘 발라주고, 잘 납땜하라고 설명하고 있습니다.
금싸라기 같은 용액이라, 일단 약통에 1/3 만 부어서 사용해 보도록 합니다.
주사기 같이, 끝이 아주 미세하게 뚤려 있서, 방울로 액체를 떨어트릴 수 있는 용기가 있으면 좋겠으나,
그런건 없으므로, 버릴 약통을 우선 사용했습니다.
가장 하고 싶었던, 가드다란 다리가 많은 chip 을 PCB에 납땜해 보기로 합니다.
이번에 해보려는 arduino nano DIY 기판 입니다.
이 액체 flux 가 도착하기 전까지 시작하지 못했던 arudino DIY 입니다.
* Hardware | Arduino 를 DIY 해보자 - 1
- https://chocoball.tistory.com/entry/Hardware-Arduino-DIY-itself-1
살짝 도포한다는게, 약병 구명이 너무 커서 한 5방울치 떨어진 것 같아요.
오호호~!!! 기대 이상으로 잘 되었습니다.
신기하게 납들이 금속으로 가서 붙네요. 저런 가느다란 다리임에도 불구하고 전혀 힘들지 않았습니다.
또한, 이 액체는 송진이 원료중에 하나라서, 솔방울 냄새가 나요.
그치만 이 용액만으로는 양이 부족할 듯 하여 알아보던 중,
미국 Amazon 에서는 1리터 짜리가 17 USD 하는 액체 flux 가 좋다고 너tube 에서 봐서 구매했습니다.
사실은 미국에서 출장오시는 분에게 부탁해서... 이걸 가지고 먼저 일정에 있던 중국 들렸다가 서울 오셨슴...
(중국 세관에서 해명하느라 혼났다 함)
* MG Chemicals 836LFNC Lead Free NO Clean Flux, 1 Litre, Bottle
- https://www.amazon.com/gp/product/B01MYEE84K/
역시 통큰 나라답게 1리터다! (20ml 가 말이 되냐!)
크고 아름답습니다.
난 Product of U.S.A. 임... 이라고 당당하게 써 있네요. 따봉.
가격차가 3배 이지만, 용량 차이는 50배나 차이나는 goot (20ml) 놈과 비교해 보면...
효과는 별 차이가 없습니다.
6. Solder Wick
이 제품은 납을 빨아주는 솔더윅 입니다.
이미 알리에서 중국 제품을 구매했지만, 완전 효과 없슴.
원래 내가 기술이 없어서 안되는 것인지 제품이 이상한 것인지 확인하고 싶었습니다.
* goot はんだ吸取り線 CP-3015
- https://www.amazon.co.jp/gp/product/B001PR1KPQ/
내가 기술이 없어서 납이 제대로 빨리지 않은 것이면, 많이 사두면 쓰레기만 늘어가는 것이니, 한 개만 구매해 봅니다.
납 위에서 인두로 지지라고 합니다.
중국제로도 그렇게 했는데 말이지...
길이는 1.5m... 미국의 기상을 본받자.
쥐똥만한 길이로 감겨져 있습니다.
ESP8266 의 Flash ROM chip 을 대용량으로 교체할 때, 사용해 봤습니다.
액체 flux 뿌리고 지져 댔습니다.
야이C... 잘됩니다.
깔끔하게 납이 흡수되어 기판에 붙어 있던 Flash ROM chip 이 분리 되네요.
* Hardware | ESP-01 or ESP8266 사용기 - 4
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-4
이로써 알리발 중국 제품은 전혀 효과 없음이 증명되었습니다.
7. Iospropyl Alchohol
기판 세척제로는 위험한 TCE, 친환경 세척제 등이 있다고 합니다만,
소독약으로 쓰이는 이소프로폴 알콜 99% 도 기판 세정에 딱이라고 하더군요. 인체에 해도 거의 없고.
그치만 99% Isopropyl Alchohol 을 구하긴 힘듭니다.
그래서 대체제로 소독용 에탄올을 구입했습니다. 1000원.
농도를 보니 83% 네요.
깔끔하게 세척해주지는 못하지만, 그나마 기판에서 불순물을 벗겨내서 날려 줍니다.
Flux 를 사용하면 아무래도 찌꺼기가 남습니다.
마무리는 에탄올 들이 붙고, 칫솔로 쓱싹쓱싹 하면 나름 깨끗해 집니다.
FIN
납땜 스테이션도 교체하고 싶고, 열풍기도 필요하고, Bench Power Supply 도 필요하고...
일단, 최소한 SMD 부품을 납땜 할 수 있는 용품은 준비가 되었네요.
이제 arduino nano DIY 를 시작해 보려 합니다.
'Hardware' 카테고리의 다른 글
Hardware | Digital Compass - HMC5883L 사용기 - 3 (0) | 2019.08.10 |
---|---|
Hardware | Arduino 를 DIY 해보자 - 2 (0) | 2019.08.04 |
Hardware | bluetooth 모듈 HC-06 / HC-05 사용해 보기 - 1 (0) | 2019.07.07 |
Hardware | iPhone SE 스크린 교환기 (0) | 2019.07.04 |
Hardware | iPhone 6s Plus 오리지널 배터리 교환기 (0) | 2019.07.03 |
1. Bluetooth 통신
룰루~ arduino 로 놀 수 있는 센서나 모듈이 뭐가 있을까~ 하고 AliExpress 를 둘러 보던 중,
HC-05, HC-06, SPP-C 가 bluetooth 연결에 사용할 수 있는 모듈이라는 것을 알았습니다.
아직 쌓여있는 센서가 많지만, 일단 구매해 봅니다.
* SPP-C Bluetooth serial pass-through module wireless serial communication from machine Wireless SPPC Replace HC-05 HC-06
- https://www.aliexpress.com/item/32755550889.html
* HC-05 HC 05 hc-06 HC 06 RF Wireless Bluetooth Transceiver Slave Module RS232 / TTL to UART converter and adapter
- https://www.aliexpress.com/item/32523867394.html
2. 도착
한 업자에게서 구매 해서 동시에 배달되었습니다.
HC-05 이구요.
HC-06 이구요.
응? HC-05 랑 보드는 같고, 다른점은 오른쪽 밑에 스위치와 pin 갯수가 다른 것 뿐이네요.
뒷면에 세겨진 pin out 배열도 동일합니다.
SPP-C 만 다른 보드를 사용합니다.
3. HC-06
일단 오늘은, Slave 만으로 사용할 수 있는 가장 간단한 HC-06 구동을 시험해 보기로 합니다.
HC-05 는 Master / Slave 양쪽으로 사용할 수 있고, HC-06 은 Slave 만 가능하다 하네요.
보드가 동일한 것을 미리 알았더라면, HC-05 만 두개 살껄 그랬습니다.
SPP-C 는 완전 다른 모양이라 HC-05 / HC-06 을 가지고 놀아 보고 그 다음애 해보려 합니다.
구동 전원 Vcc 는 3.6v~5V 라서 arduino nano 의 3.3v 로는 조금 부족하고 5v 로 확실하게 구동됩니다.
HC-06 의 RXD, TXD 는 3.3v 를 이용한 입출력이므로. level shift 회로가 필요합니다만, 출력 (TXD) 은 그대로 하고,
입력 (RXD) 에 저항을 연결하여 회로를 보호해 줍니다.
사실 그대로 연결해도 됩니다만, 저항을 연결해 주는게 느낌상 좋습니다.
실제로 전용회로를 꾸미게 되면, 입출력 전압을 측정하여 거기에 맞는 저항을 달아 주는 것이 좋겠죠?
사양은 다음과 같습니다.
- Bluetooth protocol: Bluetooth V2.0 protocol standard
- Power Level: Class2(+6dBm)
- Band: 2.40GHz—2.48GHz, ISM Band
- Receiver sensitivity: -85dBm
- USB protocol: USB v1.1/2.0
- Modulation mode: Gauss frequency Shift Keying
- Safety feature: Authentication and encryption
- Operating voltage range:+3.3V to +6V
- Operating temperature range: -20ºC to +55ºC
- Operating Current: 40mA
4. pin out
여러 연결 방법이 있을 수 있으나,
우선 가장 간단한 arduino nano 를 통해서 PC 와 통신을 시도해 봅니다.
Pin out 정보 입니다.
HC-06 | Arduino Nano ----------------------- RXD | D2 TXD | D3 GND | GND VCC | 3.3V -----------------------
아두이노에서 받는 3.3v 전원은 조금 약한 감이 있고, 5v 를 받자니 arduino nano 가 버거울 것 같아,
외부 전원을 사용하면 안정적으로 3.3v 인가 가능할 것 같습니다.
실제로 arduino nano 의 3.3v 에 연결하면, 되었다 안되었다 불안한 동작을 보여 줍니다.
5. layout
연결 diagram 입니다.
실제로 아래와 같이 연결했습니다.
삽질한 부분은 arduino nano 와 추가 전원의 ground 는 서로 연결해줘야 하는 것이였습니다.
그렇지 않으면, 정상적으로 통신이 되지 않습니다.
Ground 는 꼭 서로 맟춰 줘야 합니다.
6. sketch
아래는 arduino nano 를 PC 와 연결 할 경우에 사용한 소스 입니다.
#include "SoftwareSerial.h" #define HC06_RXD 2 #define HC06_TXD 3 SoftwareSerial bluetooth(HC06_RXD, HC06_TXD); void setup(){ Serial.begin(9600); bluetooth.begin(9600); } void loop(){ if (bluetooth.available()) { Serial.write(bluetooth.read()); } if (Serial.available()) { bluetooth.write(Serial.read()); } }
7. AT commands
HC-06 과 연결되면 AT 명령어를 통해서 상태 확인이 가능합니다.
Arduino IDE > Tools > Serial Monitor 를 띄우고 위의 AT 명령어들을 쳐 봅니다.
통신 속도 = baud rate 는 9600 으로 해야 합니다.
HC-06 은 공장 출하 설정이 9600 bps 로 되어 있습니다.
Bluetooth 이름은 "HC-06" 이구요, ROLE 은 0, 즉 SLAVE 로 되어 있습니다.
* AT+ROLE: See role of bt module(1=master/0=slave)
Password 는 기본 "1234" 로 되어 있습니다.
통신 속도 UART 는 9600 으로 되어 있네요.
바꾸고 싶을 경우는 아래와 같이 설정하면 됩니다.
* 1 set to 1200bps
* 2 set to 2400bps
* 3 set to 4800bps
* 4 set to 9600bps (Default)
* 5 set to 19200bps
* 6 set to 38400bps
* 7 set to 57600bps
* 8 set to 115200bps
ex) AT+BAUD4 will set the baud rate to 9600
다른 명령어도 다 쳐 봤습니다.
8. Windows 10 과 연결해 보기
Windows 10 에서 블루투스 장치로 연결해 봅니다.
HC-06 을 연결하면 비번을 물어봅니다.
블루투스다 보니 잘 연결됩니다.
장치관리자에서 연결된 HC-06 의 주소를 확인해 보면, 가지고 있는 HC-06 의 address 인 것을 알 수 있습니다.
동일한 장치임을 확인 할 수 있는 부분이죠.
COM 포트를 확인해 보면, 송신 port 가 COM8 임을 알 수 있네요.
시리얼 포트 리스트에도 떠 있습니다.
putty 를 이용하여 COM8 에 연결합니다.
오호라. putty 에서 타이핑 한 것은 보이지 않지만, 글씨를 타이핑 후,
"Ctrl + M, J" 를 치면 arduino IDE 의 Serial Monitor 에서 송신된 단어를 확인할 수 있습니다.
반대로, Serial Monitor 에서 글씨를 치고 Send 를 누르면, putty 화면에 나타나는 것을 확인 할 수 있어요.
9. USB UART CP2102
Serial 연결은, USB Serial 장치인 CP2102 를 통해서도 연결해 봅니다.
RXD 는 저항을 달아서 보호해 주면서, 그림과 같이 연결해 줍니다.
HC-06 | CP2102 ---------------- RXD | TXD TXD | RXD GND | GND ----------------
실제 연결은 다음과 같습니다.
역시 putty 를 이용해서 확인해 봅니다.
모든 AT commands 가 잘 먹힙니다. 정상적으로 통신이 가능하네요.
FIN
HC-06 / HC-05 은 해볼 것이 여러가지 있는것 같습니다.
일단 오늘은 HC-06 의 여러가지 연결법과 AT commands 를 사용해 봤습니다.
다음은 HC-05 HC-06 을 사용하여 Master / Slave 연결 등을 활용해 볼께요.
Update - 20210124
사진 정리를 하다, 예전 경주에 놀러갔을 때, 3D 놀이공간 건물 한켠에 전자 공방에서 찍은 사진을 발견.
HC-06 / HC-05 는 bluetooth 에 있어서 널리 사용되는 모듈임을 새삼 다시 알게 되었네요.
'Hardware' 카테고리의 다른 글
Hardware | Arduino 를 DIY 해보자 - 2 (0) | 2019.08.04 |
---|---|
Hardware | 납땜 주변 용품 (0) | 2019.08.02 |
Hardware | iPhone SE 스크린 교환기 (0) | 2019.07.04 |
Hardware | iPhone 6s Plus 오리지널 배터리 교환기 (0) | 2019.07.03 |
Hardware | ESP-01 or ESP8266 사용기 - 4 (0) | 2019.07.02 |
1. 오늘도...
가족의 iPhone SE 화면이 맛이 갔습니다.
원인은 화장실에서 휴대폰 하다가 물기가 스며들어간 것이죠.
스크린에 물이 들어가면서, 전해질끼리 반응하여 화면이 검게 변해가고 있습니다.
사진으로는 그 현상이 잘 보이지 않네요.
화면 밝기를 최대로 해도 이 모양 입니다.
계속 사용하다가는 눈도 나빠지겠어요.
2. 대체품 구입
AliExpress 에서도 구매 가능하나, 요즘 iPhone 부품은 한국에서도 저렴하게 구입할 수 있습니다.
인터넷에서 검색하여 비교해본 결과 아래 물품이 적당해 보입니다.
* 아이폰 전기종 액정 자가수리
- https://smartstore.naver.com/sageplus/products/2396112234
참고로 iPhone SE 액정은 다음과 같은 가격대가 형성되어 있습니다.
- 정품액정 (일반형) : 41,500원
- 호환액정 (조립형) : 21,800원
- 호환액정 (일반형) : 11,400원
정품액정은 가격이 넘사벽이고, 호환액정 중, 조립형과 일반형이 있는데,
그 차이는 상부 카메라와 근조도센서가 미리 장착되어 있는지의 유무 입니다.
일반형을 구입하면 상부 카메라와 근조도 센서 및 백패널도 자가로 이식해야 합니다.
참고로, 홈버튼은 그 폰의 identity 이므로, 홈버튼까지 이식할 필요가 있습니다.
저는 돈의 노예이므로, 몸으로 때우는 "호환액정 (일반형)" 을 구입하게 됩니다.
조립형이라니... 용납이 되지 않습니다.
3. 도착
역시 한국의 배송. 2일만에 도착했습니다.
자가수리 할 때마다 공구가 늘어갑니다.
다만, 이번에 배송되어온 공구는 제품 마무리가 좋지 않아서 (특히 별나사!) 버리고, 기존에 쓰던걸로 작업했습니다.
가장 중요한 액정은 플라스틱 재질로 잘 포장되어 왔습니다.
그냥 눈으로 보면 정품과의 차이를 모르겠습니다.
뒷면이구요.
역시 상부 카메라, 조도센서 및 홈버튼이 없어서 썰렁 합니다.
4. 수리 시작
iPhone 의 수리는 하부 별나사로부터 시작합니다.
예전에 iPhone SE 배터리도 갈아 봤으니, 메뉴얼 보지 않고도 쓱싹쓱싹 진행합니다.
홈버튼의 커넥터도 이쁘게 제거하구요. (화살표의 저놈)
띠롱~.
상판 연결부의 케이블들이 조금 짧으니, 상판을 너무 꺾지 말고 살짝 들어 올려서 나사들을 풀어줍니다.
띠롱~.
기존에 달려 있던 액정의 상판과 비교샷 입니다.
상부의 저 뭉치들을 이식해야 하는 군요. 쉽지 않아 보입니다.
5. 홈버튼 이식
이제부터 본격적인 작업 입니다.
마음을 가다듬고 최대한 안정을 취한 뒤, 홈버튼 이식(수술?) 을 시작합니다.
제일 먼저 화살표의 나사를 풀어 주구요.
주의할 점은, 화살표의 조그만한 접지용 부속품이 날라가서 없어지지 않게 조심하면서 분리해야 합니다.
나사를 모두 제거하면, 홈버튼 자체를 들어 올립니다.
가상자리의 고무에 양면 테이프로 고정되어 있어서, 최대한 살살 달래주면서 빼 줍니다.
쉽게 하기 위해 헤어드라이기로 대운 뒤 작업했습니다.
잊지 마세요. 위의 둥그런 나사 쿠션(?) 같은 친구도 살살 제거하여 이식시켜 줍니다.
새로운 액정에 역순으로 조립하여 이식시켜 줍니다.
휴... 잠시 쉬었다 가겠습니다.
6. 상부 카메라와 조도센서 이식
상부는 조금 복잡해 보입니다.
백패널과 한몸으로 연결되어 있네요.
테이프 같은 것으로 백패널이 접지 역할을 해주는 것 같습니다.
우선 아래 사진의 두 나사를 제거해 줍니다.
그냥 힘줘서 빼려고 하면 고장날 수 있으니, 아래 사진의 화살표 부분을 바깎쪽으로 살짝 꺾어줍니다.
그러면, 힌지가 풀리면서 earpiece 를 고정하고 있는 금속 프레임이 사진과 같이 분리됩니다.
Earpiece 가 자연스럽게 분리 되면서, 그 밑부분의 연결 선들을 상판에서 살살 달래며 분리합니다.
역시 이 부분도 양면 테이프로 고정되어 있으니, 절대 힘줘서 작업하면 안됩니다.
백패널을 고정하는 4개의 사사를 풀고 (윗사진), 상판의 마지막 나사를 풀면 아래 사진처럼, 완전히 분리가 됩니다.
역시나...
액정과 백패널 사이에 물이 스며들어간 흔적이 고스란히 보이네요.
도대체 어떻게 해야 이렇게 물이 스며들어가는 겨...
아직 끝나지 않았습니다.
마지막 작업으로 카메라와 조도 센서 고정용 프래임을 제거합니다.
주의할 점은, 글루건같은 것으로 고정되어 있어서, 부러지지 않게 살살 분리해야 합니다.
이번 작업에서 가장 힘들었던 부분은, 이 고정 프레임 들을 새 액정에 고정시키는 것이였습니다.
제대로 되지 않으면, 카메라와 센서가 삐뚤어져서 장착이 됩니다.
그리고 기존에 붙어있는 글루건 같은 것이 절대 떨어지지 않으므로, 조금 갈아서 위치를 맞추고, 새 액정에 장착해 줘야 합니다.
장착 후, 움직이지 않게 하려면 뭔가 발라줘야 할 것 같은데, 그 작업까지는 못했습니다.
이식은 분해의 역순.
카메라와 센서의 위치를 잘 잡고 (마음같이 잘 되지 않음), 나사를 조여주면 됩니다.
아닛!
나사를 조일 때, 길이가 긴 나사를 얇은 쪽에다 조여버려 상판에 동그란 스크레치가 났습니다.
옥의 티.
7. 마무리
모두 재조립 하고 전원 인가해 봅니다.
휴~ 다행입니다.
홈버튼, 지문인식, 카메라, 조도 센서, 통화 모두 잘 됩니다.
버려질 기존 액정을 햇볓에 비춰 보니, earpiece 는 구멍의 일부분만 뚫여서 연결되어 있었네요.
잘가라... 쓰레기 통으로.
그간 고마웠다. 기억할께~.
작업한 시간은 4시간...
다음에 동일한 작업을 한다면, 일반액정(조립형) 을 꼭 구매하겠습니다.
'Hardware' 카테고리의 다른 글
Hardware | 납땜 주변 용품 (0) | 2019.08.02 |
---|---|
Hardware | bluetooth 모듈 HC-06 / HC-05 사용해 보기 - 1 (0) | 2019.07.07 |
Hardware | iPhone 6s Plus 오리지널 배터리 교환기 (0) | 2019.07.03 |
Hardware | ESP-01 or ESP8266 사용기 - 4 (0) | 2019.07.02 |
Hardware | ESP-01 or ESP8266 사용기 - 3 (0) | 2019.07.01 |