//BLOCKING
// 1. MAKE PIN HIGH AND LOW
/*
const int led_pin = 9;
#define LED_PIN = 9;
cannot be changed
void setup()
{
pinMode(led_pin, OUTPUT);
}
void loop()
{
digitalWrite(led_pin, HIGH);
delay(1000);
digitalWrite(led_pin, LOW);
delay(1000);
}
// 2. USING FOR LOOP
const int led_pin = 9;
const int blink_times = 3;
const int blink_delay = 1000;
int repeats = 0;
void setup()
{
pinMode(led_pin, OUTPUT);
blink_led(blink_times, blink_delay);
}
void loop()
{
}
void blink_led(int blink_times, int blink_delay)
{
for (repeats; repeats < blink_times; repeats++)
{
digitalWrite(led_pin, HIGH);
delay(blink_delay);
digitalWrite(led_pin, LOW);
delay(blink_delay);
}
}
// 2. READ PIN STATE AND WRITE THE OPPOSITE
const int led_pin = 9;
byte led_pin_state = 0;
good practice to initialise a varible with zero
better use byte
byte can store maximum value of 255 or 8 bits
int can store maximun value of 32000 32 bits or 4 bytes
void setup()
{
pinMode(led_pin, OUTPUT);
}
void loop()
{
digitalWrite(led_pin, !digitalRead(led_pin));
delay(1000);
}
//NON BLOCKING
// 3. USING DIVISON REMINDER TO SET PIN STATE
const int led_pin = 9;
byte led_pin_state = 0;
int blink_delay = 1000;
//if you plant to change it in the code use a variable
void setup()
{
pinMode(led_pin, OUTPUT);
}
void loop()
{
led_pin_state = (millis() / (blink_delay / 2)) % 2;
digitalWrite(led_pin, led_pin_state);
Serial.println(led_pin_state);
}
*/
#define LED 13 // Defining an LED variable as 13 because our LED is connected to pin 13
unsigned long previousMillis; // variable for comparing millis counter
bool ledState = false; // will determine current led state
void setup() {
pinMode(LED, OUTPUT); // Set LED pin as OUTPUT
}
void loop() {
if (millis() - previousMillis >= 1000) // check that 1000ms is pass
{
if (ledState == false) { // check the leddState and toggle it.
ledState = true;
}
else {
ledState = false;
}
digitalWrite(LED, ledState); // Set LED state to ledState
previousMillis = millis(); // set previousMillis to current millis
}
}
const int led_pin = 9;
const int blink_times = 3;
const int blink_delay = 1000;
int repeats = 0;
void setup()
{
pinMode(led_pin, OUTPUT);
blink_led(blink_times, blink_delay);
}
void loop()
{
}
void blink_led(int blink_times, int blink_delay)
{
for (repeats; repeats < blink_times; repeats++)
{
digitalWrite(led_pin, HIGH);
delay(blink_delay);
digitalWrite(led_pin, LOW);
delay(blink_delay);
}
}