//belajar millis 2
uint32_t prevMillis;
int tick;
bool cFlag;
bool nilaiTb;
int pin0=7; int pin1=8; int pin2=9;
int tb = 10; int ledSaya = 13;
void setup() {
pinMode(tb, INPUT);
pinMode (pin0, OUTPUT); pinMode (pin1, OUTPUT); pinMode (pin2, OUTPUT);
pinMode(ledSaya, OUTPUT);
Serial.begin(9600); Serial.println();
}
void tickSeconds() {
if (millis()-prevMillis>100) {
prevMillis=millis();
Serial.println("tick:"+String(tick));
cFlag = true;
tick++;
}
}
void ledControl (int _start, int _and, int _reset, int _pin, int _state, String _name) {
static int _tick=0;
if(_tick == _start) {
digitalWrite(_pin,_state);
Serial.println(_name + " : ON");
}
if(_tick == _and) {
digitalWrite(_pin,!_state);
Serial.println(_name + " : 0FF");
}
if(_tick == _reset) {
_tick = -1;
Serial.println("reset");
}
_tick++;
}
void loop() {
tickSeconds();
if(cFlag) {
ledControl(1, 2, 30, pin0, 2, "led0");
ledControl(1, 2, 30, pin1, 2, "led0");
ledControl(1, 2, 30, pin2, 2, "led0");
//Serial.println("hanya diexskusi tiap detik");
cFlag=false;
}
nilaiTb=digitalRead(tb);
if (nilaiTb == HIGH)
{
digitalWrite(ledSaya, HIGH); //maka ‘ledSaya’ menyala
}
else
{
digitalWrite(ledSaya, LOW); //apabila tidak ada, maka ‘ledSaya’ mati
}
}