NSWI170, 2026, Labs 02
Jáchym Bártík
abs
if (temperature < 0) {
printChars(' ', indentation - abs(temperature));
...
}
for (int i = 0; i < 4; i++)
digitalWrite(13 - i, LOW);
for (int i = 0; i < LEDS_SIZE; i++)
digitalWrite(LEDS[i], ON);
// funshield.h
constexpr int ON = LOW;
constexpr int LED1_PIN = 13;
// solution.ino
#include <funshield.h>
constexpr int[] LEDS = { LED1_PIN, LED2_PIN, LED3_PIN, LED4_PIN };
constexpr int LEDS_SIZE = sizeof(LEDS) / sizeof(LEDS[0]);
UPPER_CASE)constexpr před const
constexpr int[] LEDS = { LED1_PIN, LED2_PIN, LED3_PIN, LED4_PIN };
constexpr int LEDS_SIZE = sizeof(LEDS) / sizeof(LEDS[0]);
0, 1, true, false, "", ...setup - volá se právě jednou na začátku programuloop - volá se stále dokola (řádově 1000 krát za sekundu)
#include <funshield.h>
void setup() {
pinMode(LED1_PIN, OUTPUT); // Declare given pin as output
digitalWrite(LED1_PIN, ON); // Set voltage on the pin
}
void loop() {
}
ON a OFF mohou být prohozeny, kdyžtak si to opravtedelay(int milliseconds) umožňuje aktivní (blokující) čekání
constexpr int PERIOD = 100; // In milliseconds
void loop() {
// Do something
delay(PERIOD); // Wait
// Do something else ...
}
delay
unsigned long millis() vrací počet milisekund od něčeho
(zapnutí napájení? restart?)
unsigned long lastTime;
unsigned long timer;
void setup() {
lastTime = millis();
timer = 0;
}
void loop() {
unsigned long currentTime = millis(); // Time since start
unsigned long deltaTime = currentTime - lastTime; // Time since last loop
lastTime = currentTime;
timer += deltaTime; // Resetable timer
}
delay by to prakticky nebylo možné