Например TDA7294

Форум РадиоКот • Просмотр темы - Сравнивать переменные с элементами массива
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт дек 12, 2025 11:23:50

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Сравнивать переменные с элементами массива
СообщениеДобавлено: Вт сен 12, 2023 07:30:45 
Первый раз сказал Мяу!

Зарегистрирован: Вт авг 15, 2023 06:46:22
Сообщений: 24
Рейтинг сообщения: 0
Доброго времени друзья! Помогите решить задачку. Смысл работы кода такой:
На запоминание
Зажечь светодиод, через определенное время нужно нажать кнопки, соответствующие светодиоду в правильной последовательности. С каждой итерацией увеличивать количество диодов на 1.
На пример:
Зажги 3 - нужно нажать 3. Зажги 2, 7 - нужно нажать 2, 7 и т.д.
Вначале циклом я набираю массив, далее нужно нажимать кнопки и сравнить номер кнопки с элементом массива. Но запрограммировать ардуино ждать нажатия не могу. Есть идеи?
Код:
int key() {
  int val = analogRead(0);
  if (val < 50) return 3;
  else if (val < 513) return 4;
  else if (val < 683) return 5;
  else if (val < 768) return 6;
  else if (val < 819) return 7;
  else return 0;
} //int key()
int r, c, n, i, j, q, w, u, l;
int arr[50];
long randNumber;
void setup() {
  Serial.begin(9600);
  randomSeed(analogRead(17));
  n = 0;
}

void loop()
{
  for (q = 0; q < 1000; q++) { // Цикл1 который увеличивает количество диодов на 1
    n++;
    Serial.println("----------"); delay(1000);
    // Serial.print("Цикл1-n:");
    // Serial.println(n);
    for (i = 0; i < n; i++) { // Цикл2 который набирает массив
label:
      randNumber = random(3, 7);
      if (r == randNumber) {
        goto label;
      }
      r = randNumber;
      arr[i] = randNumber;
      digitalWrite(randNumber, HIGH);
      delay(200);
      digitalWrite(randNumber, LOW);
      //  Serial.print("randNumber:");
      //  Serial.println(randNumber);
      // return arr;
    }  delay(1500);
    //   for (l = 0; l < 1111; l++){ //Цикл таймер
    for (w = 0; w < n; w++) { // Цикл3 должен ждать нажатия кнопки, и сравнить значение из key() с элементом массива
      int k = arr[w];
      if (k == key()) {
        Serial.println("OK"); // Вся загвоздка здесть. Цикл пролетает и не ожидает нажатия
      }
      else
      {
        Serial.println("NO");
      }

    }//}//Цикл таймер
  }
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Сравнивать переменные с элементами массива
СообщениеДобавлено: Вт сен 12, 2023 11:50:32 
Мучитель микросхем

Карма: 6
Рейтинг сообщений: 112
Зарегистрирован: Пн май 27, 2019 07:18:28
Сообщений: 437
Откуда: ВВХ-ск
Рейтинг сообщения: 1

https://www.viralsciencecreativity.com/ ... emory-game

Добавлено after 12 minutes 14 seconds:
+
https://github.com/TechWithOmid/Arduino ... ree/master
https://github.com/simonprickett/arduin ... ree/master
https://github.com/yanaki/arduino-memor ... y-Game.ino
https://github.com/arnegiacomo/Arduino_ ... /tree/main
...


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y