// https://forum.arduino.cc/t/need-code-for-leds-and-relays-control/1206347/
// ATtiny85
#define signalPin PB0 // pin >> resistor >> ground - tie low with external pull-down resistor
#define buttonPin PB1 // pin >> button >> ground - tie high with internal pullup resistor
#define ledPin1 PB2 // ATtiny85
#define ledPin2 PB5 // ATtiny85
#define ledPin3 PB3 // ATtiny85
#define ledPin4 PB4 // ATtiny85
// ATMega8
// #define signalPin PB2 // pin >> resistor >> ground - tie low with external pull-down resistor
// #define buttonPin PD2 // pin >> button >> ground - tie high with internal pullup resistor
// #define ledPin1 PD5 // ATmega8
// #define ledPin2 PD6 // ATmega8
// #define ledPin3 PD7 // ATmega8
// #define ledPin4 PB0 // ATmega8
// #define ledPin5 PB1 // ATmega8
bool flag = 0; // button was pressed
void setup() {
pinMode(signalPin, INPUT); // waiting for HIGH, tie this LOW with pulldown
pinMode(buttonPin, INPUT_PULLUP); // tied HIGH when not pressed, waiting for LOW during press
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
// pinMode(ledPin5, OUTPUT); // not ATtiny85
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
// digitalWrite(ledPin5, LOW); // not ATtiny85
}
void loop() {
if (digitalRead(signalPin) && digitalRead(buttonPin) && !flag) { // signal pin HIGH *and* button pin HIGH (not pressed)
digitalWrite(ledPin1, HIGH); // set LED anode pins
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
// digitalWrite(ledPin5, HIGH); // not ATtiny85
}
if (!digitalRead(buttonPin)) {
flag = 1;
digitalWrite(ledPin1, LOW); // reset LED anode pins
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
// digitalWrite(ledPin5, LOW); // not ATtiny85
}
if (!digitalRead(signalPin)) { // set the LEDs
while (!digitalRead(signalPin)) {}
flag = 0; // signal button was not pressed
}
}SIGNAL ON
RESET SIGNAL
LEDs OFF