Arduino Lily Pad mp3, Loop in Loop in Loop с синхронизацией

0

лучший способ объяснить мою проблему - это код.

    const int ringerPin = A0;
    const int offhook = A4;
    const int onhook = A5;

    void setup(){
    pinMode(ringerPin, OUTPUT);
    pinMode(offhook, INPUT);
    pinMode(onhook, INPUT);
    randomSeed(analogRead(0));

  }

  int randCall = random(60000, 3600000); // generate a random number between 1 min and 60 min

//ring every 1 to 60 minutes if the phone is down (hookon) and dont ring if the phone is picked up (no hookon)
void loop()
{
  if (digitalRead(hookon) == HIGH)

void loop(){
delay(randCall);

      //i dont know how to let this loop below here run for 30 seconds.
 void loop()
    {
      //turn audio off - i dont know how to.
    for(int x = 0; x < 15; x++){
      digitalWrite(ringerPin, HIGH);   
      delay(50);                           
      digitalWrite(ringerPin, LOW);   
      delay(80); 
    }
    delay(2500);
    }
  else
    //play one randomly choosen audiofile out of 10 - i dont know how to
}
}

Я был бы бод, если бы кто-нибудь, кто может дать мне некоторые предложения по моим проблемам с кодированием. Я написал их в описаниях кода.

Теги:
arduino
nested-loops
random

1 ответ

0

loop() не является способом создания цикла. loop() - это функция, которую Arduino вызывает снова и снова, когда это возможно.

Чтобы создать циклы, используйте while или for. Вы можете думать о том, что функция loop() является телом цикла while(true).

Тем не менее, вы, вероятно, не должны использовать циклы для того, что вы пытаетесь сделать. Существует полезная функция, называемая millis() которая возвращает количество миллисекунд с момента включения устройства. Значение переполняется каждые 50 дней. Вам нужно будет это обработать, но я предлагаю вам написать функцию loop() чтобы проверить, прошло ли достаточно времени, а затем делать то, что она должна. См это для примера.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню