Laprak Arduino
Laprak Arduino
Ditulis Oleh :
TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SINGAPERBANGSA KARAWANG
2017
I
KATA PENGANTAR
Penulis
Karawang, 21-12-2017
II
DAFTAR ISI
KATA PENGANTAR II
DAFTAR ISI III
DAFTAR GAMBAR IV
1 PENDAHULUAN 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 1
1.3 Tujuan 2
1.4 Manfaat 2
2 PEMBAHASAN 2
2.1 Blok Diagram 3
a. Basic ARDUINO 3
b. LED Flasher 4
c. Traffic Lights 4
d. Serial Temperature Sensor 4
e. LCD 5
f. Light Sensor 5
g. Buzzer 5
h. Seven Segment 6
i. Scanning Seven Segment 6
2.2 Flowchart dan Algoritma 7
a. Basic ARDUINO 7
b. LED Flasher 7
c. Traffic Lights 8
d. Serial Temperature Sensor 8
e. LCD 9
f. Light Sensor 9
g. Buzzer 10
h. Seven Segment 11
i. Scanning Seven Segment 12
2.3 Source Code 12
III
a. Basic ARDUINO 12
b. LED Flasher 14
c. Traffic Lights 15
d. Serial Temperature Sensor 16
e. LCD 17
f. Light Sensor 17
g. Buzzer 18
h. Seven Segment 19
i. Scanning Seven Segment 21
2.4 Alat 27
a. Hardware 27
b. Software 30
3 PENUTUP 31
3.1 Kesimpulan 31
LAMPIRAN 32
DAFTAR GAMBAR
1. Blink 3
2. Stringlength 3
3. LED Flasher 4
4. Traffic Lights 4
5. Serial Temperature Sensor 4
6. LCD 5
7. Light Sensor 5
8. Buzzer 5
9. Seven Segment 6
10. Scanning Seven Segment 6
11. Flowchart Stringlenht 7
12. Flowchart Led Flasher 7
13. Flowchart Traffic Light 8
14. Flowchart Sensor Suhu 8
15. Flowchart LCD 9
16. Flowchart LDR 9
17. Flowchart Buzzer 10
18. Flowchart Seven Segment 11
IV
19. Flowchart Scanning Seven Segment 12
20. Arduino 27
21. Jumper 27
22. Breadboard 27
23. Led 28
24. Sensor suhu Lm35 28
25. LDR 28
26. LCD 28
27. Buzzer 29
28. Sevensegment Single 29
29. Sevensegment Double 29
30. Laptop 30
31. Cable Conector Arduino 30
32. Arduino IDE 30
V
1 PENDAHULUAN
1
1.3 Tujuan
Memahami konsep dasar Sistem Mikroprosesor.
Memahami konsep dasar ARDUINO.
Mampu mengaplikasikan ARDUINO sehingga membuat alat berfungsi.
Bisa membaca dan membuat Program ARDUINO di Software IDE.
Memiliki kemampuan dasar penguasaan Sistem Mikroprosesor.
1.4 Manfaat
Mendapatkan pemahaman lebih baik terhadap mikroprosesor
Bisa mengkaji program ARDUINO dengan basis C++ .
Menghasilkan alat berbasis ARDUINO sehingga dapat digunakan untuk
keperluan khusus.
2 PEMBAHASAN
2
2.1 Blok Diagram
a. Basic ARDUINO
Blink
Gambar 1. Blink
Stringlength
Gambar 2. Stringlength
3
b. LED Flasher
c. Traffic Lights
4
e. LCD
Gambar 6. LCD
f. Light Sensor
g. Buzzer
Gambar 8. Buzzer
5
h. Seven Segment
6
2.2 Flowchart dan Algoritma
a. Basic ARDUINO
Stringlenht
b. LED Flasher
7
c. Traffic Lights
8
e. LCD
f. Light Sensor
9
g. Buzzer
10
h. Seven Segment
11
i. Scanning Seven Segment
a. Basic ARDUINO
Blink
12
Stringlength
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// send an intro:
Serial.println("\n\nString length():");
Serial.println();
}
void loop() {
// add any incoming characters to the String:
while (Serial.available() > 0) {
char inChar = Serial.read();
txtMsg += inChar;
}
// print the message and a notice if it's changed:
if (txtMsg.length() != lastStringLength) {
Serial.println(txtMsg);
Serial.println(txtMsg.length());
// if the String's longer than 140 characters, complain:
if (txtMsg.length() < 140) {
Serial.println("That's a perfectly acceptable text message");
} else {
Serial.println("That's too long for a text message.");
}
// note the length for next time through the loop:
lastStringLength = txtMsg.length();
}
}
13
b. LED Flasher
14
c. Traffic Lights
15
d. Serial Temperature Sensor
int potPin = 0;
float temperature = 0;
void printTenths(int value) {
// prints a value of 123 as 12.3
Serial.print(value / 10);
Serial.print(".");
Serial.println(value % 10);
}
void setup() {
Serial.begin(9600);
Serial.println("LM35 Thermometer ");
analogReference(INTERNAL); //INTERNAL1V1 for Arduino Mega
}
void loop() {
int span = 20;
int aRead = 0;
for (int i = 0; i < span; i++) {
aRead = aRead+analogRead(potPin);
}
aRead = aRead / 20;
temperature = ((100*1.1*aRead)/1024)*10;
// convert voltage to temperature
Serial.print("Analog in reading: ");
Serial.print(long(aRead));
// print temperature value on serial monitor
Serial.print(" - Calculated Temp: ");
printTenths(long(temperature));
delay(500);
}
16
e. LCD
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis()/1000);
}
f. Light Sensor
17
g. Buzzer
void setup(){
pinMode(buzzer, OUTPUT); // Set buzzer - pin 9 as an output
}
void loop(){
tone(buzzer, 1000); // Send 1KHz sound signal...
delay(1000); // ...for 1 sec
noTone(buzzer); // Stop sound...
delay(1000); // ...for 1sec
}
18
h. Seven Segment
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
// pinMode(9, OUTPUT);
// digitalWrite(9, 0); // start with the "dot" off
Serial.begin(9600);
}
void loop() {
// write '9'
Serial.println("9\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(500);
// write '8'
Serial.println("8\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(500);
// write '7'
Serial.println("7\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(500);
19
// write '6'
Serial.println("6\n");
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(500);
// write '5'
Serial.println("5\n");
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(500);
// write '4'
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(500);
// write '3'
Serial.println("3\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 0);
delay(500);
// write '2'
Serial.println("2\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 0);
delay(500);
20
// write '1'
Serial.println("1\n");
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(500);
// write '0'
Serial.println("0\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
delay(500);
}
21
// write '9'
Serial.println("9\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9,1);
digitalWrite(10,0);
delay(5);
}
for (int i=0; i<timer; i++){
// write '8'
Serial.println("8\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9,0);
digitalWrite(10,1);
delay(5);
// write '8'
Serial.println("8\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9,1);
digitalWrite(10,0);
delay(5);
}
for (int i=0; i<timer; i++){
// write '7'
Serial.println("7\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
digitalWrite(9,0);
digitalWrite(10,1);
delay(5);
22
// write '7'
Serial.println("7\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
digitalWrite(9,1);
digitalWrite(10,0);
delay(5);
}
for (int i=0; i<timer; i++){
// write '6'
Serial.println("6\n");
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9,0);
digitalWrite(10,1);
delay(5);
// write '6'
Serial.println("6\n");
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9,1);
digitalWrite(10,0);
delay(5);
}
for (int i=0; i<timer; i++){
23
// write '5'
Serial.println("5\n");
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9,0);
digitalWrite(10,1);
delay(5);
// write '5'
Serial.println("5\n");
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9,1);
digitalWrite(10,0);
delay(5);
}
for (int i=0; i<timer; i++){
// write '4'
Serial.println("4\n");
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9,0);
digitalWrite(10,1);
delay(5);
// write '4'
Serial.println("4\n");
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9,1);
digitalWrite(10,0);
delay(5);
}
for (int i=0; i<timer; i++){
24
/ write '3'
Serial.println("3\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 0);
digitalWrite(9,0);
digitalWrite(10,1);
delay(5);
// write '3'
Serial.println("3\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 0);
digitalWrite(9,1);
digitalWrite(10,0);
delay(5);
}
for (int i=0; i<timer; i++){
// write '2'
Serial.println("2\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 0);
digitalWrite(9,0);
digitalWrite(10,1);
delay(5);
// write '2'
Serial.println("2\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 0);
digitalWrite(9,1);
digitalWrite(10,0);
delay(5);
}
25
for (int i=0; i<timer; i++){
// write '1'
Serial.println("1\n");
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
digitalWrite(9,0);
digitalWrite(10,1);
delay(5);
// write '1'
Serial.println("1\n");
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
digitalWrite(9,1);
digitalWrite(10,0);
delay(5);
}
for (int i=0; i<timer; i++){
// write '0'
Serial.println("0\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
digitalWrite(9,0);
digitalWrite(10,1);
delay(5);
// write '0'
Serial.println("0\n");
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
digitalWrite(9,1);
digitalWrite(10,0);
delay(5);
26
2.4 Alat
a. Hardware
No Alat Ket
1 Gambar 20. Arduino Sebagai piranti untuk mengelola program
dari komputer.
27
4 Gambar 23. Led Lampu kecil yang berbasis dioda.
28
8 Gambar 27. Buzzer Berbunyi sebagai respon peringatan.
29
11 Gambar 30. Laptop Sebagai alat perogram software.
b. Software
No Alat Ket
1 Gambar 32. Arduino IDE Digunakan untuk membuat
sebuah program yang akan
dicompile atau diinput
kedalam arduino.
30
3 PENUTUP
3.1 Kesimpulan
Kami telah melakukan percobaan terhadap arduino. Hal yang kami dapatkan
adalah tiap komponen arduino hanya akan merespon jika program yang
dimasukan tepat. Jika terjadi kesalahan perangkaian juga, respon sistem tidak
akan berjalan. Begitu juga saat kita membuat program sendiri. Jika pin program
tidak disebutkan makan respon tidak akan berjalan. Jadi bisa dikatakan penyusain
berulang perlu dilakukan.
31
LAMPIRAN
32
33