Не могу понять что я написал!

qwerty1996
Offline
Зарегистрирован: 12.12.2019

Здравствуйте. Химичил с аналоговыми кнопками и вот что нахимичил(Ардуино при этом ни как не реагирует ни на кнопки ни на пресутствие реле!):
 

#define PIN_RELAYONE 3
#define PIN_RELAYTWO 4 
#define PIN_RELAYTREE 5 
#define PIN_RELAYFOR 6 

#define PIN_DIODONE 7
#define PIN_DIODTWO 8
#define PIN_DIODTREE 9
#define PIN_DIODFOR 10 
#define PIN_DIODFIVE 11
#define PIN_DIODSIX 12

int count_1 = 0;        
int button_old_1 = 1;    
 int count_2 = 0;        
 int button_old_2 = 1;    
  int count_3 = 0;        
  int button_old_3 = 1;   
   int count_4 = 0;        
   int button_old_4 = 1;   

int state_1 = 0;
 int state_2 = 0;
  int state_3 = 0;   
void setup() {
  Serial.begin(9600);
  
  pinMode(PIN_RELAYONE, OUTPUT); 
   pinMode(PIN_RELAYTWO, OUTPUT); 
    pinMode(PIN_RELAYTREE, OUTPUT);
     pinMode(PIN_RELAYFOR, OUTPUT);
     
  digitalWrite(PIN_RELAYONE, HIGH);
    digitalWrite(PIN_RELAYTWO, HIGH);
      digitalWrite(PIN_RELAYTREE, HIGH);
        digitalWrite(PIN_RELAYFOR, HIGH);

  digitalWrite(PIN_DIODONE, LOW);
    digitalWrite(PIN_DIODTWO, LOW);
      digitalWrite(PIN_DIODTREE, LOW);
        digitalWrite(PIN_DIODFOR, LOW);
         digitalWrite(PIN_DIODFIVE, LOW);
           digitalWrite(PIN_DIODSIX, LOW);
     int analogread = 1000;
}
void loop() {
  if ((analogRead(A1) < 300)&&(button_old_1==1))
  { 
    count_1 = count_1 + 1;
    if (count_1 == 1)
    {  digitalWrite(PIN_DIODONE, HIGH);
       digitalWrite(PIN_RELAYONE, LOW);
        digitalWrite(PIN_RELAYTWO, LOW);
            digitalWrite(PIN_RELAYTREE, LOW);
            delay(2500);
            digitalWrite(PIN_RELAYTREE, HIGH);
            delay(2500);
            digitalWrite(PIN_RELAYTREE, LOW);
        state_1 = 1;
        state_2 = 1;
    }
    if (count_1 == 2)
    {
      digitalWrite(PIN_RELAYONE, HIGH);
       digitalWrite(PIN_RELAYTREE, HIGH);
      count_1 = 0;
      state_1 = 0;
      digitalWrite(PIN_DIODONE, LOW);
    }
  }
  button_old_1 = 1; 
  delay(10);
  

   if ((analogRead(A2) < 300)&&(button_old_2==1))
  { 
    count_2 = count_2 + 1;
    if (count_2 == 1)
    {
      if (state_2 == 0)
      {
      digitalWrite(PIN_RELAYTWO, LOW);
      state_2 = 1;
      digitalWrite(PIN_DIODTWO, HIGH);
      }
      else if(state_2 == 1)
      {
        digitalWrite(PIN_RELAYTWO, HIGH);
        state_2 = 0;
        digitalWrite(PIN_DIODTWO, LOW);
      }
    }
    if (count_2 == 2)
    {
      if (state_2 == 0)
      {
      digitalWrite(PIN_RELAYTWO, LOW);
      state_2 = 1;
      digitalWrite(PIN_DIODTWO, HIGH);
      }
      else if(state_2 == 1)
      {
        digitalWrite(PIN_RELAYTWO, HIGH);
        state_2 = 0;
        digitalWrite(PIN_DIODTWO, LOW);
      }
      count_2 = 0;
    }
  }
  button_old_2 = 1; 
  delay(10);
  
    if ((analogRead(A3) < 300)&&(button_old_3==1))
  { 
    count_3 = count_3 + 1;
 if (state_3 <= 4 && state_1 == 1)
 {
state_3 = state_3 + 1;
 count_3 = 0;
 }
 else if (state_3 >= 4 && state_1 == 1)
 {
  state_3 = 4;
  count_3 = 0;
 }
 else 
 {
  state_3 = 0;
 }
  }
  button_old_3 = 1;
  delay(10);
  
    if ((analogRead(A4) < 300)&&(button_old_4==1))
  { 
    count_4 = count_4 + 1;
    if (state_3 > 0 && state_1 == 1)
    {
      state_3 = state_3 - 1;
       count_4 = 0;
    }
    else if (state_3 < 0 && state_1 == 1)
    {
      state_3 = 0;
       count_4 = 0;
    }
    else
    {
      state_3 = 0;
    }
  }
  button_old_4 = 1; 
  delay(10);

  if (state_3 == 1)
  {
    digitalWrite(PIN_DIODTREE, HIGH);
    digitalWrite(PIN_DIODFOR, LOW);
    digitalWrite(PIN_DIODFIVE, LOW);
    digitalWrite(PIN_DIODSIX, LOW);
    digitalWrite(PIN_RELAYTREE, LOW);
    delay(2500);
    digitalWrite(PIN_RELAYTREE, HIGH);
    delay(2500);
    digitalWrite(PIN_RELAYTREE, LOW);
    
  }
  else if (state_3 == 2)
  {
    digitalWrite(PIN_DIODTREE, HIGH);
    digitalWrite(PIN_DIODFOR, HIGH);
    digitalWrite(PIN_DIODFIVE, LOW);
    digitalWrite(PIN_DIODSIX, LOW);
  digitalWrite(PIN_RELAYTREE, LOW);
    delay(5000);
    digitalWrite(PIN_RELAYTREE, HIGH);
    delay(2500);
    digitalWrite(PIN_RELAYTREE, LOW);
}
else if (state_3 == 3)
{
    digitalWrite(PIN_DIODTREE, HIGH);
    digitalWrite(PIN_DIODFOR, HIGH);
    digitalWrite(PIN_DIODFIVE, HIGH);
    digitalWrite(PIN_DIODSIX, LOW);
     digitalWrite(PIN_RELAYTREE, LOW);
    delay(7000);
    digitalWrite(PIN_RELAYTREE, HIGH);
    delay(2500);
    digitalWrite(PIN_RELAYTREE, LOW);
}
else if (state_3 == 4)
{
  digitalWrite(PIN_DIODTREE, HIGH);
  digitalWrite(PIN_DIODFOR, HIGH);
  digitalWrite(PIN_DIODFIVE, HIGH);
  digitalWrite(PIN_DIODSIX, HIGH);
  digitalWrite(PIN_RELAYTREE, LOW);
}
else if (state_3 == 0)
{
  digitalWrite(PIN_RELAYTREE, HIGH);
  digitalWrite(PIN_DIODFOR, LOW);
  digitalWrite(PIN_DIODFIVE, LOW);
  digitalWrite(PIN_DIODSIX, LOW);
  digitalWrite(PIN_DIODTREE, LOW);
}

if (state_1 == 0)
{
   digitalWrite(PIN_RELAYTREE, HIGH);
}
}

 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Да-с, херню-с Вы, батенька, какую то написали. И даже без комментариев. Совсем херня-с. 

Может нормальным языком (русским) расскажете, а чего хотели-то?

Mestniy96
Offline
Зарегистрирован: 31.08.2015

Видимо что то связанное с подсчетом нажатий. Но по моему ну грамотно использована функция подсчета. Не совсем пойму например к чему там int analogread? Опиши подробнее пж..

qwerty1996
Offline
Зарегистрирован: 12.12.2019

Кнопки подключены к а налоговым входам. Хочу иметь подсчет количества нажатии. И в связи с этим управлять реле и светодиодами.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

qwerty1996 пишет:
Кнопки подключены к а налоговым входам. Хочу иметь подсчет количества нажатии. И в связи с этим управлять реле и светодиодами.

В принципе, плевать куда полключены, важен алгоритм. Вы его четко себе представляете? Типа:

Я нажал на кнопку А

Счетчик увеличился на 1

Если счетчик превысил 7, то счетчик равен 1

.........

Если счетчик равен 1, то ....

Если счетчик равен 2, то ....

 

и т.д.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

на аналоговом пине нажатие тактовой кнопки надо фиксировать её отжатием (через флаги), вопрос если кнопка отжата, как фиксируете её отжатие? схему клавиатуры в студию