slot die coater
Design & Manufacturing of Slot Die Coater
(Collaborative Final Year Project)
This project was my collaborative final year project with a Mechanical Engineering group at GIKI. All the electrical design, MATLAB coding and Arduino programming in this project were done by me. This project got first position in Mechanical Engineering in the industrial open house.
This project investigates the design and manufacturing of a slot die coater. The purpose is to coat a substrate with a uniform layer of a mixture of Ethylene Glycol and Graphite. The desired application of this project is in printed electronics. For simulation purposes ANSYS CFX is used to achieve a uniform flow of fluid coming from the outlet of the coater. For this purpose a mesh was made from a 3D model (made using CREO Parametric) of the control volume that would enclose the fluid after which the viscosity of the fluid and velocity were defined. The design of the system includes two motor powered lead screw mechanisms, one to control the substrate motion while the other is used to control the flow rate of syringe pump mechanism. Both lead screws are actuated by Arduino. An interface developed in MATLAB enables the user to give inputs (flow rate and linear velocity of substrate) to the system which gives the signals to the controller to achieve the desired results.
MATLAB Program
This MATLAB program allows the user to enter the flow rate of the fluid and the linear velocity of the glass which is being coated. The program converts the flow rate value to the rotational speed of the syringe pump stepper motor and the glass velocity value to the rotational speed of the glass assembly stepper motor in rpm. The user can optionally enter the number of revolutions from the lower part of the graphical user interface (GUI) of the program or he/she can choose to run independent of revolutions by using start/stop buttons on the GUI. The rpm and revolution values are sent to Arduino through serial port.
Working Principle
A viscous fluid is pumped through a syringe pump and delivered to the coater. The fluid
then pours through a slot (channel) in the coater and adheres to the substrate.
Arduino
The Arduino uno board receives the rotational speeds and number of revolutions of the two stepper motors and drives the motors accordingly. One motor pushes the syringe pump while the other moves the glass substrate linearly. The motor speeds and number of revolutions are also displayed on a 16x2 LCD.
Stepper Motor Drivers
The signals from the Arduino can not drive the high power stepper motors directly, so therefore, stepper motor drivers (L298N) are used.
Power Supply
A computer ATX power supply is used which can provide 400W of power but we need much less than that.
Syringe Pump Assembly
A pump is a device which adds energy to the fluid. Syringe pump mechanism is used in
our assembly as the required flow rate is very low and pumps are not available in the
markets to deliver such low flow rates. Arduino is used to control the flow rate
of the syringe pump.
Glass Mover Assembly
To achieve the uniform, controlled and desired velocity of the substrate, lead screw mechanism is used. The base is fixed with the carriage and the substrate is placed on the base. The lead screw is coupled with the motor and the motor is controlled with the help of a micro-controller. So, as the motor shaft will rotate with a certain rpm, the lead screw will also rotate with the same rpm. The carriage will move linearly in relation to the rotation of the motor shaft.
Mechanical Drawings & Simulations
Assembly
Coater with Cavity drawing
Coater with Cavity
Exploded view
Plate
Coater without Cavity Drawing
Coater without Cavity
Applications
There is a wide array of applications of slot die coating which includes
1. Fabrication of Organic Light Emitting Diodes (OLED).
2. Fabrication of polymer batteries.
3. Fabrication of photo voltaic cells.
4. Fabrication of sensors
5. Thin Film deposition
6. Printing
Video of Final Working Product
Arduino Code
#include <LiquidCrystal.h>
#include <AccelStepper.h>
double syringeRpm=15;
double glassRpm=50;
double syringeRevs=1000;
double glassRevs=1000;
boolean syringeMotion=false;
boolean glassMotion=false;
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);
AccelStepper glass(4, 10,11,12,13);
AccelStepper syringe(4, 6,7,8,9);
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
lcd.print("rpm ");
lcd.setCursor(0,1);
lcd.print("rev ");
//lcd.print(" Glass Coater");
//stepper1.setSpeed(stepper1Speed*3.33);// 1 rpm=200steps/60s=3.33
syringe.setMaxSpeed(syringeRpm*3.33);
syringe.setAcceleration(120*3.33);
syringe.move(50*200);//1 rotation=200
glass.setMaxSpeed(glassRpm*3.33);
glass.setAcceleration(120*3.33);
glass.move(50*200);
}
void loop()
{
if(syringeMotion)
syringe.run();
if(glassMotion)
glass.run();
}
void serialEvent() {
String s = Serial.readStringUntil(':');
//syringeRpm:17& syringe motor rpm
if(s=="syringeRpm"){
s = Serial.readStringUntil('&');
int value=s.toInt();
Serial.print("Syringe motor rpm= ");
Serial.println(value);
Serial.print("&");
lcd.setCursor(4,0);
lcd.print(" ");
lcd.setCursor(4,0);
lcd.print("S:");
lcd.print(value);
syringe.setMaxSpeed(value*3.33);
syringe.move(1000*200);
syringeMotion=false;
glassMotion=false;
}//end if
//glassRpm:23& glass motor rpm
if(s=="glassRpm"){
s = Serial.readStringUntil('&');
int value=s.toInt();
Serial.print("Glass motor rpm= ");
Serial.println(value);
Serial.print("&");
lcd.setCursor(9,0);
lcd.print(" ");
lcd.setCursor(9,0);
lcd.print("G:");
lcd.print(value);
glass.setMaxSpeed(value*3.33);
glass.move(1000*200);
syringeMotion=false;
glassMotion=false;
}//end if
//syringeRevs:12& syringe revs
else if(s=="syringeRevs"){
s = Serial.readStringUntil('&');
int value=s.toInt();
Serial.print("Syringe motor revs= ");
Serial.println(value);
lcd.setCursor(4,1);
lcd.print(" ");
lcd.setCursor(4,1);
lcd.print("S:");
lcd.print(value);
syringe.move(value*200);
}//end else if
//glassRevs:45& glass revs
else if(s=="glassRevs"){
s = Serial.readStringUntil('&');
int value=s.toInt();
Serial.print("Glass motor revs= ");
Serial.println(value);
lcd.setCursor(10,1);
lcd.print(" ");
lcd.setCursor(10,1);
lcd.print("G:");
lcd.print(value);
glass.move(value*200);
}//end else if
//syringeStart: start syringe motor
else if(s=="syringeStart"){
Serial.println("start syringe motor");
syringeMotion=true;
}//end else if
//syringeStop: stop syringe motor
else if(s=="syringeStop"){
Serial.println("stop syringe motor");
syringeMotion=false;
}//end else if
//glassStart: start glass motor
else if(s=="glassStart"){
Serial.println("start glass motor");
glassMotion=true;
}//end else if
//glassStop: stop glass motor
else if(s=="glassStop"){
Serial.println("stop glass motor");
glassMotion=false;
}//end else if
}
1. Markus Hösel, Large-scale Roll-to-Roll Fabrication of Organic solar cells for
Energy Production, PhD thesis (2013)
2. Janghoon Park, A Matching Design in Roll-to-roll Slot-die Coating Process,
MS thesis (2013)
3. http://www.google.com.pk/imgres?imgurl=http://www.automationtechnologiesinc.com/
wp-content/uploads/2011/11/KL23H256-21-8B.jpg&imgrefurl=http://www.automationtechnologiesinc.com/products-page/steppermotors
4. https://www.google.com.pk/webhp?sourceid=chromeinstant&ion=1&espv=2&ie=UTF-8#q=arduino+sensors
5. http://www.google.com.pk/imgres?imgurl=http://www.robotstorehk.com/motordrivers/i
mages/steppermotor.jpg&imgrefurl=http://www.robotstorehk.com/motordrivers/motordriv
ers.
6. http://www.appropedia.org/Open-source_syringe_pump
7.Harry G. Lippert, Slot-die coating for low viscosity fluids
8. Eungsik Park, Physics of coating tensioned web-over slot-die, PhD thesis (2008)
#include <AccelStepper.h>
double syringeRpm=15;
double glassRpm=50;
double syringeRevs=1000;
double glassRevs=1000;
boolean syringeMotion=false;
boolean glassMotion=false;
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);
AccelStepper glass(4, 10,11,12,13);
AccelStepper syringe(4, 6,7,8,9);
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
lcd.print("rpm ");
lcd.setCursor(0,1);
lcd.print("rev ");
//lcd.print(" Glass Coater");
//stepper1.setSpeed(stepper1Speed*3.33);// 1 rpm=200steps/60s=3.33
syringe.setMaxSpeed(syringeRpm*3.33);
syringe.setAcceleration(120*3.33);
syringe.move(50*200);//1 rotation=200
glass.setMaxSpeed(glassRpm*3.33);
glass.setAcceleration(120*3.33);
glass.move(50*200);
}
void loop()
{
if(syringeMotion)
syringe.run();
if(glassMotion)
glass.run();
}
void serialEvent() {
String s = Serial.readStringUntil(':');
//syringeRpm:17& syringe motor rpm
if(s=="syringeRpm"){
s = Serial.readStringUntil('&');
int value=s.toInt();
Serial.print("Syringe motor rpm= ");
Serial.println(value);
Serial.print("&");
lcd.setCursor(4,0);
lcd.print(" ");
lcd.setCursor(4,0);
lcd.print("S:");
lcd.print(value);
syringe.setMaxSpeed(value*3.33);
syringe.move(1000*200);
syringeMotion=false;
glassMotion=false;
}//end if
//glassRpm:23& glass motor rpm
if(s=="glassRpm"){
s = Serial.readStringUntil('&');
int value=s.toInt();
Serial.print("Glass motor rpm= ");
Serial.println(value);
Serial.print("&");
lcd.setCursor(9,0);
lcd.print(" ");
lcd.setCursor(9,0);
lcd.print("G:");
lcd.print(value);
glass.setMaxSpeed(value*3.33);
glass.move(1000*200);
syringeMotion=false;
glassMotion=false;
}//end if
//syringeRevs:12& syringe revs
else if(s=="syringeRevs"){
s = Serial.readStringUntil('&');
int value=s.toInt();
Serial.print("Syringe motor revs= ");
Serial.println(value);
lcd.setCursor(4,1);
lcd.print(" ");
lcd.setCursor(4,1);
lcd.print("S:");
lcd.print(value);
syringe.move(value*200);
}//end else if
//glassRevs:45& glass revs
else if(s=="glassRevs"){
s = Serial.readStringUntil('&');
int value=s.toInt();
Serial.print("Glass motor revs= ");
Serial.println(value);
lcd.setCursor(10,1);
lcd.print(" ");
lcd.setCursor(10,1);
lcd.print("G:");
lcd.print(value);
glass.move(value*200);
}//end else if
//syringeStart: start syringe motor
else if(s=="syringeStart"){
Serial.println("start syringe motor");
syringeMotion=true;
}//end else if
//syringeStop: stop syringe motor
else if(s=="syringeStop"){
Serial.println("stop syringe motor");
syringeMotion=false;
}//end else if
//glassStart: start glass motor
else if(s=="glassStart"){
Serial.println("start glass motor");
glassMotion=true;
}//end else if
//glassStop: stop glass motor
else if(s=="glassStop"){
Serial.println("stop glass motor");
glassMotion=false;
}//end else if
}
MATLAB Code
function varargout = untitled8(varargin)
% UNTITLED8 MATLAB code for untitled8.fig
% UNTITLED8, by itself, creates a new UNTITLED8 or raises the existing
% singleton*.
%
% H = UNTITLED8 returns the handle to a new UNTITLED8 or the handle to
% the existing singleton*.
%
% UNTITLED8('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in UNTITLED8.M with the given input arguments.
%
% UNTITLED8('Property','Value',...) creates a new UNTITLED8 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before untitled8_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to untitled8_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help untitled8
% Last Modified by GUIDE v2.5 04-May-2015 20:01:27
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @untitled8_OpeningFcn, ...
'gui_OutputFcn', @untitled8_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before untitled8 is made visible.
function untitled8_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to untitled8 (see VARARGIN)
% Choose default command line output for untitled8
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes untitled8 wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = untitled8_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1 as a double
% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit2_Callback(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit2 as text
% str2double(get(hObject,'String')) returns contents of edit2 as a double
% --- Executes during object creation, after setting all properties.
function edit2_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
global s1;
s=get(handles.edit1,'String');
rpms=str2double(s);
if rpms<0.018 || rpms>0.3 || isnan(rpms)
rpms=0;
set(handles.edit1,'String',rpms);
else
rpms=171.4*rpms;
end
set(handles.text7,'String',rpms);
%syringeRpm:17&
string=strcat('syringeRpm:',num2str(rpms),'&')
fprintf(s1,string);
s=get(handles.edit2,'String');
rpmg=str2double(s);
if rpmg<0.087 || rpmg>1.5 || isnan(rpmg)
rpmg=0;
set(handles.edit2,'String',rpmg);
else
rpmg=34.3*rpmg;
end
set(handles.text9,'String',rpmg);
pause(2);
%glassRpm:23&
string=strcat('glassRpm:',num2str(rpmg),'&')
fprintf(s1,string);
% s=get(handles.edit2,'String');
% rpmg=str2double(s);
% rpmg=34.3*rpmg
% set(handles.text9,'String',rpmg);
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
set(handles.edit1,'String','0')
set(handles.edit2,'String','0')
set(handles.text7,'String','0')
set(handles.text9,'String','0')
function edit3_Callback(hObject, eventdata, handles)
% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit3 as text
% str2double(get(hObject,'String')) returns contents of edit3 as a double
% --- Executes during object creation, after setting all properties.
function edit3_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
function edit4_Callback(hObject, eventdata, handles)
% hObject handle to edit4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit4 as text
% str2double(get(hObject,'String')) returns contents of edit4 as a double
% --- Executes during object creation, after setting all properties.
function edit4_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata, handles)
global s1;
%syringeStart:
string='syringeStart:';
fprintf(s1,string);
% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
global s1;
%syringeStop:
string='syringeStop:';
fprintf(s1,string);
% --- Executes on button press in pushbutton9.
function pushbutton9_Callback(hObject, eventdata, handles)
global s1;
%glassStart:
string='glassStart:';
fprintf(s1,string);
% --- Executes on button press in pushbutton10.
function pushbutton10_Callback(hObject, eventdata, handles)
global s1;
%glassStop:
string='glassStop:';
fprintf(s1,string);
% --- Executes on button press in pushbutton11.
function pushbutton11_Callback(hObject, eventdata, handles)
s=get(handles.edit4,'String');
rev2=str2double(s);
if isnan(rev2)
rev2=0;
set(handles.edit4,'String',rev2);
end
% --- Executes on button press in pushbutton12.
function pushbutton12_Callback(hObject, eventdata, handles)
set(handles.edit4,'String','0')
% --- Executes on button press in pushbutton13.
function pushbutton13_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton13 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton14.
function pushbutton14_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton14 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
function edit6_Callback(hObject, eventdata, handles)
% hObject handle to edit6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit6 as text
% str2double(get(hObject,'String')) returns contents of edit6 as a double
% --- Executes during object creation, after setting all properties.
function edit6_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in pushbutton19.
function pushbutton19_Callback(hObject, eventdata, handles)
global s1;
s=get(handles.edit6,'String');
rev1=str2double(s);
if isnan(rev1)
rev1=0;
set(handles.edit6,'String',rev1);
end
s=get(handles.edit7,'String');
rpms=str2double(s);
if rpms<0 || rpms>80 || isnan(rpms)
rpms=0;
set(handles.edit7,'String',rpms);
end
set(handles.text7,'String',rpms);
string=strcat('syringeRpm:',num2str(rpms),'&')
fprintf(s1,string);
pause(4);
%syringeRevs:45& syringe revs
string=strcat('syringeRevs:',num2str(rev1),'&')
fprintf(s1,string);
% --- Executes on button press in pushbutton20.
function pushbutton20_Callback(hObject, eventdata, handles)
set(handles.edit6,'String','0')
set(handles.edit7,'String','0')
% --- Executes on button press in pushbutton21.
function pushbutton21_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton21 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton22.
function pushbutton22_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton22 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
function edit7_Callback(hObject, eventdata, handles)
% hObject handle to edit7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit7 as text
% str2double(get(hObject,'String')) returns contents of edit7 as a double
% --- Executes during object creation, after setting all properties.
function edit7_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit10_Callback(hObject, eventdata, handles)
% hObject handle to edit10 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit10 as text
% str2double(get(hObject,'String')) returns contents of edit10 as a double
% --- Executes during object creation, after setting all properties.
function edit10_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit10 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in pushbutton25.
function pushbutton25_Callback(hObject, eventdata, handles)
global s1;
s=get(handles.edit10,'String');
rev1=str2double(s);
if isnan(rev1)
rev1=0;
set(handles.edit10,'String',rev1);
end
s=get(handles.edit11,'String');
rpmg=str2double(s);
if rpmg<0 || rpmg>80 || isnan(rpmg)
rpmg=0;
set(handles.edit11,'String',rpmg);
end
set(handles.text9,'String',rpmg);
string=strcat('glassRpm:',num2str(rpmg),'&')
fprintf(s1,string);
pause(2);
%glassRevs:45& syringe revs
string=strcat('glassRevs:',num2str(rev1),'&')
fprintf(s1,string);
% --- Executes on button press in pushbutton26.
function pushbutton26_Callback(hObject, eventdata, handles)
set(handles.edit10,'String','0')
set(handles.edit11,'String','0')
function edit11_Callback(hObject, eventdata, handles)
% hObject handle to edit11 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit11 as text
% str2double(get(hObject,'String')) returns contents of edit11 as a double
% --- Executes during object creation, after setting all properties.
function edit11_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit11 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes during object creation, after setting all properties.
function figure1_CreateFcn(hObject, eventdata, handles)
% --- Executes during object deletion, before destroying properties.
function figure1_DeleteFcn(hObject, eventdata, handles)
global s1;
fclose (s1)
delete (s1)
clear s1
clear all
% --- Executes when user attempts to close figure1.
function figure1_CloseRequestFcn(hObject, eventdata, handles)
delete(hObject);
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit12_Callback(hObject, eventdata, handles)
% hObject handle to edit12 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit12 as text
% str2double(get(hObject,'String')) returns contents of edit12 as a double
% --- Executes during object creation, after setting all properties.
function edit12_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit12 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in pushbutton28.
function pushbutton28_Callback(hObject, eventdata, handles)
delete(instrfind)
global s1;
port=get(handles.edit12,'String');
s1 = serial(port); % define serial port
s1.TimerPeriod=10;
s1.BaudRate=9600;
fopen(s1);
% --- Executes on button press in pushbutton29.
function pushbutton29_Callback(hObject, eventdata, handles)
global s1;
fclose (s1)
delete (s1)
clear s1
References
Energy Production, PhD thesis (2013)
2. Janghoon Park, A Matching Design in Roll-to-roll Slot-die Coating Process,
MS thesis (2013)
3. http://www.google.com.pk/imgres?imgurl=http://www.automationtechnologiesinc.com/
wp-content/uploads/2011/11/KL23H256-21-8B.jpg&imgrefurl=http://www.automationtechnologiesinc.com/products-page/steppermotors
4. https://www.google.com.pk/webhp?sourceid=chromeinstant&ion=1&espv=2&ie=UTF-8#q=arduino+sensors
5. http://www.google.com.pk/imgres?imgurl=http://www.robotstorehk.com/motordrivers/i
mages/steppermotor.jpg&imgrefurl=http://www.robotstorehk.com/motordrivers/motordriv
ers.
6. http://www.appropedia.org/Open-source_syringe_pump
7.Harry G. Lippert, Slot-die coating for low viscosity fluids
8. Eungsik Park, Physics of coating tensioned web-over slot-die, PhD thesis (2008)
Comments
Post a Comment