Halaman
DAFTAR ISI..................................................................................................................
1 Sifat.......................................................................................................................
2 Dasar Teori...........................................................................................................
2.1 Sistem Kontrol.................................................................................................
2.2 Elevator............................................................................................................
2.3 Mikrokontroler ArduinoUno ATmega 328......................................................
2.4 Motor DC.........................................................................................................
2.5 Sensor LDR......................................................................................................
3 Tujuan...................................................................................................................
4 Alat dan Bahan.....................................................................................................
5 Standard Operating Procedure (SOP).............................................................
6 Rangkaian Skematik..........................................................................................
7 Konsep Alat........................................................................................................
7.1 Desain Elevator..............................................................................................
7.2 Prinsip Kerja..................................................................................................
8 Kode Program Arduino.....................................................................................
Keterampilan
Pembuktian
Pengenalan
X
X
2. Dasar Teori
2.1 Sistem Kontrol
Percobaan
Sistem kontrol adalah sebuah kumpulan atau susunan komponenkomponen alat yang saling terhubung dan membentuk satu kesatuan untuk
mengendalikan, mengatur, dan memerintah keadaan dari suatu mekanisme
tertentu. Dalam dunia industri, sistem kontrol merupakan sebuah sistem yang
meliputi pengontrolan variabel-variabel
seperti
temperatur
(temperature),
dan
plant
(obyek
yang
pneumatik
(pneumatic
system).
2.2 Elevator
Suatu ciri perkembangan di abad modern adalah banyaknya teknologi
canggih yang membantu dan memudahkan pekerjaan manusia. Sebagian
besar teknologi buatan manusia diadopsi dari sifat mekanisme alam dan Problem
Solving dari suatu mekanisme tersebut. Salah satu teknologi berbasiskan
kecerdasan buatan (Artificial Intelligence) yaitu elevator atau yang lebih akrab
dikenal oleh masyarakat luas dengan nama Lift.
Lift atau Elevator adalah alat angkut transportasi vertikal yang
mempunyai
ge rakan
peri odi k
dan
digunakan
untuk
mengangkut
rel
vertikal),
umumnya
digunakan
digedung-gedung bertingkat
tinggi.
Open Source
Hardware maupun software Arduino adalah open source. Artinya kita bisa
membuat tiruan atau clone atau board yang kompatibel dengan board Arduino
tanpa harus membeli board asli buatan Italy. Kalaupun kita membuat board yang
persis dengan desain asli, kita tidak akan dianggap membajak (asalkan tidak
menggunakan trade mark Arduino).
Tidak memerlukan chip programmer
Chip pada Arduino sudah dilengkapi dengan bootloader yang akan
menangani proses upload dari komputer. Dengan adanya bootloader ini kita tidak
memerlukan chip programmer lagi, kecuali untuk menanamkan bootloader pada
chip yang masih blank.
Koneksi USB
Sambungan dari komputer ke board Arduino menggunakan USB, bukan
serial atau parallel port. Sehingga akan mudah menghubungkan Arduino ke PC
atau laptop yang tidak memiliki serial/parallel port.
pengembangan
proyek.
Demikian
juga
dengan
Arduino,
: Pins 6
: Pin 40 mA
4
: Pin 50 mA
: Yang 0.5 KB digunakan oleh
bootloader
SRAM
: 2 KB (ATmega328)
EEPROM
: 1 KB (ATmega328)
Clock Speed
: 16 MHz
Input Voltage
Arduino Uno ini dapat beroperasi pada tegangan eksternal dari 6 20 Volt.
Jika diberikan tegangan kurang dari 7 Volt, maka Arduino ini mungkin akan
menjadi tidak stabil. Jika menggunakan lebih dari 12 Volt, regulator voltage bisa
panas dan merusak board. Rentang yang dianjurkan adalah 7 12 Volt.
Memori
ATmega328 ini memiliki memori sebesar 32 KB (0.5 KB dari memori
tersebut digunakan untuk bootloader) dan juga memiliki memori sebesar 2 KB
dari SRAM dan 1 KB EEPROM.
Input dan Output
Masing masing dari 14 pin digital pada Uno dapat digunakan sebagai
input atau output, dengan menggunakan fungsi pinMode (), digitalWrite (), dan
digitalRead (). Setiap pin dapat memberikan atau menerima maksimum 40 mA
dan memiliki resistor pull-up internal (terputus secara default) dari 20 50 k.
Selain itu, beberapa pin memiliki fungsi khusus.
2.4 Motor DC
Motor arus searah, sebagaimana namanya, menggunakan arus langsung yang
tidak langsung (direct-unidirectional). Motor DC digunakan pada penggunaan
khusus dimana diperlukan penyalaan torsi (torque) yang tinggi atau percepatan
yang tetap untuk kisaran kecepatan yang luas.
Motor DC yang memiliki tiga komponen utama, yaitu:
yang
Dinamo. Bila arus masuk menuju dinamo, maka arus ini akan
menjadi
elektromagnet.
Dinamo
yang
berbentuk
silinder,
Commutator.
motor
Komponen
ini
terutama
ditemukan
dalam
utama
motor
DC
adalah
sebagai
pengendali
Tegangan
dinamo
meningkatkan
tegangan
dinamo
akan
meningkatkan kecepatan.
sebab
sering terjadi masalah dengan perubahan arah arus listrik mekanis pada
ukuran yang lebih besar. Juga, motor tersebut dibatasi hanya untuk penggunaan
di area yang bersih dan tidak berbahaya sebab resiko percikan api pada
sikatnya. Motor DC juga relatif mahal dibanding motor AC.
3. Tujuan
Setelah membuat praktikum Step Motor Elevator, penulis dan pembaca
mampu:
1. Mengetahui komponen-komponen yang digunakan pada Step Motor
Elevator
2. Mengetahui prinsip kerja Step Motor Elevator dengan Mikrokontroller
ArduinoUno.
3. Melakukan instalasi pemasangan Step Motor Elevator.
4. Alat dan Bahan
Alat
dan
Bahan
Sat
Volu
m
e
u
a
n
Gambar
Board Arduino
Uno
Bua
h
Stepper
Motor
+
ULN2003
Driver
Board Set
Bua
h
Momentary
Pushbutton
Bua
h
Sensor LDR
Bua
h
Lampu LED
Putih
Bua
h
4 Digit Seven
Segment
Katoda
Bua
h
5V
Laker 606
Bua
h
Benang
Layangan
Kabel Jumper
Secu
k
u
p
n
y
a
Secu
k
u
p
n
y
a
cm
cm
Resistor 220
Bua
h
Resistor
Bua
h
Solder
Bua
h
Timah Solder
Bua
h
10K
Papan Triplek
Bua
h
Software
Arduino
Uno
Bua
h
Gergaji Besi
Bua
h
Cutter
Bua
h
Bor
Bua
h
Lem Alteco
Bua
h
Port USB
Bua
h
Lem Tembak
Bua
h
10
Benang Kasur
Kertas Foto
Isolasi
Sterofoam
Secu
k
u
p
n
y
a
Secu
k
u
p
n
y
a
Secu
k
u
p
n
y
a
Secu
k
u
p
n
y
a
cm
cm
cm
cm
Deskripsi
11
1
2
3
4
5
Tidak
Ya
Tidak
8
Berhasil
?
Ya
9
12
6. Rangkaian Skematik
Gambar 3.Skematik
13
7. Konsep Alat
7.1 Desain Elevator
Step Motor Elevator ini terdiri dari 3 lantai. Masing-masing lantai
memiliki ketinggian 7 cm. Kolom terakhir diakhiri setinggi 27 cm, tiga lantai
hanya setinggi 21 cm. Ini dikarenakan penyiapan spasi untuk masing-masing
lantai untuk berdiri dan untuk katrol yang berada di atap elevator.
14
15
|B
// |---G---|
// E|
|C
// | D |
// ------//------------------------------------ Done with #define statements
// Variables
boolean firstRun = true;
int currentFloor = 1; // Used to save the current floor. This value is
changed with the switches and with the readings done by the
photocells
long debounceTime = 200; // The switch's debounce time
int secondFloorReading = 0; // The analog reading from the sensor
divider (for floor 2 and 3)
16
int thirdFloorReading = 0;
// Number array
// An array is defined and filled with the 'numbersegments' array in the
#define section
// Rows and columns are assigned as follows: numbers[number]
[segments]
// Each group of 8 in {....} defines the state of the a,b,c,d,e,f,g,dp
segments for the numbers from 1 to 3
byte
numbers[3][8]
{{0,1,1,0,0,0,0,0},{1,1,0,1,1,0,1,0},
{1,1,1,1,0,0,1,0}};
const int segments[8] = { A, B, C, D, E, f, G, DP }; // This defines an
array that contains the arduino pins for each segment
void setup(){
Serial.begin(9600); // Initialize serial port
pinMode(A, OUTPUT); // Set anodes low to make sure all segments
are off
digitalWrite(A,LOW);
pinMode(B, OUTPUT);
digitalWrite(B,LOW);
pinMode(C, OUTPUT);
digitalWrite(C,LOW);
pinMode(D, OUTPUT);
digitalWrite(D,LOW);
pinMode(E, OUTPUT);
digitalWrite(E,LOW);
pinMode(f, OUTPUT); // This pin will not be connected to the board
digitalWrite(f,LOW);
17
pinMode(G, OUTPUT);
digitalWrite(G,LOW);
pinMode(DP, OUTPUT); // This pin will not be connected to the board
digitalWrite(DP,LOW);
pinMode(CC4, OUTPUT); // Set catodes high to turn off digit
digitalWrite(CC4,HIGH);
pinMode(switchFloor1, INPUT); // Define the arduino pins for the swi
tches as inputs
pinMode(switchFloor2, INPUT);
pinMode(switchFloor3, INPUT);
pinMode(stepperPin1, OUTPUT); // Define the the arduino pins for the
stepper's coils as outputs
pinMode(stepperPin2, OUTPUT);
pinMode(stepperPin3, OUTPUT);
pinMode(stepperPin4, OUTPUT);
}
void loop(){
secondFloorReading = analogRead(photocellFloor2); // Get a reading
from the photocells to verify the current floor
thirdFloorReading = analogRead(photocellFloor3);
Serial.print("Analog reading (Second floor) = ");
Serial.println(secondFloorReading); // the raw analog reading
Serial.print("Analog reading (Third floor) = ");
Serial.println(thirdFloorReading); // the raw analog reading
delay(1000);
18
19
if(currentFloor == 2){
Serial.println("going down");
int numberOfSteps = steps+90;
step_OFF(); // Turning all coils off
while(numberOfSteps>0){
backward(); // Going backward
numberOfSteps -- ; // Counting down the number of steps
}
}
else if(currentFloor == 3){
Serial.println("going down");
int numberOfSteps = (steps*2)+80;
step_OFF(); // Turning all coils off
while(numberOfSteps>0){
backward(); // Going backward
numberOfSteps -- ; // Counting down the number of steps
}
}
currentFloor = 1; // Sets the currentFloor to 1 since the elevator is
now at the first floor
delay(1000);
}
// The following if statement will only allow the switch's input if the
current floor is not already 2
// The coils in the stepper motor will go forward or backwards if the
elevator
20
21
22
}
void setSegments(int number, int digit){
for (int seg = 0; seg < 8; seg++){
if
(numbers[number][seg]==1)
23
{
previousState = HIGH;
return(false); // Switch has not been pressed
}
}
//----- Pin settings for Stepper Motor, forward() and backward( -----/
// These functions set the pin settings for each of the four steps per
rotation of the motor (keepp in mind that the motor in the kit is
geared down,
// i.e. there are many steps necessary per rotation
void Step_A(){
digitalWrite(stepperPin1, HIGH); // Turn on coil 1
digitalWrite(stepperPin2, LOW);
digitalWrite(stepperPin3, LOW);
digitalWrite(stepperPin4, LOW);
}
void Step_B(){
digitalWrite(stepperPin1, LOW);
digitalWrite(stepperPin2, HIGH); // Turn on coil 2
digitalWrite(stepperPin3, LOW);
digitalWrite(stepperPin4, LOW);
}
void Step_C(){
digitalWrite(stepperPin1, LOW);
digitalWrite(stepperPin2, LOW);
digitalWrite(stepperPin3, HIGH); // Turn on coil 3
digitalWrite(stepperPin4, LOW);
}
void Step_D(){
24
digitalWrite(stepperPin1, LOW);
digitalWrite(stepperPin2, LOW);
digitalWrite(stepperPin3, LOW);
digitalWrite(stepperPin4, HIGH); // Turn on coil 4
}
void step_OFF(){
digitalWrite(stepperPin1, LOW); // Power all coils down
digitalWrite(stepperPin2, LOW);
digitalWrite(stepperPin3, LOW);
digitalWrite(stepperPin4, LOW);
}
// These functions run the above configurations in forward and reverse
order
// The direction of a stepper motor depends on the order in which the
coils are turned on.
void forward(){ // One tooth forward
Step_A();
delay(delaytime);
Step_B();
delay(delaytime);
Step_C();
delay(delaytime);
Step_D();
delay(delaytime);
}
void backward(){ // One tooth backward
Step_D();
delay(delaytime);
Step_C();
25
delay(delaytime);
Step_B();
delay(delaytime);
Step_A();
delay(delaytime);
}
26