Hi... i got stuck with my project.
in my code, i had case 1, 2, 3... each case had 3 different led, i wanna make that led blinking with millis, not delay.
i put code like this, but led won blink.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(6, 5); // RX, TX
const int hijau = 2;
const int kuning = 3;
const int merah = 4;
const int buzz1 = 8;
const int buzz2 = 7;
int kondisi;
int state;
int laststate;
//milis
int hijauState = LOW;
unsigned long previousMillis = 0;
const long interval = 50;
unsigned long currentMillis = millis();
void setup() {
Serial.begin(9600);
mySerial.begin(9900);
pinMode(hijau, OUTPUT);
pinMode(kuning, OUTPUT);
pinMode(merah, OUTPUT);
pinMode(buzz1, OUTPUT);
pinMode(buzz2, OUTPUT);
Serial.println("Kami Siap!!");
digitalWrite(buzz1,1);
digitalWrite(hijau,1);
digitalWrite(kuning,1);
digitalWrite(merah,1);
delay(1000);
digitalWrite(buzz1,0);
digitalWrite(hijau,0);
digitalWrite(kuning,0);
digitalWrite(merah,0);
}
void loop() {
if(mySerial.available() > 0){ // Checks whether data is comming from the serial port
kondisi = mySerial.read(); // Reads the data from the serial port
state = kondisi;
detachInterrupt(0);
switch (kondisi)
{case 1:
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
if (hijauState == LOW) {
hijauState = HIGH;
} else {
hijauState = LOW;
}
digitalWrite(hijau, hijauState);
}
// digitalWrite(hijau, HIGH);
digitalWrite(kuning, LOW);
digitalWrite(merah, LOW);
Serial.println("NORMAL");
break;
case 2:
digitalWrite(hijau, LOW);
digitalWrite(kuning, HIGH);
digitalWrite(merah, LOW);
digitalWrite(buzz1, HIGH);
tone(buzz1, 2000, 100);
Serial.println("SEDANG");
break;
case 3:
digitalWrite(merah, HIGH);
digitalWrite(kuning, LOW);
digitalWrite(hijau, LOW);
digitalWrite(buzz1, HIGH);
tone(buzz1, 5000, 50);
Serial.println("CEPAT");
break;
}
laststate = state;
}
}