////////////////////////////////////////// #include "funshield.h" constexpr int leds[] = { led1_pin, led2_pin, led3_pin, led4_pin }; constexpr int ledCount = sizeof(leds) / sizeof(leds[0]); constexpr int buttons[] = { button1_pin, button2_pin, button3_pin }; constexpr int buttonCount = sizeof(buttons) / sizeof(buttons[0]); void setup() { // put your setup code here, to run once: for (int led : leds) { pinMode(led, OUTPUT); digitalWrite(led, OFF); } for (int button : buttons) { pinMode(button, INPUT); } } void loop() { // put your main code here, to run repeatedly: for (int i =0; i< buttonCount; i++){ bool pressed = !digitalRead(buttons[i]); digitalWrite(leds[i], pressed ? ON : OFF); } } ////////////////////////////////////////// #include "funshield.h" constexpr int leds[] = { led1_pin, led2_pin, led3_pin, led4_pin }; constexpr int ledCount = sizeof(leds) / sizeof(leds[0]); constexpr int buttons[] = { button1_pin, button2_pin, button3_pin }; constexpr int buttonCount = sizeof(buttons) / sizeof(buttons[0]); void setup() { // put your setup code here, to run once: for (auto led : leds) { pinMode(led, OUTPUT); digitalWrite(led, OFF); } for (auto button : buttons) { pinMode(button, INPUT); } } enum LedState {PRESSED, RELEASED}; class LedSwitcher { public: LedSwitcher(int pin) { pin_ = pin; } void switchOnOff(bool button_pressed) { if (button_pressed == false) { prev_state_ = RELEASED; return; } if (prev_state_ == PRESSED && button_pressed) return; prev_state_ = PRESSED; is_on_ = !is_on_; digitalWrite(pin_, is_on_ ? ON : OFF); } private: bool is_on_ = false; LedState prev_state_ = RELEASED; int pin_; }; LedSwitcher switchers[] { LedSwitcher(led1_pin), LedSwitcher(led2_pin), LedSwitcher(led3_pin) }; void loop() { // put your main code here, to run repeatedly: for (int i = 0; i < buttonCount; i++) { bool pressed = !digitalRead(buttons[i]); switchers[i].switchOnOff(pressed); } } //////////////REFERENCE///////////////// #include class X { public: void zdvihniCitac(int& citac) // <<<<< aha ampersand { citac++; } }; int main() { X object; int citac = 4; object.zdvihniCitac(citac); std::cout << citac << std::endl; // citac sa zdvihne len ked je pri parametri metody & !!! }