From 9444a2fe40a32afd99de9d400f98f75463fbcd70 Mon Sep 17 00:00:00 2001 From: Alexander Popov Date: Fri, 24 Feb 2023 20:57:09 +0300 Subject: [PATCH] read time led blink from serial --- .../serial-read-blink/serial-read-blink.ino | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Difficulty 01/serial-read-blink/serial-read-blink.ino diff --git a/Difficulty 01/serial-read-blink/serial-read-blink.ino b/Difficulty 01/serial-read-blink/serial-read-blink.ino new file mode 100644 index 0000000..2e83edf --- /dev/null +++ b/Difficulty 01/serial-read-blink/serial-read-blink.ino @@ -0,0 +1,41 @@ +/* + Blink BUILTIN LED example + + Author: Alexander Popov + License: Unlicense +*/ + +int user_input; +int delay_time = 1000; +bool led_state = HIGH; +unsigned long timer = 0; + +void setup() { + pinMode(LED_BUILTIN, OUTPUT); + Serial.begin(9600); +} + +void loop() { + // read blink delay + if (Serial.available()) { + user_input = Serial.parseInt(); + if (user_input >= 100) { + delay_time = user_input; + + Serial.print("Delay set to "); + Serial.print(user_input); + Serial.println(" ms"); + } + else if (user_input > 0 && user_input < 100) { + Serial.println("Error: set delay time >=100ms"); + } + } + + // blink LED + if (millis() - timer > delay_time) { + led_state =! led_state; + digitalWrite(LED_BUILTIN, led_state); + + timer = millis(); + } +}