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
}


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


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)

Comments