본문 바로가기

캡스톤

[캡스톤] Spin coating (pt.1)

포토공정에서 사용되는 spin coating 장비를 구현해보고자 한다. 

https://youtu.be/eBkBhtBp8jY

 


참고자료:

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

https://www.moonsindustries.com/series/nema-17-standard-hybrid-stepper-motors-b020105?gclid=Cj0KCQjwxuCnBhDLARIsAB-cq1oTCHvLzYD4hnR9sXxdwLkuJXbd5SKI8tgwuIw_UF-YWhD6dhFAS8IaAk39EALw_wcB 

 

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

https://www.icbanq.com/P009792269?utm_source=google&utm_medium=cpc&utm_campaign=쇼핑_PerformanceMax&utm_id=쇼핑_PerformanceMax&utm_term=notset&utm_content=notset&gclid=Cj0KCQjwtO-kBhDIARIsAL6Lore0y3LQd0z3gQkz2__9r75aQmGXk0bDU0PDydZP6KJGdOJrOUGBRk4aArz4EALw_wcB 

 

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

https://www.moonsindustries.com/p/nema-17-standard-hybrid-stepper-motors/ms17hd5p4070-000-000004611110027300

 

MS17HD5P4070-000

Stepper motor(No UL certification), High torque, Low noise, Smooth movement, 2 phase, 1.8°, NEMA17

www.moonsindustries.com

 

 

 

노이즈 참고:

https://makernambo.com/75

 

전류센서(ACS712) 사양 및 사용법

ACS712 전류센서는 Hall Effect(전류가 흐르는 도체에 자기장이 가해지면 전위차가 발생하는 현상)를 활용하여 전류의 세기를 측정하는 센서로서 교류/직류에 관계없이 측정가능하며 순방향 또는 역

makernambo.com

https://tech.onepredict.ai/0d296080-65b4-484e-8dc0-bfad8fe04bc2

 

2️⃣ 문제 해결: 전류 신호 노이즈 상쇄 방안

지난 1편에서는 노이즈에 대한 기본 배경지식과 실제로 일어난 문제상황을 다뤘습니다. 2편에서는 노이즈를 저감시킨 3가지 방법에 대해 서술할 예정입니다.

tech.onepredict.ai

 

 

 

전체적인 회로도:

스텝모터, 서보모터 회로도
fan, 진공모터, 초음파센서 회로도

 

구성방안:

웨이퍼의 이동
스핀코팅 장비에 웨이퍼 안착
초음파센서, 스핀코팅 장비 실행

 


 

 

 

 

 

 

장비를 제작하기에 앞서 구동 순서는

 

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