Помогите решить проблему

aaa92
Offline
Зарегистрирован: 02.01.2014

http://www.youtube.com/watch?v=YTffIsXj4nY&feature=youtu.be

Помогите решить проблему!

С 19 по 22 сек. динамик зависает, как этого избежать?

Код:

#include <LiquidCrystal.h>
enum { SYMBOL_HEIGHT = 8 };
int outPin = 10;
enum { LCD_WIDTH = 16, LCD_HEIGHT = 2 };
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup(){
  lcd.begin(LCD_WIDTH, LCD_HEIGHT);
{
pinMode(outPin, OUTPUT);
}
}
typedef void (*LCD_demo)();
LCD_demo const demos[] =
{
 showScrolling,
 };
  #define dotimes(n, code) for (int i = 0; i < (n); ++i) code;

void showScrolling()
{
 lcd.begin(16, 2);
 lcd.print("   Ka\xBF""ep\xB8\xBD""a! \xED\xED\xED ");
 lcd.setCursor(0, 1);
 lcd.print("\x43 \xE0\xBD\xB5\xBC Po\xB6\xE3""e\xBD\xB8\xC7!");
  delay(0);
  dotimes(5,
  {
    lcd.scrollDisplayRight();
    delay(150);
  });
  dotimes(5,
  {
    lcd.scrollDisplayLeft();
    delay(150);
  });
delay(0);
dotimes(5,
  {
    lcd.scrollDisplayLeft();
    delay(150);
  });
  dotimes(5,
  {
    lcd.scrollDisplayRight();
    delay(150);
  });
}
void loop(){
  {
  dotimes(sizeof(demos) / sizeof(demos[0]),
  {
    demos[i](); 
    delay(0);
 });
 
}
 tone(10, 880);
 delay(375);
 tone(10, 740);
 delay(187.5);
 tone(10, 784);
 delay(187.5);
 tone(10, 880);
 delay(375);
 tone(10, 740);
 delay(187.5);
 tone(10, 784);
 delay(187.5);
 tone(10, 880);
 delay(187.5);
 tone(10, 440);
 delay(187.5);
 tone(10, 494);
 delay(187.5);
 tone(10, 554);
 delay(187.5);
 tone(10, 587);
 delay(187.5);
 tone(10, 659);
 delay(187.5);
 tone(10, 740);
 delay(187.5);
 tone(10, 784);
 delay(187.5);
 tone(10, 740);
 delay(375);
 tone(10, 587);
 delay(187.5);
 tone(10, 659);
 delay(187.5);
 tone(10, 740);
 delay(375);
 tone(10, 587);
 delay(187.5);
 tone(10, 659);
 delay(187.5);
 tone(10, 740);
 delay(187.5);
 tone(10, 370);
 delay(187.5);
 tone(10, 392);
 delay(187.5);
 tone(10, 440);
 delay(187.5);
 tone(10, 494);
 delay(187.5);
 tone(10, 440);
 delay(187.5);
 tone(10, 392);
 delay(187.5);
 tone(10, 440);
 delay(187.5);
 tone(10, 587);
 delay(187.5);
 tone(10, 554);
 delay(187.5);
 tone(10, 587);
 delay(187.5);
 tone(10, 392);
 delay(375);
 tone(10, 494);
 delay(187.5);
 tone(10, 440);
 delay(187.5);
 tone(10, 392);
 delay(375);
 tone(10, 370);
 delay(187.5);
 tone(10, 330);
 delay(187.5);
 tone(10, 370);
 delay(187.5);
 tone(10, 330);
 delay(187.5);
 tone(10, 294);
 delay(187.5);
 tone(10, 330);
 delay(187.5);
 tone(10, 370);
 delay(187.5);
 tone(10, 392);
 delay(187.5);
 tone(10, 494);
 delay(187.5);
 tone(10, 440);
 delay(187.5);
 tone(10, 494);
 delay(375);
 tone(10, 554);
 delay(187.5);
 tone(10, 587);
 delay(187.5);
 tone(10, 440);
 delay(187.5);
 tone(10, 494);
 delay(187.5);
 tone(10, 554);
 delay(187.5);
 tone(10, 587);
 delay(187.5);
 tone(10, 659);
 delay(187.5);
 tone(10, 740);
 delay(187.5);
 tone(10, 784);
 delay(187.5); 
{
 digitalWrite(outPin, HIGH);
delay(0);
digitalWrite(outPin,LOW);
delay(0);
}
}

 

 

 

maksim
Offline
Зарегистрирован: 12.02.2012

Во-первых, почитайте описание delay() и какого типа параметры принимает эта функция.
Во-вторых, ваш код не компилируется.
В-третьих, в 
ArduinoIDE нажмите Ctrl + T, что бы код стал читабельным.
В-четвертых, данная тема не относится к проектам.
В-пятых, зачем этот кусок кода?

{
 digitalWrite(outPin, HIGH);
delay(0);
digitalWrite(outPin,LOW);
delay(0);
}

И в-шестых:

  tone(10, 784);
  delay(187);
  noTone(10);

 

aaa92
Offline
Зарегистрирован: 02.01.2014

Спасибо большое!

Все замечания учту, лишнее поубираю, у меня код прекрасно компилируется и работает, на видео показано.

Спасибо ещё раз, проблема с зависанием динамика устранилась. Тему можете закрыть.

maksim
Offline
Зарегистрирован: 12.02.2012

aaa92 пишет:

у меня код прекрасно компилируется и работает

Да, верно, проверял в 1.0.0 IDE не скомпилировался ,в версии выше компилится.