You are on page 1of 7

Nama : BAGUS RACHMAD FIRMANSYAH

NIM : P27838021016
KELAS : 2A1
TUGAS 3
Soal
1. Buatlah listing program saat SW1 ditekan mencetak 4 angka terakhir nim kalian. Saat SW2
ditekan mencetak 2 huruf akhir nama panggilan kalian pada digit ke 1 & 2.

Jawab

Listing Program

#define LATCH_DIO 4
#define CLK_DIO 7
#define DATA_DIO 8
int lock = 0;
const byte SEGMENT_MAP[] = {0xF9, 0xC0, 0xF9, 0x90, 0xC1, 0x92};
const byte SEGMENT_SELECT[] = {0xF1,0xF2,0xF4,0xF8};
void setup()
{
pinMode(LATCH_DIO,OUTPUT);
pinMode(CLK_DIO,OUTPUT);
pinMode(DATA_DIO,OUTPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
}
void loop()
{
if(digitalRead(A1)==LOW)
{lock = 1;}
if (lock == 1)
{WriteNumberToSegment(0 , 0);
WriteNumberToSegment(1 , 1);
WriteNumberToSegment(2 , 2);
WriteNumberToSegment(3 , 3);}
if(digitalRead(A2)==LOW)
{lock = 2;}
if (lock == 2)
{WriteNumberToSegment(0 , 4);
WriteNumberToSegment(1 , 5);}
}
void WriteNumberToSegment(byte Segment, byte Value)
{
digitalWrite(LATCH_DIO,LOW);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_MAP[Value]);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_SELECT[Segment] );
digitalWrite(LATCH_DIO,HIGH);

2. Buatlah listing program saat SW1 ditekan mencetak huruf “uC”

Jawab

Listing Program

#define LATCH_DIO 4
#define CLK_DIO 7
#define DATA_DIO 8
int lock = 0;
const byte SEGMENT_MAP[]={0xE3,0xC6};
const byte SEGMENT_SELECT []={0xF1,0xF2,0xF4,0xF8};
void setup()
{
pinMode(LATCH_DIO,OUTPUT);
pinMode(CLK_DIO,OUTPUT);
pinMode(DATA_DIO,OUTPUT);
pinMode(A1, INPUT);
}
void loop()
{
if(digitalRead(A1)==LOW)
{lock = 1;}
if (lock == 1)
{WriteNumberToSegment (0,0);
WriteNumberToSegment (1,1); }
}
void WriteNumberToSegment(byte Segment, byte Value)
{
digitalWrite(LATCH_DIO,LOW);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_MAP[Value]);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_SELECT[Segment] );
digitalWrite(LATCH_DIO,HIGH);
}
3. Buatlah listing program saat SW1 ditekan maka LED menyala bergantian mulai dari LED
pertama hingga keempat LED menyala

Jawab

Listing Program

int LED1 = 10;


int LED2 = 11;

int LED3 = 12;

int LED4 = 13;

void setup()

{ pinMode(LED1, OUTPUT);

pinMode(LED2, OUTPUT);

pinMode(LED3, OUTPUT);

pinMode(LED4, OUTPUT);

pinMode(A1, OUTPUT); }

void loop()

if(digitalRead(A1)==LOW)

digitalWrite(LED1, HIGH);

delay(500);

digitalWrite(LED1, LOW);

delay(500);

digitalWrite(LED2, HIGH);

delay(500);

digitalWrite(LED2, LOW);

delay(500);

digitalWrite(LED3, HIGH);

delay(500);
digitalWrite(LED3, LOW);

delay(500);

digitalWrite(LED4, HIGH);

delay(500);

digitalWrite(LED4, LOW);

delay(500);}

4. Buatlah listing program saat SW1 ditekan maka 2 LED menyala flip flop. Saat SW2 ditekan
semua LED menyala flip flop.

Jawab

Listing Program

int LED1 = 10;

int LED2 = 11;

int LED3 = 12;

int LED4 = 13;

void setup()

{ pinMode(LED1, OUTPUT);

pinMode(LED2, OUTPUT);

pinMode(LED3, OUTPUT);

pinMode(LED4, OUTPUT);

pinMode(A1, OUTPUT); }

void loop()

{
if(digitalRead(A1)==LOW)

digitalWrite(LED1, HIGH);

delay(500);

digitalWrite(LED1, LOW);

delay(500);

digitalWrite(LED2, HIGH);

delay(500);

digitalWrite(LED2, LOW);

delay(500); }

if(digitalRead(A2)==LOW)

{ digitalWrite(LED1, HIGH);

delay(500);

digitalWrite(LED1, LOW);

delay(500);

digitalWrite(LED2, HIGH);

delay(500);

digitalWrite(LED2, LOW);

delay(500);

digitalWrite(LED3, HIGH);

delay(500);

digitalWrite(LED3, LOW);

delay(500);
digitalWrite(LED4, HIGH);

delay(500);

digitalWrite(LED4, LOW);

delay(500); }

You might also like