//Tugas_Contoh Simulasi LEDx8
int ledPins[] = {2,3,4,5,6,7,8,9};
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup()
{
lcd.init();
lcd.backlight();
pinMode(ledPins[0],OUTPUT); //ledPins[0] = 2
pinMode(ledPins[1],OUTPUT); //ledPins[1] = 3
pinMode(ledPins[2],OUTPUT); //ledPins[2] = 4
pinMode(ledPins[3],OUTPUT); //ledPins[3] = 5
pinMode(ledPins[4],OUTPUT); //ledPins[4] = 6
pinMode(ledPins[5],OUTPUT); //ledPins[5] = 7
pinMode(ledPins[6],OUTPUT); //ledPins[6] = 8
pinMode(ledPins[7],OUTPUT); //ledPins[7] = 9
}
void loop() {
oneAfterAnother();
oneOnAtATime();
pingPong();
marquee();
randomLED();
}
void oneAfterAnother()
{
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Mode 1");
lcd.setCursor(0, 1);
lcd.print("oneAfterAnother");
int index;
int delayTime = 200;
for(index = 0; index <= 7; index = ++index)
{
digitalWrite(ledPins[index], HIGH);
delay(delayTime); }
for(index = 7; index >= 0; index = --index)
{
digitalWrite(ledPins[index], LOW);
delay(delayTime); }
}
void oneOnAtATime()
{
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Mode 2");
lcd.setCursor(1, 1);
lcd.print("oneOnAtATime");
int index;
int delayTime = 200;
for(index = 0; index <= 7; index = ++index)
{
digitalWrite(ledPins[index], HIGH);
delay(delayTime);
digitalWrite(ledPins[index], LOW); }
}
void pingPong()
{
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Mode 3");
lcd.setCursor(2, 1);
lcd.print("pingPong");
int index;
int delayTime = 200;
for(index = 0; index <= 7; index = ++index)
{
digitalWrite(ledPins[index], HIGH);
delay(delayTime);
digitalWrite(ledPins[index], LOW); }
for(index = 7; index >= 0; index = --index)
{
digitalWrite(ledPins[index], HIGH);
delay(delayTime);
digitalWrite(ledPins[index], LOW); }
}
void marquee()
{
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Mode 4");
lcd.setCursor(2, 1);
lcd.print("marquee");
int index;
int delayTime = 200;
for(index = 0; index <= 3; index++)
{
digitalWrite(ledPins[index], HIGH);
digitalWrite(ledPins[index+4], HIGH);
delay(delayTime);
digitalWrite(ledPins[index], LOW);
digitalWrite(ledPins[index+4], LOW); }
}
void randomLED()
{
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Mode 5");
lcd.setCursor(2, 1);
lcd.print("randomLED");
int index;
int delayTime;
index = random(8);
delayTime = 200;
digitalWrite(ledPins[index], HIGH);
delay(delayTime);
digitalWrite(ledPins[index], LOW); }