bool state = false;
int signal = HIGH;
int pinMas[3][3] {
{2, 4, 3},
{6, 7, 5},
{8, 10, 9}
};
class InvertS{
public:
int s;
int verh;
int niz;
InvertS(int p_s, int p_verh, int p_niz) {
s = p_s;
verh = p_verh;
niz = p_niz;
}
void update_s() {
if(millis() - time >= 100) {
time = millis();
if(s >= verh) {
invert = -1;
}
else if(s <= niz) {
invert = 1;
}
s += invert;
//Serial.println(s);
}
}
private:
int invert = 1;
unsigned long time = millis();
};
InvertS s1(255, 255, 0);
InvertS s2(0, 255, 0);
InvertS s3(0, 255, 0);
double s = 0;
int registers[3][4] = {
{125, 100, 50, 25},
{75, 125, 200, 50},
{200, 176, 20, 250}
};
InvertS power[3] = {s1, s2, s3};
int latchPin = 8;
//Пин подключен к SH_CP входу 74HC595
int clockPin = 12;
//Пин подключен к DS входу 74HC595
int dataPin = 11;
void setup() {
for(int i {0}; i < 3; i++) {
for(int j {0}; j < 3; j++) {
pinMode(pinMas[i][j], OUTPUT);
}
}
}
void loop() {
// отсчитываем от 0 до 255 и отображаем значение на светодиоде
active(0);
// active(1);
// active(2);
}
void active(int pin) {
s += 0.01;
//Serial.println(s);
// digitalWrite(pinMas[pin][0], LOW);
// for (int i = 0; i < 4; i++) {
// digitalWrite(pinMas[pin][1], LOW);
// analogWrite(pinMas[pin][2], 200);
// digitalWrite(pinMas[pin][1], HIGH);
// delay(2);
// }
// digitalWrite(pinMas[pin][0], HIGH);
//delay(50);
for (int i = 0; i < 4; i++) {
digitalWrite(pinMas[pin][0], LOW);
digitalWrite(pinMas[pin][1], LOW);
analogWrite(pinMas[pin][2], 200);
digitalWrite(pinMas[pin][1], HIGH);
digitalWrite(pinMas[pin][0], HIGH);
}
for (int i = 0; i < 4; i++) {
digitalWrite(pinMas[pin][0], LOW);
digitalWrite(pinMas[pin][1], LOW);
analogWrite(pinMas[pin][2], 1);
digitalWrite(pinMas[pin][1], HIGH);
digitalWrite(pinMas[pin][0], HIGH);
}
//delay(500);
// digitalWrite(pinMas[pin][0], LOW);
// digitalWrite(pinMas[pin][1], LOW);
// analogWrite(pinMas[pin][2], s);
// digitalWrite(pinMas[pin][1], HIGH);
//digitalWrite(pinMas[pin][0], HIGH);
if(s >= 255) {
s = 0;
}
}
void clearReg() {
// Reset all register pins
for (int i = 3; i >= 0; i--) {
registers[0][i] = 255;
}
}