Сколько val = digitalread() можно ввести в программу ардуино

У меня в программе 4 датчика управляют реле для отображения положения реле использую
int val = digitalRead(poliv);
if (val == LOW){
lcd.setCursor(15,0);
lcd.print(“P”);}
else if(val == LOW)
{
lcd.setCursor(15,0);
lcd.print(“p”);}
если 2 программы на любых датчиках все нормально как только добавляю третью программу выдает ошибку на int val = digitalRead(poliv);

одну, надо больше нумеруй их по разному

Еще бы программу увидеть, которая ошибку генерит и текст ошибки…

1 лайк

А чем

отличается от

???

1 лайк

:laughing:

Надо, как минимум, в школе начать учиться, а не в телефоне сидеть. Это не чат Областной Психиатрической.

1 лайк

Сколько val = digitalread() можно ввести в программу

Тебе - нисколько. Я запретил, до полного изучения спицальной литературы.

1 лайк

Это пишется короче - навсегда!

Блин, как же люблю подобных персонажей - написал бредятину в форум и сбежал. Как гранату в блиндаж кинул…

Мне больше напоминает “известный биоматериал на вентилятор”

Полностью изучает литературу. К вечеру объявится, не беспокойтесь

Ага… “я все это прочитал… так сколько digitalRead() можно ВВЕСТИ в код?”

Скажет, что проблему решил сам, вопреки нашей доброжелательной помощи.

2 лайка

прогнозы разделились :slight_smile:

Ну как в песенке: Жили у бабуси два веселых гуся, один белый, другой тоже белый, два веселых гуся.

1 лайк

пора делать ставки?

Ну, как же, всё по rлассике! Вот сравните (цитата по памяти, скорее всего не совсем точная, но смысл тот):

Вся Очередь изъявила желание добровольно поехать на Великую стройку Изма. Те же, кто не захотел ехать туда добровольно, поехали добровольно.

Разве не то же самое?

1 лайк

Два условия в if’ах эт праильна. Чипы щас китайские, мало ли. Надо всегда переспрашивать.
Кожаные вон чё, важные документы по 5 раз перечитывают медленно. А тут скорость очень большая, МК может и ошибиться.
Люди говорят что если наделать 100000 if’ов с одним условием, то МК это надоест и он таки согласится.

Да, не только это. Сама жизнь динамична и изменчива. Не зря же сказано:

«Отличительная особенность нашей жизни, сказал Заибан …, – это неудержимая динамика. Мы идём вперёд, намного опережая свой зад»

2 лайка

Не понятно что ТС нужно вообще и в чем проблема?
Можно же одну и туже задачу разными способами решить…

Способ 1:
/*
   МК использован - Attiny13A
*/

// Объявим пины более понятно:

#define   pinState1   PB0
#define   pinState2   PB1
#define   pinState3   PB2

#define   relePin1    PB3
#define   relePin2    PB4

void setup() {
  // Не знаю я что там за схема, поэтому так ))
  pinMode(pinState1, INPUT); 
  pinMode(pinState2, INPUT); 
  pinMode(pinState3, INPUT); 

  pinMode(relePin1, OUTPUT); 
  pinMode(relePin2, OUTPUT); 

  digitalWrite(relePin1, LOW);
  digitalWrite(relePin2, LOW);
}

void loop() {

  uint8_t val;
  val = digitalRead(pinState1);
  if (!val) {     // Это равносильно if (val == LOW)
    digitalWrite(relePin1, HIGH);
  }
  val = digitalRead(pinState2);
  if (!val) {     // Это равносильно if (val == LOW)
    digitalWrite(relePin2, HIGH);
  }
  val = digitalRead(pinState3);
  if (!val) {     // Это равносильно if (val == LOW)
    digitalWrite(relePin1, LOW);
    digitalWrite(relePin2, LOW);
  }
}

Скетч использует 54 байт (5%) памяти устройства. Всего доступно 1024 байт.
Глобальные переменные используют 0 байт (0%) динамической памяти, оставляя 64 байт для локальных переменных. Максимум: 64 байт.

Способ 2:
/*
   МК использован - Attiny13A
*/

// Объявим пины более понятно:

#define   pinState1   PB0
#define   pinState2   PB1
#define   pinState3   PB2

#define   relePin1    PB3
#define   relePin2    PB4

void setup() {
  // Не знаю я что там за схема, поэтому так ))
  pinMode(pinState1, INPUT); 
  pinMode(pinState2, INPUT); 
  pinMode(pinState3, INPUT); 

  pinMode(relePin1, OUTPUT); 
  pinMode(relePin2, OUTPUT); 

  digitalWrite(relePin1, LOW);
  digitalWrite(relePin2, LOW);
}

void loop() {

  if (!digitalRead(pinState1)) {
    digitalWrite(relePin1, HIGH);
  }
  if (!digitalRead(pinState2)) {
    digitalWrite(relePin2, HIGH);
  }
  if (!digitalRead(pinState3)) {
    digitalWrite(relePin1, LOW);
    digitalWrite(relePin2, LOW);
  }
}

Скетч использует 54 байт (5%) памяти устройства. Всего доступно 1024 байт.
Глобальные переменные используют 0 байт (0%) динамической памяти, оставляя 64 байт для локальных переменных. Максимум: 64 байт.

Способ 3:
/*
   МК использован - Attiny13A
*/

// Объявим пины более понятно:

#define   pinState1   PB0
#define   pinState2   PB1
#define   pinState3   PB2

#define   relePin1    PB3
#define   relePin2    PB4

void setup() {
  // Не знаю я что там за схема, поэтому так ))
  pinMode(pinState1, INPUT);
  pinMode(pinState2, INPUT);
  pinMode(pinState3, INPUT);

  pinMode(relePin1, OUTPUT);
  pinMode(relePin2, OUTPUT);

  digitalWrite(relePin1, LOW);
  digitalWrite(relePin2, LOW);
}

void loop() {

  {
    uint8_t val = digitalRead(pinState1);
    if (!val) {     // Это равносильно if (val == LOW)
      digitalWrite(relePin1, HIGH);
    }
  }
  {
    uint8_t val = digitalRead(pinState2);
    if (!val) {     // Это равносильно if (val == LOW)
      digitalWrite(relePin2, HIGH);
    }
  }
  { 
    uint8_t val = digitalRead(pinState3);
    if (!val) {     // Это равносильно if (val == LOW)
      digitalWrite(relePin1, LOW);
      digitalWrite(relePin2, LOW);
    }
  }
}

Скетч использует 54 байт (5%) памяти устройства. Всего доступно 1024 байт.
Глобальные переменные используют 0 байт (0%) динамической памяти, оставляя 64 байт для локальных переменных. Максимум: 64 байт.

И еще, наверное с десяток, можно придумать…

Поехали? :laughing: