Professional Documents
Culture Documents
Tugas 3 Soal
Tugas 3 Soal
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);
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
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
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); }