Зависание Arduino

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем nanotank25, 10 июн 2019.

  1. DetSimen

    DetSimen Guest

    Это он мне.
     
  2. nanotank25

    nanotank25 Нуб

    Я тута :) Перепутал названия, это не неонка а электролюминисцентный шнур.
    Скетч простой:
    Код (C++):
    #include <SPI.h>
    #include <TM1637.h>
    #define CLK 7
    #define DIO 6
    TM1637 disp(CLK, DIO);

    int rele_one = 2; //Реле 1
    int rele_two = 3; //Релe 2
    int rele_three = 4; //Реле 3
    int rele_four = 5; //Реле 4

    void setup() {
      disp.init();  // инициализация
      disp.set(3);  // яркость, 0 - 7 (минимум - максимум)
      // put your setup code here, to run once:
      Serial.begin(9600);
      pinMode(rele_one, OUTPUT); //Реле
      pinMode(rele_two, OUTPUT); //Реле
      pinMode(rele_three, OUTPUT); //Реле
      pinMode(rele_four, OUTPUT); //Реле
      digitalWrite(rele_one, HIGH);
      digitalWrite(rele_two, HIGH);
      digitalWrite(rele_three, HIGH);
      digitalWrite(rele_four, HIGH);
    }

    void loop() {
      byte welcome_banner[] = {_H, _E, _L, _L, _O};
      disp.runningString(welcome_banner, sizeof(welcome_banner), 300);  // выводим
      // put your main code here, to run repeatedly:
      digitalWrite(rele_one, LOW);
      delay(2000);
      digitalWrite(rele_two, LOW);
      delay(2000);
      digitalWrite(rele_three, LOW);
      delay(2000);
      digitalWrite(rele_four, LOW);
      delay(2000);

      disp.runningString(welcome_banner, sizeof(welcome_banner), 300);  // выводим
      digitalWrite(rele_one, HIGH);
      delay(200);
      digitalWrite(rele_two, HIGH);
      delay(200);
      digitalWrite(rele_three, HIGH);
      delay(200);
      digitalWrite(rele_four, HIGH);
      delay(200);

      disp.runningString(welcome_banner, sizeof(welcome_banner), 300);  // выводим
      digitalWrite(rele_one, LOW);
      delay(2000);
      digitalWrite(rele_two, LOW);
      delay(2000);
      digitalWrite(rele_three, LOW);
      delay(2000);
      digitalWrite(rele_four, LOW);
      delay(2000);

      disp.runningString(welcome_banner, sizeof(welcome_banner), 300);  // выводим
      digitalWrite(rele_one, HIGH);
      digitalWrite(rele_two, HIGH);
      delay(2000);
      digitalWrite(rele_one, LOW);
      digitalWrite(rele_two, LOW);

      disp.runningString(welcome_banner, sizeof(welcome_banner), 300);  // выводим
      delay(200);
      digitalWrite(rele_three, HIGH);
      digitalWrite(rele_four, HIGH);
      delay(2000);
      digitalWrite(rele_three, LOW);
      digitalWrite(rele_four, LOW);

      disp.runningString(welcome_banner, sizeof(welcome_banner), 300);  // выводим,
      digitalWrite(rele_one, HIGH);
      delay(200);
      digitalWrite(rele_two, HIGH);
      delay(200);
      digitalWrite(rele_three, HIGH);
      delay(200);
      digitalWrite(rele_four, HIGH);
      delay(200);
    }
     
  3. nanotank25

    nanotank25 Нуб

    Попробовал достать DC-AC, не помогло. Пробуем Реле.
     
  4. AlessandrIT

    AlessandrIT Гик

    Скетч не выглядит настолько убого, чтобы являться причиной проблем.Вам же уже описали как уйти от помех.

    Могу только вот что добавить - а уберите-ка на время ваш шнур/неонку и подключите простенькую лапочку Ильича ватт на 60.Будут проблемы - напишете, а нет - значит дело очевидно
     
  5. nanotank25

    nanotank25 Нуб

    Отключил реле полностью, отодвинул DC-AC на сантиметров 70. Включил, зависло. Хм... Перезапустил, 10 секунд и опять.

    Лампочку, думаю уже не стоит, не запустит. По вашему совету буду разделять чувствительную и нежную микроэлектронику от агрессивных и жестоких помех. Результат постараюсь написать к воскресенью :)
     
  6. SergeiL

    SergeiL Оракул Модератор

    А я бы порекомендовал проверить без работы с дисплеем.
    Закомментировать строки поставив в начале строки : //
    Строка
    Код (C++):
      byte welcome_banner[] = {_H, _E, _L, _L, _O};
    Мне не нравится, но этой библиотеки у меня нет, может там все корректно определено :)
     
  7. parovoZZ

    parovoZZ Гуру

    А что реле? Реле только при коммутации даёт помеху, и то только при выключении. В остальное время реле соблюдает радиотишину.
     
  8. DetSimen

    DetSimen Guest

    Это из Гайвера.
     
  9. SergeiL

    SergeiL Оракул Модератор

    А где это? :)