Nama:Muhammad Rizki
Nim:3211301031
Elektronika 1A
INPUT/OUTPUTDIGITAL
A. Digital Output
1.Hubungkan pin 11 dan 12
masing-masingke resistor 330 ohm dan LED sepertipadagambar
berikut :
Gambar 2.1 Digital
Output
2. Buat sketch
barukemudiantuliskan program berikut :
int
LED0 = 11;
int
LED1 = 12;
void
setup() {
// put your setup code here, to run once:
pinMode(LED0,OUTPUT);
pinMode(LED1,OUTPUT);
}
void
loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED0,HIGH);
digitalWrite(LED1,HIGH);
}
3. Verify dan
upload jikatidakadakesalahan. Perhatikanapa yang terjadipadakedua LED!
4. Modifikasi
sketch hinggamenjadisepertiberikut :
int
LED0 = 11;
int
LED1 = 12;
void
setup() {
// put your setup code here, to run once:
pinMode(LED0,OUTPUT);
pinMode(LED1,1);
}
void
loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED0,HIGH);
digitalWrite(LED1,1);
}
5. Verify dan
upload jikatidakadakesalahan. Perhatikanapakahterdapatperubahankondisi LED?
B. Digital Input
1. Hubungkan pin 2
ke GND melalui push button switch sepertipadagambarberikut :
Gambar
2.2 Digital Input
2. Buat sketch
barukemudiantuliskan program berikut :
intswitchPin
= 2; // Switch connected to digital pin 2
void
setup()
{
Serial.begin(9600);
// set up Serial library at 9600 bps
pinMode(switchPin,
INPUT); // sets the digital pin as input to read switch
}
void
loop()
{
Serial.print("Read
switch input: ");
Serial.println(digitalRead(switchPin));
// Read the pin and display the value
delay(100);
}
3. Verify dan
upload jikatidakadakesalahan.
4.
PadaaplikasiArduino, klik Tools -> Serial Monitor.
5. Tekan push
button danperhatikannilaipada Serial Monitor. CatathasilpengamatanpadaTabel
2.1.
6.
Perhatikanjuganilaipada Serial Monitor ketikatidakadapenekanan push button.
Catathasil
pengamatanpadaTabel
2.1.
|
No
|
Push Button
|
NilaiPada Serial Monitor
|
NilaiBerubah-ubahatauTetap?
|
|
1
|
Ditekan
|
0
|
TETAP
|
|
2
|
Tidakditekan
|
1 & 0
|
BERUBAH
|
7. Modifikasi
sketch hinggamenjadisepertiberikut :
intswitchPin = 2;
// Switch connected to digital pin 2
void setup()
{
Serial.begin(9600);
// set up Serial library at 9600 bps
pinMode(switchPin,
INPUT); // sets the digital pin as input to read switch
digitalWrite(switchPin,HIGH);
// Pull up activated
}
void loop()
{
Serial.print("Read
switch input: ");
Serial.println(digitalRead(switchPin));
// Read the pin and display the value
delay(100);
}
8. Verify dan
upload jikatidakadakesalahan.
9.
PadaaplikasiArduino, klik Tools -> Serial Monitor.
10. Tekan push
button danperhatikannilaipada Serial Monitor. CatathasilpengamatanpadaTabel
2.2.
11.
Perhatikanjuganilaipada Serial Monitor ketikatidakadapenekanan push button.
Catathasil
pengamatanpadaTabel
2.2.
|
No
|
Push Button
|
NilaiPada Serial Monitor
|
NilaiBerubah-ubahatauTetap?
|
|
1
|
Ditekan
|
0
|
Tetap
|
|
2
|
Tidakditekan
|
1
|
Tetap
|
C. MenghitungPenekananTombol
1. MasihmenggunakanrangkaianpadaGambar
2.2, buatlah sketch sepertiberikut :
intswitchPin
= 2; // switch is connected to pin 2
intval;
// variable for reading the pin status
intbuttonState;
// variable to hold the button state
intbuttonPresses
= 0; // how many times the button has been pressed
void
setup() {
pinMode(switchPin,
INPUT); // Set the switch pin as input
digitalWrite(switchPin,HIGH);
Serial.begin(9600);
// Set up serial communication at 9600bps
buttonState
= digitalRead(switchPin); // read the initial state
}
void
loop(){
val
= digitalRead(switchPin); // read input value and store it in val
if
(val != buttonState) { // the button state has changed!
if
(val == LOW) { // check if the button is pressed
buttonPresses++;
// increment the buttonPresses variable
Serial.print("Button
has been pressed ");
Serial.print(buttonPresses);
Serial.println("
times");
}
}
buttonState
= val; // save the new state in our variable
}
2. Verify, upload
kemudianbuka Serial Monitor !
3. Tekan push
button switch. Perhatikannilaipada Serial Monitor, apakahnilainyabertambah 1
setiap kali push
button ditekan? Atauadakalanyalompatbeberapanilai?CatatpadaTabel2.3 !
|
Penekanan push button ke-
|
NilaiPada Serial Monitor
|
|
1
|
1
|
|
2
|
2,3
|
|
3
|
4,5
|
|
4
|
6
|
|
5
|
7,8
|
|
6
|
9,10
|
|
7
|
11
|
|
8
|
12,13
|
|
9
|
14,15
|
|
10
|
16,17
|
4. Modifikasi
sketch menjadisepertiberikut :
intswitchPin
= 2; // switch is connected to pin 2
intval;
// variable for reading the pin status
intbuttonState;
// variable to hold the button state
intbuttonPresses
= 0; // how many times the button has been pressed
void
setup() {
pinMode(switchPin,
INPUT); // Set the switch pin as input
digitalWrite(switchPin,HIGH);
Serial.begin(9600);
// Set up serial communication at 9600bps
buttonState
= digitalRead(switchPin); // read the initial state
val
= digitalRead(switchPin); // read input value and store it in val
delay(10);
// wait 10mS
if
(val != buttonState) { // the button state has changed!
if
(val == LOW) { // check if the button is pressed
buttonPresses++;
// increment the buttonPresses variable
Serial.print("Button
has been pressed ");
Serial.print(buttonPresses);
Serial.println("
times");
}
}
buttonState
= val; // save the new state in our variable
}
5. Tekan push
button switch. Perhatikannilaipada Serial Monitor, apakahnilainyabertambah 1
setiap kali push
button ditekan? Atauadakalanyalompatbeberapanilai?CatatpadaTabel2.4 !
|
Penekanan push button
ke-
|
NilaiPada Serial
Monitor
|
|
1
|
1
|
|
2
|
2
|
|
3
|
3
|
|
4
|
4
|
|
5
|
5
|
|
6
|
6
|
|
7
|
7
|
|
8
|
8
|
|
9
|
9
|
|
10
|
10
|
Tugas
1. int
switchPin = 2; // switch is connected to pin 2
int
val; // variable for reading the pin status
int
buttonState; // variable to hold the button state
int
buttonPresses = 0; // how many times the button has been pressed
int
LED =11;
int
a;
void
setup()
{
pinMode(LED,OUTPUT);
pinMode(switchPin, INPUT); // Set the switch
pin as input
digitalWrite(switchPin,HIGH);
Serial.begin(9600); // Set up serial
communication at 9600bps
buttonState = digitalRead(switchPin); // read
the initial state
}
void
loop()
{
val = digitalRead(switchPin); // read input
value and store it in val
delay(10); // wait 10mS
if (val != buttonState) // the button state
has changed!
{
if (val == LOW) // check if the button is
pressed
{
// check if the button is pressed
for(int a =0;a<=4;a++)
{
digitalWrite(LED,
HIGH);
delay(500); // wait for a second
digitalWrite(LED, LOW);
delay(500);
}
}
}
buttonState = val;
}
2.
int switchPin = 2; // switch is
connected to pin 2
int
val; // variable for reading the pin status
int
buttonState; // variable to hold the button state
int
buttonPresses = 11; // how many times the button has been pressed
void
setup()
{
pinMode(switchPin, INPUT); // Set the switch
pin as input
digitalWrite(switchPin,HIGH);
Serial.begin(9600); // Set up serial
communication at 9600bps
buttonState = digitalRead(switchPin); // read
the initial state
}
void
loop()
{
val = digitalRead(switchPin); // read input
value and store it in val
delay(500); // wait 10mS
if (val != buttonState) // the button state
has changed!
{
if (val == LOW) // check if the
button is pressed
{
buttonPresses--; // increment the
buttonPresses variable
if( buttonPresses<0)
{
buttonPresses=0;
}
else
if( buttonPresses>=0)
{
Serial.print("Button has been pressed
");
Serial.print(buttonPresses);
Serial.println(" times");
}
}
}
}
KESIMPULAN:
Pada praktikum ini kita dapat
lebih mengetahui tentang input maupun output pada digital pada arduino uno, Input/Output
Digital atau digital pin adalah pin-pin untuk menghubungkan Arduino dengan
komponen atau rangkaian digital. Misalnya kalau ingin membuat LED berkedip, LED
tersebut bisa dipasang pada salah satu pin I/O digital dan ground. Komponen
lain yang menghasilkan output digital atau menerima input digital bisa disambungkan
ke pin-pin ini



