Добрый всем!
Как-то в том году сыну переделал китайский новогодний домик (ночник) с подсветкой собирал на к561ие8.
в этом году доча захотела. вот решил замахнутся на adruino nano. а так как я не занимался этим просьба помочь.
что у меня есть 10 светодиодов. (pin D3,D4,D5,D6.D7.D8.D9.D10,D11,D12) 1 кнопка сенсорная TTP223 (pin D2)
задача. каждый раз при нажатии кнопки переключались режимы.
1.нажал загорелся D3, нажал загорелся D4, D3 погас. и.т.д. (можно плавно)
2.режим плавного бегущего огня. ну тут надо еще как то добавить PWM на pin D4,D7,D8,D12.
3.режим можно добавить любой, если есть возможность=)
Вот что у меня получилось.
ну возникла беда после regim == 11 кнопка не работает не выходит в другой режим. и после reset яркость светодиодов на regim == 1 не восстанавливается.
Как-то в том году сыну переделал китайский новогодний домик (ночник) с подсветкой собирал на к561ие8.
в этом году доча захотела. вот решил замахнутся на adruino nano. а так как я не занимался этим просьба помочь.
что у меня есть 10 светодиодов. (pin D3,D4,D5,D6.D7.D8.D9.D10,D11,D12) 1 кнопка сенсорная TTP223 (pin D2)
задача. каждый раз при нажатии кнопки переключались режимы.
1.нажал загорелся D3, нажал загорелся D4, D3 погас. и.т.д. (можно плавно)
2.режим плавного бегущего огня. ну тут надо еще как то добавить PWM на pin D4,D7,D8,D12.
3.режим можно добавить любой, если есть возможность=)
Вот что у меня получилось.
led 10:
int ButPin = 2;
int flag = 0;
int regim = 0;
int A_LedPin = 3;
int A;
int B_LedPin = 4;
int B;
int C_LedPin = 5;
int C;
int D_LedPin = 6;
int D;
int E_LedPin = 7;
int E;
int F_LedPin = 8;
int F;
int G_LedPin = 9;
int G;
int H_LedPin = 10;
int H;
int I_LedPin = 11;
int I;
int J_LedPin = 12;
int J;
int value = 0;
void setup() {
;
}
void loop() {
if (digitalRead(ButPin) == HIGH && flag == 0) {
regim++;
flag = 1;
if (regim > 11) {
regim = 0;
}
}
if (digitalRead(ButPin) == LOW && flag == 1)
flag = 0;
{
digitalWrite(A_LedPin, LOW);
digitalWrite(B_LedPin, LOW);
digitalWrite(C_LedPin, LOW);
digitalWrite(D_LedPin, LOW);
digitalWrite(E_LedPin, LOW);
digitalWrite(F_LedPin, LOW);
digitalWrite(G_LedPin, LOW);
digitalWrite(H_LedPin, LOW);
digitalWrite(I_LedPin, LOW);
digitalWrite(J_LedPin, LOW);
}
if (regim == 1) {
digitalWrite(A_LedPin, HIGH);
digitalWrite(B_LedPin, LOW);
}
if (regim == 2) {
digitalWrite(B_LedPin, HIGH);
digitalWrite(A_LedPin, LOW);
}
if (regim == 3) {
digitalWrite(C_LedPin, HIGH);
digitalWrite(B_LedPin, LOW);
}
if (regim == 4) {
digitalWrite(D_LedPin, HIGH);
digitalWrite(C_LedPin, LOW);
}
if (regim == 5) {
digitalWrite(E_LedPin, HIGH);
digitalWrite(D_LedPin, LOW);
}
if (regim == 6) {
digitalWrite(F_LedPin, HIGH);
digitalWrite(E_LedPin, LOW);
}
if (regim == 7) {
digitalWrite(G_LedPin, HIGH);
digitalWrite(F_LedPin, LOW);
}
if (regim == 8) {
digitalWrite(H_LedPin, HIGH);
digitalWrite(G_LedPin, LOW);
}
if (regim == 9) {
digitalWrite(I_LedPin, HIGH);
digitalWrite(H_LedPin, LOW);
}
if (regim == 10) {
digitalWrite(J_LedPin, HIGH);
digitalWrite(I_LedPin, LOW);
}
if (regim == 11) {
A = 0;
B = 0;
C = 0;
D = 0;
E = 0;
F = 0;
G = 0;
H = 0;
I = 0;
J = 0;
for (A = 0; A <= 255; A++)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (A = 255; A >= 0; A--)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (A = 0; B <= 255; B++)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (B = 255; B >= 0; B--)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (B = 0; C <= 255; C++)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (C = 255; C >= 0; C--)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (C = 0; D <= 255; D++)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (D = 255; D >= 0; D--)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (D = 0; E <= 255; E++)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (E = 255; E >= 0; E--)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (F = 0; F <= 255; F++)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (F = 255; F >= 0; F--)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (F = 0; G <= 255; G++)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (G = 255; G >= 0; G--)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (G = 0; H <= 255; H++)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (H = 255; H >= 0; H--)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (H = 0; I <= 255; I++)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (I = 255; I >= 0; I--)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (I = 0; J <= 255; J++)
setRGB(A, B, C, D, E, F, G, H, I, J);
for (J = 255; J >= 0; J--)
setRGB(A, B, C, D, E, F, G, H, I, J);
}
}
void setRGB(int A, int B, int C, int D, int E, int F, int G, int H, int I, int J) {
analogWrite(A_LedPin, A);
analogWrite(B_LedPin, B);
analogWrite(C_LedPin, C);
analogWrite(D_LedPin, D);
analogWrite(E_LedPin, E);
analogWrite(F_LedPin, F);
analogWrite(G_LedPin, G);
analogWrite(H_LedPin, H);
analogWrite(I_LedPin, I);
analogWrite(J_LedPin, J);
delay(10);
}