Программа Moрзе на Arduino UNO

Олежка
Offline
Зарегистрирован: 05.02.2017

Здравствуйте. Загрузил программу на aruino UNO, которая заставляет мигать светодиод по азбуке Морзе, конкретно слово SOS. Все команды отрабатывают нормально, кроме последней, где стоит задержка выключенного светодиода в 7 секунд – deluy (7000); На этой команде по факту не какой задержки в семь секунд не происходит, а светодиод начинает мерцать в течении пол секунды и цикл повторяется снова. Вопрос почему не происходит заданная задержка? Может кто знает? Программа: int pin = 13; // Номер пина, // на котором расположен светодиод int cek = 1000; // Время длительности // символа "точки" void setup() { pinMode (pin, OUTPUT); } void loop() { // == Буква S == //Точка digitalWrite (pin, HIGH); delay (cek); digitalWrite (pin, LOW); delay (cek); //Точка digitalWrite (pin, HIGH) ; delay (cek); digitalWrite (pin, LOW) ; delay (cek); //Точка digitalWrite (pin, HIGH); delay (cek); digitalWrite (pin, LOW); // Окончание буквы delay (3 * cek); // == Буква O == //Тире digitalWrite (pin, HIGH); delay (3 * cek); digitalWrite (pin, LOW); delay (cek); //Тире digitalWrite (pin, HIGH); delay (3 * cek); digitalWrite (pin, LOW); delay (cek); //Тире digitalWrite (pin, HIGH); delay (3 * cek); digitalWrite (pin, LOW); // Окончание буквы delay (3 * cek); // == Буква S == //Точка digitalWrite (pin, HIGH); delay (cek); digitalWrite (pin, LOW); delay (cek); //Точка digitalWrite (pin, HIGH); delay (cek); digitalWrite (pin, LOW); delay (cek); //Точка digitalWrite (pin, HIGH); delay (cek); digitalWrite (pin, LOW); // Окончание слова delay (7 * cek); }

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вы уверены, что кому-то захочется рабираться в том компоте, что Вы назвали программой? Попробуйте нормально выложить, может тогда больше повезёт.

Олежка
Offline
Зарегистрирован: 05.02.2017

Не серчайте; первый раз потому-что выложил. Но программа видимо нормальная, так как открываешь окно "Монитор порта" и всё нормально начинает работать. Закрываешь его и сетодиод на последней команде опять начинает  мерцать.

Олежка
Offline
Зарегистрирован: 05.02.2017
int pin = 13;    // Номер пина,
                 // на котором расположен светодиод
int cek = 1000;  // Время длительности
                 // символа "точки"

void setup()
{
pinMode (pin, OUTPUT);
}

void loop()
{ 
  // == Буква S ==  
       //Точка  
digitalWrite (pin, HIGH);
delay (cek);
digitalWrite (pin, LOW);
delay (cek);
       //Точка  
digitalWrite (pin, HIGH) ;
delay (cek);
digitalWrite (pin, LOW) ;
delay (cek);
       //Точка  
digitalWrite (pin, HIGH);
delay (cek);
digitalWrite (pin, LOW);
       // Окончание буквы
delay (3 * cek);
     // == Буква O == 
       //Тире
digitalWrite (pin, HIGH);
delay (3 * cek);
digitalWrite (pin, LOW);
delay (cek);
       //Тире
digitalWrite (pin, HIGH);
delay (3 * cek);
digitalWrite (pin, LOW);
delay (cek);
       //Тире
digitalWrite (pin, HIGH);
delay (3 * cek);
digitalWrite (pin, LOW);
       // Окончание буквы
delay (3 * cek);
   // == Буква S ==  
       //Точка  
digitalWrite (pin, HIGH);
delay (cek);
digitalWrite (pin, LOW);
delay (cek);
       //Точка  
digitalWrite (pin, HIGH);
delay (cek);
digitalWrite (pin, LOW);
delay (cek);
       //Точка  
digitalWrite (pin, HIGH);
delay (cek);
digitalWrite (pin, LOW);
     // Окончание слова
delay (7 * cek);
}

 

nik182
Offline
Зарегистрирован: 04.05.2015

Открываешь монитор порта = нажимаешь кнопку RESET.

Олежка
Offline
Зарегистрирован: 05.02.2017

Открыл окно "монитор порта" нажал кнопку RESET на плате. Закрыл окно - всё также мерцает на последней команде. Может я что-то не правильно сделал.

toxikaciya
Offline
Зарегистрирован: 11.04.2016

Олежка пишет:

Открыл окно "монитор порта" нажал кнопку RESET на плате. Закрыл окно - всё также мерцает на последней команде. Может я что-то не правильно сделал.

Предполагалось, что запуск монитора порта равносилен нажатию кнопки RESET. Ваш скетч верен, прогон на nano ошибок не выявил.

UPD. Когда выкладываете код, нумерация строк обязательна.

Олежка
Offline
Зарегистрирован: 05.02.2017

Спасибо

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Олежка, во-первых, 1 секунда для точки - это очень много (если речь идет об азбуке Морзе. А во вторых, у Вас выводится строка "SOS", а не сигнал SOS.