Помочь в написании, подтолкнуть на мысль

Alekseiii
Offline
Зарегистрирован: 25.04.2021
01<span style="font-size:12px;">Нужно сделать так , что, если все три кнопки не нажаты горит красный светодиод. Нажимаю вторую кнопку должен гореть только желтый. Все остальные комбинации - горит зеленый. (Используя приложенный скетч)</span>
02int switchPin1 = 8;
03int switchPin2 = 7;
04int switchPin3 = 6;
05 
06int ledPin1 = 13;
07int ledPin2 = 12;
08int ledPin3 = 11;
09 
10boolean lastButton1 = LOW;
11boolean lastButton2 = LOW;
12boolean lastButton3 = LOW;
13 
14boolean currentButton1 = LOW;
15boolean currentButton2= LOW;
16boolean currentButton3 = LOW;
17 
18boolean ledOn1 = false;
19boolean ledOn2 = false;
20boolean ledOn3 = false;
21 
22void setup()
23{
24  pinMode(switchPin1, INPUT);
25  pinMode(switchPin2, INPUT);
26  pinMode(switchPin3, INPUT);
27  pinMode(ledPin1, OUTPUT);
28  pinMode(ledPin2, OUTPUT);
29  pinMode(ledPin3, OUTPUT);
30}
31boolean debounce1 (boolean last)
32{
33  boolean current1 = digitalRead(switchPin1);
34  if (last != current1)
35  {
36    delay(5);
37    current1 = digitalRead(switchPin1);
38  }
39  return current1;
40}
41boolean debounce2 (boolean last2)
42{
43  boolean current2 = digitalRead(switchPin2);
44  if (last2 != current2)
45  {
46    delay(5);
47    current2 = digitalRead(switchPin2);
48  }
49  return current2;
50}
51boolean debounce3 (boolean last3)
52{
53  boolean current3 = digitalRead(switchPin3);
54  if (last3 != current3)
55  {
56    delay(5);
57    current3 = digitalRead(switchPin3);
58  }
59  return current3;
60}
61 
62void loop()
63{
64  currentButton1 = debounce1(lastButton1);
65  currentButton2 = debounce2(lastButton2);
66  currentButton3 = debounce3(lastButton3);
67if (lastButton1 == LOW && currentButton1 == HIGH)
68 {
69  ledOn1 = !ledOn1;
70 }
71 lastButton1 = currentButton1;
72 
73if (lastButton2 == LOW && currentButton2 == HIGH)
74 {
75  ledOn2 = !ledOn2;
76 }
77lastButton2 = currentButton2;
78if (lastButton3 == LOW && currentButton3 == HIGH)
79 {
80  ledOn3 = !ledOn3;
81 }
82   lastButton3 = currentButton3;
83 
84  digitalWrite(ledPin1, ledOn1);
85 
86 
87  digitalWrite(ledPin2, ledOn2);
88 
89 
90  digitalWrite(ledPin3, ledOn3);
91 
92}

 

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020
1если ((первая кнопка не нажата) и (вторая кнопка не нажата) и (третья кнопка не нажата))
2  {включить красный, остальные выключить}
3иначе если ((вторая кнопка нажата) и (первая кнопка не нажата) и (третья кнопка не нажата))
4  {включить желтый, остальные выключить}
5иначе
6  {включить зеленый, остальные выключить}

 

b707
Offline
Зарегистрирован: 26.05.2017

Откуда они все тащят эту функцию дебонсе? У Гайвера подглядели?

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

b707 пишет:
Откуда они все тащят эту функцию дебонсе? У Гайвера подглядели?

Да ею весь гугл пестрит

Alekseiii
Offline
Зарегистрирован: 25.04.2021

Спасибо большое за ответ, но как реализовать это в рамках данной программы, куда вставлять ( понятно что в цикл loop)? Я просто второй день всего за ардуино и совсем не силен. P.S. дебанус у джереми блюма подсмотрел 

Kakmyc
Offline
Зарегистрирован: 15.01.2018
Alekseiii
Offline
Зарегистрирован: 25.04.2021

Дешевле и проще не разобраться )

Kakmyc
Offline
Зарегистрирован: 15.01.2018

Alekseiii пишет:

Дешевле и проще не разобраться )

Самостоятельно вообще бесплатно

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Alekseiii пишет:

Спасибо большое за ответ, но как реализовать это в рамках данной программы, куда вставлять ( понятно что в цикл loop)? Я просто второй день всего за ардуино и совсем не силен. P.S. дебанус у джереми блюма подсмотрел 

Была просьба подтолкнуть - я подтолкнул ))

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Alekseiii пишет:

Дешевле и проще не разобраться )

Могу помочь. И доплачу. 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Бармалей -толкач :)))

Alekseiii
Offline
Зарегистрирован: 25.04.2021

Помощь это дело бравое

andyparker
Offline
Зарегистрирован: 20.12.2020