No. 2
ANTARMUKA SWITCH
Nama Anggota
Kelas / Kelompok
: TT 4D / 06
DAFTAR ISI
1. DIAGRAM SKEMATIK
2. SKETCH
3. ANALISA SKETCH
14
4. KESIMPULAN
17
5. DAFTAR PUSTAKA
18
PERCOBAAN 1
ANTARMUKA LED
1. DIAGRAM SKEMATIK
1.1.P2.1 On/Off
int val = 0;
void setup()
{
pinMode(ledPin,OUTPUT);
pinMode(switchPin,INPUT);
}
void loop()
{
val = digitalRead(switchPin);
if(val == LOW)
{
digitalWrite(ledPin,HIGH);
}
else
{
digitalWrite(ledPin,LOW);
}
}
3. Cara Kerja
Pada percobaan p2.1 yaitu Switch On/Off yaitu memiliki fungsi saat switch button
ditekan maka led akan mati dan bisa diatur juga sebaliknya.
4. Analisa
Pada percobaan ini digunakan Pin digital karena LED yang digunakan hanya
berfungsi mati dan menyala saja atau LOW/HIGH, pin yang digunakan Pin13. Untuk
input LED dengan perintah int ledPin = 13. Switch dimasukan ke pin bernilai 5V
sebagai sumber tegangan dan input switch dimasukan ke pin Digital, pin yang
digunakan yaitu Pin D2. Switch dimasukan ke input pin digital sehingga switch tersebut
close dan open. apabila menggunakan pin D2 akan embuat switch apabila ditekan akan
membuat LED mati ,
Void loop akan membuat rangkaian akan bekerja berulang-ulang (looping),
menggunakan pin digital maka menggunakan fungsi digitalWrite, jika ledPin diberi
masukan HIGH maka led akan menyala dan jika ledPin diberi masukan LOW maka
LED AKAN PADAM.
5. Foto Rangkaian
1. DIAGRAM SKEMATIK
int ledPin = 9;
int switchPin = 2;
int val = 0;
int fadeVal = 0;
void setup()
{
pinMode(ledPin,OUTPUT);
pinMode(switchPin,INPUT);
}
void loop()
{
val = digitalRead(switchPin);
if (val == HIGH)
{
digitalWrite(ledPin,LOW);
delay(50);
digitalWrite(ledPin,HIGH);
delay(50);
}
else{
7
{
for(fadeVal = 0; fadeVal<=255;fadeVal+=5)
{
analogWrite(ledPin,fadeVal);
delay(10);
}
for(fadeVal = 255;fadeVal>=0;fadeVal-=5)
{
analogWrite(ledPin,fadeVal);
}
}
}
4. ANALISA
Pada percobaan ini LED menggunakan pin 9, pin yang digunakan adalah pin PWM
karena selain berfungsi blinking LED juga akan berfungsi Fading. Switch dihubungkan ke pin
5V dan diberi input oleh pin digital 2. Int fadeVal=0; perintah ini berfungsi sebagai nilai awal
pada saat LED melakukan fading, jika misalkan nilai fadeVal diisi dengan nilai 100 maka LED
akan melakukan fading dari 100 hingga maksimal yaitu 255. val = digitalRead(switchPin);
perintah ini berfungsi untuk membaca pin yang digunakan D2 dan memposisikan switch agar
8
dapat diatur. digitalWrite(ledPin, LOW); perintah ini digunakan untuk memberikan waktu atau
delay terhadap LED saat LED mati, dan delay tersebut dapat diatur dengan memasukan perintah
delay(50);. digitalWrite(ledPin,HIGH); perintah ini digunakan untuk memberikan waktu
tenggang saat LED menyala dan delay nya dapat diatur pula.
Saat switch dalam keadaan open maka LED akan membaca perintah fading.
for(fadeVal = 0 ; fadeVal <= 255 ; fadeVal +=5) perintah ini dilakukan untuk memberikan nilai
awal, nilai maksimal dan pertambahan nilai saat LED melakukan fading. Nilai 0 tersebut berarti
posisi awal saat fading, Nilai 255 berarti posisi maksimal LED menyala. Nilai +5 yaitu step
pertambahan fading pada LED, jadi saat fading maka nilai LED tersebut melangkahi 5 nilai
setiap stepnya. analogWrite(ledPin, fadeVal); perintah ini berfungsi untuk mengatur perintah
sebelumnya for(fadeVal = 0 ; fadeVal <= 255 ; fadeVal +=5). delay(10); perintah ini diberikan
untuk memberikan delay atau jeda pada saat melakukan fading. for(fadeVal = 255; fadeVal >=
0 ; fadeVal -=5) perintah ini digunakan untuk melakukan fade out, jadi LED dari posisi
maksimal 255 akan turun hingga posisi 0, step yang diatur yaitu akan turun setiap lima nilai.
analogWrite(ledPin, fadeVal); digunakan untuk mengatur perintah sebelumnya.
5. FOTO RANGKAIAN
1. DIAGRAM SKEMATIK
10
void setup()
{
pinMode(switchPin,INPUT);
pinMode(ledPin,OUTPUT);
}
void loop()
{
if(digitalRead(switchPin) == HIGH && lastButton == LOW)
{
ledOn = !ledOn;
lastButton = HIGH;
}
else
{
lastButton = digitalRead(switchPin);
}
digitalWrite(ledPin,ledOn);
}
11
debouncing sehingga aabila ditekan belom tentu mati dan tidak menentu karena ada noise
yang mengganggu sehingga datanya tidak akurat.
4. Analisa
Pada percobaan ini LED menggunakan pin 13, pin yang digunakan adalah pin
Digital. Switch menggunakan sumber 5V dan pin yang digunakan Pin Digital 8. Boolean
lastButton = LOW; perintah ini digunakan agar saat switch ditekan maka switch tersebut
menjadi close. Boolean ledOn = false; perintah ini digunakan agar LED menyala
Pada void loop akan membuat rangkaian looping menggunakan fungsi if , if
biasanya diggunakan untuk membandingkan statement yang berbeda.ledOn=!ledOn fungsi
ini akan membuat switch menyala dan tanda seru merupakan not sehingga disatu posisi
akan membuat LED mati, apabila LastButton diisi = HIGH untuk dapat mengubah posisi
switch dan mengguanaka fungsi else pada LastButton=digitalWrite yang akan membuat
switch bekerja sesuai dengan pin digital yaitu pin 8.
5.FOTO RANGKAIAN
12
1. DIAGRAM SKEMATIK
13
void setup()
{
pinMode(switchPin,INPUT);
pinMode(ledPin,OUTPUT);
}
14
4. Analisa P2. 4 :
Pada praktikum P2. 4 Toggle On/Off (w/ Debouncing) menggunakan switch pin = 8,
pin untuk LED menggunakan kaki pin 13 dan posisi awal pada switch di setting LOW. Ketika
swtich ditekan lampu LED akan menyala dan ketika switch dilepas lampu akan mati sesuai
dengan delay yang ditentukan
6.
FOTO RANGKAIAN
15
1. DIAGRAM SKEMATIK
16
2. SKETCH
P2.5 Fading Switch
int switchPin = 8;
int ledPin = 3;
boolean lastButton = LOW;
boolean currentButton = LOW;
int ledLevel = 0;
void setup()
{
pinMode(switchPin, INPUT);
pinMode(ledPin, OUTPUT);
}
boolean debounce(boolean last)
{
boolean current = digitalRead(switchPin);
if(last!=current)
{
delay(5);
current = digitalRead(switchPin);
}
return current;
}
void loop()
17
{
currentButton = debounce(lastButton);
if(lastButton == LOW && currentButton == HIGH)
{
ledLevel = ledLevel + 101;
}
lastButton = currentButton;
if (ledLevel > 255)ledLevel=0;
analogWrite(ledPin, ledLevel);
18
5.
FOTO RANGKAIAN
19
1. DIAGRAM RANGKAIAN
20
2. SKETCH
P2.6 Interactive Traffic Lights
int carRed = 12;
int carYellow = 11;
int carGreen = 10;
int pedRed = 9;
int pedGreen = 8;
int button = 2;
int crossTime = 5000;
unsigned long changeTime;
void setup()
{
pinMode(carRed, OUTPUT);
pinMode(carYellow, OUTPUT);
pinMode(carGreen, OUTPUT);
pinMode(pedRed, OUTPUT);
pinMode(pedGreen, OUTPUT);
pinMode(button, INPUT);
digitalWrite(carGreen, HIGH);
digitalWrite(pedRed, HIGH);
}
void loop()
{
21
void changeLights()
{
digitalWrite(carGreen, LOW);
digitalWrite(carYellow, HIGH);
delay(200);
digitalWrite(carYellow, LOW);
digitalWrite(carRed, HIGH);
delay(100);
digitalWrite(pedRed, LOW);
digitalWrite(pedGreen, HIGH);
delay(crossTime);
22
digitalWrite(pedRed, HIGH);
delay(50);
digitalWrite(carYellow, HIGH);
digitalWrite(carRed, LOW);
delay(100);
digitalWrite(carGreen, HIGH);
digitalWrite(carYellow, LOW);
changeTime=millis();
}
23
5. FOTO RANGKAIAN
RANGKAIAN SKEMATIK
24
SKETCH
P2.7 DIY
const int redPin = 6;
const int greenPin = 5;
const int bluePin = 3;
const int red2Pin = 11;
const int green2Pin = 10;
const int blue2Pin = 9;
const boolean invert = false;
int switchPin = 2;
int val = 0;
int color = 0;
int R,G,B;
void setup()
{
pinMode(redPin,OUTPUT);
pinMode(greenPin,OUTPUT);
pinMode(bluePin,OUTPUT);
pinMode(red2Pin,OUTPUT);
pinMode(green2Pin,OUTPUT);
pinMode(blue2Pin,OUTPUT);
pinMode(switchPin,INPUT);
25
void loop()
{
val = digitalRead(switchPin);
if(val == LOW)
{
digitalWrite(redPin,HIGH);
digitalWrite(greenPin,HIGH);
digitalWrite(bluePin,HIGH);
digitalWrite(red2Pin,HIGH);
digitalWrite(green2Pin,HIGH);
digitalWrite(blue2Pin,HIGH);
}
else
{
digitalWrite(redPin,LOW);
digitalWrite(greenPin,LOW);
digitalWrite(bluePin,LOW);
digitalWrite(red2Pin,LOW);
digitalWrite(green2Pin,LOW);
digitalWrite(blue2Pin,LOW);
{
int brightness = 255;
hueToRGB(color,brightness);
26
analogWrite(redPin,R);
analogWrite(greenPin,G);
analogWrite(bluePin,B);
analogWrite(red2Pin,R);
analogWrite(green2Pin,G);
analogWrite(blue2Pin,B);
color++;
if(color>255)
color = 0;
delay(1);
}
}
}
void hueToRGB(int hue,int brightness)
{
unsigned int scaledHue = (hue*12);
unsigned int segment = scaledHue/256;
unsigned int segmentOffset = scaledHue-(segment*256);
unsigned int complement = 0;
unsigned int prev = (brightness*(255-segmentOffset))/256;
unsigned int next = (brightness* segmentOffset)/256;
if(invert)
27
{
brightness = 255-brightness;
complement = 255;
prev = 255-prev;
next = 255-next;
}
switch(segment)
{
case 0: //red
R = brightness;
G = next;
B = complement;
break;
case 1: //yellow
R = prev;
G = brightness;
B = complement;
break;
case 2: //green
R = complement;
G = brightness;
B = next;
28
break;
case 3: //cyan
R = complement;
G = prev;
B = brightness;
break;
case 4: //blue
R = next;
G = complement;
B = brightness;
break;
case 5: //magenta
R = brightness;
G = complement;
B = prev;
break;
}
}
void setup2()
29
{
pinMode(pinLED, OUTPUT);
}
void loop2()
{
digitalWrite(redPin,HIGH);
digitalWrite(bluePin,HIGH);
digitalWrite(greenPin,HIGH);
digitalWrite(red2Pin,HIGH);
digitalWrite(blue2Pin,HIGH);
digitalWrite(green2Pin,HIGH);
delay(100);
digitalWrite(redPin,LOW);
digitalWrite(bluePin,LOW);
digitalWrite(greenPin,LOW);
digitalWrite(red2Pin,LOW);
digitalWrite(blue2Pin,LOW);
digitalWrite(green2Pin,LOW);
delay(100);
}
30
void setup3()
{
pinMode(pinLED, OUTPUT);
}
void loop3()
{
digitalWrite(redPin,HIGH);
digitalWrite(bluePin,HIGH);
digitalWrite(greenPin,HIGH);
digitalWrite(red2Pin,HIGH);
digitalWrite(blue2Pin,HIGH);
digitalWrite(green2Pin,HIGH);
delay(100);
digitalWrite(redPin,LOW);
digitalWrite(bluePin,LOW);
digitalWrite(greenPin,LOW);
digitalWrite(red2Pin,LOW);
digitalWrite(blue2Pin,LOW);
digitalWrite(green2Pin,LOW);
delay(100);
}
int pinLED3 = 8;
31
void setup4()
{
pinMode(pinLED, OUTPUT);
}
void loop4()
{
digitalWrite(redPin,HIGH);
digitalWrite(bluePin,HIGH);
digitalWrite(greenPin,HIGH);
digitalWrite(red2Pin,HIGH);
digitalWrite(blue2Pin,HIGH);
digitalWrite(green2Pin,HIGH);
delay(100);
digitalWrite(redPin,LOW);
digitalWrite(bluePin,LOW);
digitalWrite(greenPin,LOW);
digitalWrite(red2Pin,LOW);
digitalWrite(blue2Pin,LOW);
digitalWrite(green2Pin,LOW);
delay(100);
}
32
int pinLED4 = 7;
void setup5()
{
pinMode(pinLED, OUTPUT);
}
void loop5()
{
digitalWrite(redPin,HIGH);
digitalWrite(bluePin,HIGH);
digitalWrite(greenPin,HIGH);
digitalWrite(red2Pin,HIGH);
digitalWrite(blue2Pin,HIGH);
digitalWrite(green2Pin,HIGH);
delay(100);
digitalWrite(redPin,LOW);
digitalWrite(bluePin,LOW);
digitalWrite(greenPin,LOW);
digitalWrite(red2Pin,LOW);
digitalWrite(blue2Pin,LOW);
digitalWrite(green2Pin,LOW);
delay(100);
}
33
int ledPin2 = 4;
int switchPin2 = 2;
int val2 = 0;
void setup6()
{
pinMode(redPin,OUTPUT);
pinMode(switchPin,INPUT);
}
void loop6()
{
val = digitalRead(switchPin);
if(val == LOW)
{
digitalWrite(redPin,HIGH);
digitalWrite(bluePin,HIGH);
digitalWrite(greenPin,HIGH);
digitalWrite(red2Pin,HIGH);
digitalWrite(blue2Pin,HIGH);
digitalWrite(green2Pin,HIGH);
}
else
{
digitalWrite(redPin,LOW);
digitalWrite(bluePin,LOW);
34
digitalWrite(greenPin,LOW);
digitalWrite(red2Pin,LOW);
digitalWrite(blue2Pin,LOW);
digitalWrite(green2Pin,LOW);
}
}
CARA KERJA
2 Buah lampu RGB disusun dan diberi fungsi Moodlight dimana masing- masing
RGB diberi warna yang berbeda dan delay yang diberikan dipercepat agar terlihat seperti
lampu disko, dan ditambahkan fungsi switch dimana jika switch ditekan maka lampu akan
mati maka fungsi yang dipakai yaitu On/Off.
ANALISIS SKETCH
Pada project kali kami membuat Lampu Disko Keren + Switch dmana fungsi yang
digunakan pada project kali ini yaitu fungsi Moodlight pada lampu RGB dan fungsi Switch
On/Off pada switch. Pin yang digunakan pada percobaan ini ada pin PWM. Dimana lampu
RGB akan diatur dan delay nya dibuat lebih cepat seakan-akan lampu disko dimana pengaturan
delay nya bisa dilihat di Fungsi
color++;
// increment variabel color
if(color > 255)
color = 0;
delay(10)
Dimana delay diatas yaitu sepuluh detik waktu yang dibutuhkan untuk mengganti 5
warna , disini karena membuat seolah lampu disko maka delay kita ubah menjadi (3).
35
Selanjutnya warna dari masing-masing RGB kita buat berbeda agar terlihat perpaduan warna
seperti lampu disko. Selanjutnya masukan Fungsi Switch On/Off yang berfungsi sebagai
saklar dimana dari cara kerja switch ini adalah apabila switch ditekan maka lampu akan mati
sebaliknya jika switch dilepas maka lampu akan menyala agar terlihat seperti lampu disko
sungguhan maka diberi aksesoris berupa kertas yang dibentuk serupa lampu disko.
FOTO RANGKAIAN
6. KESIMPULAN
-
36
7. DAFTAR PUSTAKA
37
38