2 кнопки и отдельная функция
- Войдите на сайт для отправки комментариев
Ср, 20/11/2019 - 15:23
Добрый день, подскажите где ошибка, ПОжалста:
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.
Спасибо!
строка 39, это для начала.
Строка 39 не совместима со строкой 22 - компилятор не ругается? - Если процедура описана как void - значит она ничего возвращать не может и return в строке 39 бесполезен.
А потом еще обратите внимание на строку 17 - вы даже не пытаетесь что-то получить от вашей процедуры
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; }Вот так заработало спасибо!!!!
Вот так заработало спасибо!!!!
чему вы радуетесь, ваш код это мина замедленного действия или обезьяна с гранатой, как вам угодно.
Защем возвращать/полущать, нащальника. Всё и так работает, потомущто глобал.