Не работает светодиод

Тема в разделе "Arduino & Shields", создана пользователем Cristy, 19 апр 2018.

  1. Cristy

    Cristy Нуб

    [​IMG]
    Суть программы,один светодиод должен моргать независимо от другого.А второй должен включаться и выключаться по нажатию кнопки
    Код (C++):
    const int button = 9;
    const int ledLamp = 10;
    const int ledLamp1 = 11;
    void setup ()
    {
      pinMode(ledLamp,OUTPUT);
      pinMode(button,INPUT);
      pinMode(ledLamp1,OUTPUT);
    }
    void loop()
    {
      if (digitalRead(button) == HIGH)
      {
        digitalWrite(ledLamp, HIGH);
      }
      else
      {
        digitalWrite(ledLamp, LOW);
      }
      digitalWrite(ledLamp1,HIGH);
      delay(2000);
      digitalWrite(ledLamp1,LOW);
      delay(2000);
    }
    Но схема не работает.
     
    Последнее редактирование: 19 апр 2018
  2. DetSimen

    DetSimen Guest

    И не будет. там жэ delay() стоит
     
  3. Cristy

    Cristy Нуб

    Так один светодиод должен моргать независимо от другого,а второй светодиод(который не включается) должен включаться по нажатию кнопки.
     
  4. DetSimen

    DetSimen Guest

    а ты кнопку подержи больше 4 секунд и паматри
     
  5. trimmer2007

    trimmer2007 Нерд

    Микроконтроллер выполняет код по порядку.
    1) Сначала он посмотрит, что у него на пине (button), далее в зависимости от состояния кнопки (нажата - не нажата) он включит или выключит светодиод. - т.е. отработает оператор if...else .
    2) Потом включит светодиод на пине ledLamp1 -т.е. отработает digitalWrite
    3) Потом пауза 2 секунды - delay
    4) Потом выключит ledLamp1 - digitalWrite
    5) Потом опять пауза 2 секунды - delay
    Затем опять возвращается к пункту 1, и всё повторяется.
    Допустим ты нажал на кнопку, когда микроконтроллер выполнял пункт 2. Пока он не закончит выполнения пункта 2, затем 3, затем, 4, затем 5 он не приступит к пункту 1.


    Операторы digitalWrite он выполнит ооооочень быстро, а вот delay будет отрабатывать два раза по 2 секунды = 4 секунды.
    Тебе нужно сделать так, чтоб микроконтроллер ни на какой строчке кода долго не задерживался. Тогда для человека создаётся эффект, что у микроконтроллера всё под контролем и он всё делает одновременно(хотя на самом деле он ВСЕГДА ВСЁ будет делать по порядку).
    Для реализации твоей задумки, тебе необходимо изучить Мигаем светодиодом без delay() .
    И будет тебе счастье!
    http://arduino.ru/tutorials/BlinkWithoutDelay
     
    Tomasina нравится это.
  6. trimmer2007

    trimmer2007 Нерд

    Когда спрашивает НУБ, нужно отвечать и советовать развёрнуто и понятно. На то и форум, чтоб получить недостающий опыт от более опытного форумчанина.
    Ваш же ответ похож на издёвку над менее опытным товарищем. Лучше бы вы вообще ничего не отвечали!
     
    9xA59kK нравится это.
  7. DetSimen

    DetSimen Guest

    Ну... пойду теперь в печали, полью лысину водкой.
     
    Arduino_man, NikitOS и parovoZZ нравится это.
  8. trimmer2007

    trimmer2007 Нерд

    Ничего личного! Не переживайте так! На вашем месте мог оказаться любой ГУРУ этого форума.
    Иногда почитываю Ваши(в смысле не только ваши, а практически всех гуру) издёвки над нубами и думаю: какова ваша цель ? Самоутвердиться или поиздеваться?

    PS "Полить лысину водкой" можно и без повода!
     
  9. parovoZZ

    parovoZZ Гуру

    Заставить нуба подать питание на мозг.
     
    Arduino_man и Airbus нравится это.
  10. Tomasina

    Tomasina Сушитель лампочек Модератор

    Сгорит же.
     
    Arduino_man и Airbus нравится это.
  11. Airbus

    Airbus Радиохулиган Модератор

    А форум почитать или даташиты не?А хоя бы погуглить?Есть же все?
     
  12. Yaroduino

    Yaroduino Нерд

    А нерд?
     
  13. Arduino_man

    Arduino_man Гик

    А гик?
     
  14. trimmer2007

    trimmer2007 Нерд

    Судя по вопросу, человек даже не поймёт куда копать и что искать. Тыкать пальцем в небо???
    По каким тэгам гуглить или искать среди сотен страниц форума?? Какие даташиты ему читать???
    Время- деньги! И если есть шанс сэкономить время, потраченное возможно в пустую, т.к. в конце концов не найдя то что нужно, человек вообще может бросить микроэлектронику и переключиться на что-нибудь другое, почему бы не объяснить в чём его ошибка и не направить его по конкретному адресу???
     
  15. trimmer2007

    trimmer2007 Нерд

    Я даже и не знаю кто такой ГИК и тем паче НЕРД! Боюсь, что мне это не нужно.
     
  16. parovoZZ

    parovoZZ Гуру

    Очень хорошо. Электроника должна быть в спинном мозгу. Иначе мы так и будем пресмыкающимися.
     
  17. trimmer2007

    trimmer2007 Нерд

    Теперь понятно каким мозгом вы думаете, отвечая на форуме!
     
  18. parovoZZ

    parovoZZ Гуру

    Когда речь заходит про электричество, я вообще не думаю. Все на инстинктах.
     
  19. trimmer2007

    trimmer2007 Нерд

    Нееее, мало вводить статус БИЧ!!! Нужен ещё один - КИБОРГ!
    Как доказывать будете, что у вас электроника в спинном мозгу?? Проводочек ниоткуда не торчит?? Статус КИБОРГ нужно заслужить!
     
  20. ostrov

    ostrov Гуру

    Нене, надо срочно разжовывать базовые понятия! Минуя всяческие учебники, в том числе и 10 мини-проектов от Амперки для самых маленьких! Незачем нубам и нердам такой ерундой заниматься, время свое тратить драгоценное, если гики и прочие киборги уже его потратили и знают готовые ответы.