2 кнопки и отдельная функция

shiyri
Offline
Зарегистрирован: 20.08.2019

Добрый день, подскажите где ошибка, ПОжалста:

 

 

int analiz;
int analiz2;
int analiz1;
int alco = 0;
int norm = 0;
#define alco 9
#define norm 8

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
pinMode(alco, INPUT);
pinMode(norm, INPUT);
}

void loop() {
alko(analiz);
Serial.print(analiz);
delay(100);
}

void alko(int analiz){
      int i = 0;
      while (i <20){
          int analiz2 = digitalRead(alco);
          int analiz1 = digitalRead(norm);    
          if (analiz2 == HIGH) {
              analiz = 3; 
              break;   
          }
          else if (analiz1 == HIGH){
              analiz = 2; 
              break; }
          else {
            analiz = 9;  
          }                
      delay(500);
      i = i +1;}
      return analiz;
}

При нажании кнопки на пин 8 одно значение при нажатии на 9 другое, если ничего не было то инное.

а в итоге если не нажимаю то 0, если нажимаю на любую тоже 0.

Спасибо!

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

строка 39, это для начала.

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

Строка 39 не совместима со строкой 22 - компилятор не ругается? - Если процедура описана как void - значит она ничего возвращать не может и return в строке 39 бесполезен.

А потом еще обратите внимание на строку 17 - вы даже не пытаетесь что-то получить от вашей процедуры

shiyri
Offline
Зарегистрирован: 20.08.2019
int analiz;
int analiz2;
int analiz1;
#define alco 9
#define norm 8

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
pinMode(alco, INPUT);
pinMode(norm, INPUT);
}

void loop() {
int result = alko(analiz);
Serial.print(result);
delay(100);
}

byte alko(int analiz){
      int i = 0;
      while (i <20){
          int analiz2 = digitalRead(alco);
          int analiz1 = digitalRead(norm);    
          if (analiz2 == HIGH) {
              analiz = 3; 
              break;   
          }
          else if (analiz1 == HIGH){
              analiz = 2; 
              break; }
          else {
            analiz = 9;  
          }                
      delay(500);
      i = i +1;}
      return analiz;
}

Вот так заработало спасибо!!!!

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

shiyri пишет:

Вот так заработало спасибо!!!!

чему вы радуетесь, ваш код это мина замедленного действия или обезьяна с гранатой, как вам угодно.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Защем возвращать/полущать, нащальника. Всё и так работает, потомущто глобал.