포토공정에서 사용되는 spin coating 장비를 구현해보고자 한다.
참고자료:
https://hackaday.io/project/107598-semiconductors-home/log/150280-you-spin-me-right-round-baby
You spin me right round, baby. | Details | Hackaday.io
<p>I finally got into building the spin coater for the project, however, even I was surprised about the way things went.<br></p> <p>All I knew is that I wanted a small spin coater, something that could do chip sized things and maybe something a little bigg
hackaday.io
사용한 제품 정보:
https://www.compuzone.co.kr/product/product_detail.htm?ProductNo=338299&go_target=product_list
COOLERTEC CT-8015H12BF-4P [시스템쿨러/80mm] : 컴퓨존
[쿨러텍] COOLERTEC CT-8015H12BF-4P [시스템쿨러/80mm]
www.compuzone.co.kr
http://m.11st.co.kr/products/m/5686420001?&trTypeCd=21&trCtgrNo=1008201
[11번가] DC 12V 미니 진공 펌프 8L/분 고압 흡입 다이어프램 홀더 포함
공구>농업기계/농업용품>양수기, 가격 : 43900원
m.11st.co.kr
https://smartstore.naver.com/exatto/products/4765372364
[EXLMT-020] 고속 타이밍벨트 알루미늄 프로파일 리니어 액추에이터 엑추에이터 3d 프린터 부품 DIY
[엑사토] 엑사토입니다.
smartstore.naver.com
NEMA 17 Standard Hybrid Stepper Motors
Stepper motor, High torque, Low noise, Smooth movement, Step Angle: 1.8 °, NEMA17, 42x42mm
www.moonsindustries.com
https://smartstore.naver.com/domekit/products/4954185576?
아두이노 DC 5V 57mm 스텝모터 액추에이터 DM3254 : 도매키트
[도매키트] 코딩교육의 모든 것! 전문가가 만든 키트와 각종 센서와 부품 등 다양한 제품을 만나보세요!
smartstore.naver.com
IRF520 MOSFET 릴레이 모듈 1A (IN 3-5V) (HAM3803) : 제노 > BRAND SHOP > 모터/로봇/전자키트
N-Channel 파워 MOSFET IRF520 릴레이 모듈 - 1800원 국내 최대 전자부품 전문 쇼핑몰 - 아이씨뱅큐
www.icbanq.com
https://html.alldatasheet.com/html-pdf/1180443/ETC/TB6560/61/1/TB6560.html
TB6560 Datasheet(1/6 Pages) ETC | TB6560 3Axis Stepper Motor Driver
Sunwind Electronics Company Ltd.Stepper Motor Driver:M542Hhttp://www.stepmotordriver.com1 / 6sales@stepmotordriver.comDatasheet-TB6560 3Axis Stepper MotorDriver1.IntroductionThe TB6560-3 Axis Stepper Motor Driver is a excellent microstepping driver that us
html.alldatasheet.com
https://store.kakao.com/dreamcatcher1/products/281198722?ref=DAUM_IMAGE_SEARCH
스테핑 모터 드라이버 TB6560 3A 제어모듈 아두이노
카카오톡 스토어 드림캐쳐1
store.kakao.com
https://www.devicemart.co.kr/goods/view?no=1330492
아두이노 호환 12V 1.5A KC 인증 아답터 [SZH-PSU01]
아두이노 우노(Arduino Uno), 아두이노 메가 2560(Arduino Mega 2560) 등의 마이크로컨트롤러 제품에 전원을 공급할 수 있는 12V 1.5A 아답터(Adapter, Adaptor) 또는 파워 서플라이(Power Supply) / 잭 : 5.5mm/2.1mm(외경/
www.devicemart.co.kr
MS17HD5P4070-000
Stepper motor(No UL certification), High torque, Low noise, Smooth movement, 2 phase, 1.8°, NEMA17
www.moonsindustries.com
노이즈 참고:
전류센서(ACS712) 사양 및 사용법
ACS712 전류센서는 Hall Effect(전류가 흐르는 도체에 자기장이 가해지면 전위차가 발생하는 현상)를 활용하여 전류의 세기를 측정하는 센서로서 교류/직류에 관계없이 측정가능하며 순방향 또는 역
makernambo.com
https://tech.onepredict.ai/0d296080-65b4-484e-8dc0-bfad8fe04bc2
2️⃣ 문제 해결: 전류 신호 노이즈 상쇄 방안
지난 1편에서는 노이즈에 대한 기본 배경지식과 실제로 일어난 문제상황을 다뤘습니다. 2편에서는 노이즈를 저감시킨 3가지 방법에 대해 서술할 예정입니다.
tech.onepredict.ai
전체적인 회로도:


구성방안:



장비를 제작하기에 앞서 구동 순서는
1) 스텝모터와 서보모터를 이용해 wafer 이동
2) spin coating 장비 위 wafer 안착
3) 서보모터 작동으로 초음파 센서 인식
4) PR 용액 도포
5) fan, 진공모터 작동
6) 스텝모터와 서보모터를 이용해 wafer 이동
(추가: 7) 딥러닝을 이용한 PR 불량 판별)
총 7 단계로 구성된다.
이번 프로젝트에서 사용한 보드는 총 3개이다. (1개의 아두이노 메가 보드, 2개의 아두이노 우노 보드)
자동화를 위해 3개에 아두이노 보드에 연결되어있는 모터들이 정확한 타이밍에 작동될 수 있도록 초음파 센서를 이용해 신호를 전달하였다.
먼저 4핀 팬을 활용해 RPM을 계산하였다.
RPM 계산을 위해 팬에서 발생하는 interrupt를 계산해 RPM을 출력하였다.
const int fan_control_pin = 9;
int count = 0;
unsigned long start_time;
int rpm;
void setup() {
pinMode(fan_control_pin,OUTPUT);
analogWrite(fan_control_pin,0);
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(2), counter, RISING);
}
void loop() {
//0=0, 51=20%, 102=40%, 153=60%, 204=80%,255=100%
for (int pwm = 0;pwm<=255;pwm +=51){
analogWrite(fan_control_pin,pwm);
delay(5000);
count = 0;
while((millis()-start_time)<1000){
}
rpm = count *30;//60/2
Serial.print("RPM = ");
Serial.print(map(pwm,0,255,0,100));
Serial.print("%, Speed = ");
Serial.print(rpm);
Serial.println(" rpm");
}
}
void counter(){
count++;
}
위와 같은 코드를 이용해 fan의 속도가 점점 빨라짐에 따라 변화되는 RPM을 계산하고 시리얼 모니터를 통해 확인할 수 있다.
(이후 PWM이 100%이 아닐 경우, RPM 측정에 오류가 나타나는데 이를 해결하기 위해 PWM은 100%인 상태에서 전압을 제어해 속도를 제어해주었다.)
RPM을 계산을 확인한 이후, fan의 작동을 제어하기 위해 모스펫을 사용하였다.
RPM이 정상적으로 작동하는지 확인 이후, LCD 패널을 연결해 이를 시각화 해주었다.
스핀코팅 장비 위 wafer의 안착 여부를 파악하기 위해 추가적인 초음파센서를 연결해주었다.
(영상에서는 추가적으로 진공모터와 워터펌프가 연결되어 있다.)
진공모터를 제외한 초음파센서, fan, lcd 패널 연결 코드
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int fan_control_pin = 9;
int count = 0;
unsigned long start_time;
const int ECHO_PIN = 11;
const int TRIG_PIN = 12;
const int LED_PIN = 13;
int rpm;
void setup() {
lcd.begin();
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(fan_control_pin, OUTPUT);
analogWrite(fan_control_pin, 0);
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(2), counter, RISING);
}
void loop() {
digitalWrite(LED_PIN, LOW);
int distance = 0;
count = 0;
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
distance = pulseIn(ECHO_PIN, HIGH)/58.2; /* 센치미터(cm) */
if (distance <= 5) {
digitalWrite(LED_PIN, HIGH);
delay(3000);
Serial.print(distance);
Serial.println("cm");
delay(1000);
analogWrite(fan_control_pin, 255);
delay(3000)
start_time = millis();
count = 0;
while ((millis() - start_time) < 1000) {
}
rpm = count * 60 / 2;
lcd.setCursor(2, 0);
lcd.print("RPM is ");
lcd.print(rpm);
Serial.print("RPM is ");
Serial.print(rpm);
Serial.println(" rpm");
delay(4000);
lcd.clear();
Serial.println("stopping fan");
analogWrite(fan_control_pin, 0);
delay(20000);
digitalWrite(LED_PIN, LOW);
Serial.println("restart");
}
else
digitalWrite(LED_PIN, LOW);
analogWrite(fan_control_pin, 0);
}
}
void counter() {
count++;
}'캡스톤' 카테고리의 다른 글
| [캡스톤] Spin coating (pt.2) (1) | 2023.08.01 |
|---|---|
| [캡스톤] Spin coating (pt.3) (0) | 2023.07.03 |