#1 2016-06-08 05:44:24

Andr
Учасник
Зареєстрований: 2016-06-08
Повідомлень: 7

Не работает &&

Регулятор температуеы должен работать только в автоматическом режиме т.е. когда на входе pin 10 HIGH

#define avtPin  10
........

void setup() {
  pinMode( avtPin, INPUT);
......}
..............

boolean oupen = (tempSensor[0] > tempOUTon[0]);
  boolean avtomat = avtPin ;
  if
   ( avtomat  && oupen   )
     digitalWrite(OUT[0], HIGH);
...........

Не работает логическое выражение && Пробовал разные варианты
т.е. выполняется запись  digitalWrite(OUT[0], HIGH);  не взирая на значение  avtomat
В чем проблема.

Неактивний

#2 2016-06-08 09:03:03

Green
Учасник
Зареєстрований: 2015-11-08
Повідомлень: 593

Re: Не работает &&

Нужно avtomat заменить на pistolet. Тогда будет стрелять как из пистолета, но только после digitalRead.

Неактивний

#3 2016-06-08 18:30:49

turbo
Учасник
Зареєстрований: 2016-05-13
Повідомлень: 5

Re: Не работает &&

по коду
avtPin =10
пропущено в коде чтение состояния порта.
автомату надо присваивать результат функции а не номер пина. DigitalRead подойдет roll

Неактивний

#4 2016-06-08 20:14:45

dongan
Учасник
Зареєстрований: 2016-04-04
Повідомлень: 13

Re: Не работает &&

#define avtPin  10
...

boolean avtomat = avtPin ;
...

есть у меня подозрение что тут пытаются присвоить логической переменной целочисленное значение...

Неактивний

#5 2016-06-09 09:43:26

NoName
Customer
З Київ
Зареєстрований: 2014-07-08
Повідомлень: 1,446

Re: Не работает &&

to All,  Green ведь все правильно расписал

define avtPin  10
........
void setup() {
  pinMode( avtPin, INPUT);
......}
..............
boolean oupen = (tempSensor[0] > tempOUTon[0]);
int avtomat = digitalRead(avtPin );
boolean pistolet;
if ( avtomat > 0 )
pistolet = true;
else
pistolet = false;
 
if  ( (pistolet == true)  && ( oupen == true )   )
     digitalWrite(OUT[0], HIGH);

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму