Twitter

MIKROKONTEROLER INPUT/OUTPUTDIGITAL

Author Unknown - -
Home » MIKROKONTEROLER INPUT/OUTPUTDIGITAL




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
Text Box: } 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
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