проблема с кодом

Тема в разделе "Arduino & Shields", создана пользователем lexaKostukov, 26 июл 2017.

  1. lexaKostukov

    lexaKostukov Нуб

    ребят только начал познания в ардуино написал код мигания светодиодом но он раз моргнул и все в чем проблема может быть?
    void setup() {
    // put your setup code here, to run once:
    pinMode(LED_BUILTIN, OUTPUT);
    }

    void loop() {
    // put your main code here, to run repeatedly:digtalWrite(LED_BUILTIN, HIGH);delay(1000);digitalWrite(LED_BUILTIN, LOW);delay(9000);
    }
     
  2. Unixon

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

    Вам не скучно по 9 секунд ждать каждое моргание? :)
     
  3. lexaKostukov

    lexaKostukov Нуб

    Это просто последний код скопировал а так выставлял значения и 1000 и 100 и 900 все равно не моргает
     
  4. Unixon

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

    Вы каким светодиодом моргаете, тем, что на плате на 13-ом выводе? В коде проблемы нет, светодиод не там, куда показывает LED_BUILTIN.
     
  5. fogary

    fogary Гик

    Вы код по памяти писали, или реально все закомментировано?
     
  6. lexaKostukov

    lexaKostukov Нуб

    Скопировано с поля в пограмме
     
  7. akl

    akl Гуру

    наверно хотели выяснить куда пропало разделение строк.
     
  8. Airbus

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

    А какой пин должен моргать то?Где обьява?
     
  9. akl

    akl Гуру

    так он встроенный светодиод же, вроде без объявления работает.
     
  10. lexaKostukov

    lexaKostukov Нуб

    С разделением строк тоже, пишется все в одну строчку, если начинать новую строчку то когда комплемировать нажимаешь выдаёт ошибку
     
  11. akl

    akl Гуру

    нельзя писать всё в одну строчку, потому что тогда это получается не код, а один только комментарий к нему

    void setup() {
    // put your setup code here, to run once:
    pinMode(LED_BUILTIN, OUTPUT);
    }

    void loop() {
    // put your main code here, to run repeatedly:
    digtalWrite(LED_BUILTIN, HIGH);
    delay(1000);
    digitalWrite(LED_BUILTIN, LOW);
    delay(9000);
    }

    если вот так сделать - какую ошибку пишет?

    еще попробуй добавить в самом начале (до сетапа) строку
    #define LED_BUILTIN 13
     
  12. akl

    akl Гуру

  13. Airbus

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

    С чего бы это?Это обычный пин на котором висит светодиод.Какой пропишешь такой и будет ногой дрыгать.
    #define LED_BUILTIN 13
    А вот это правильно!
    Вообще зачем изобретать свой Велосипед если он уже есть в образцах?
    Код (C++):
    // Pin 13 has an LED connected on most Arduino boards.
    // give it a name:
    int led = 13;

    // the setup routine runs once when you press reset:
    void setup() {
      // initialize the digital pin as an output.
      pinMode(led, OUTPUT);
    }

    // the loop routine runs over and over again forever:
    void loop() {
      digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
      delay(1000);               // wait for a second
      digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
      delay(1000);               // wait for a second
    }
     
  14. akl

    akl Гуру

    ну если например открыть из примеров скетч "блинк", то там написано например просто digitalWrite(LED_BUILTIN, HIGH); без всяких объявлений что это 13 пин. и этот блинк вполне работает. и кстати сам этот LED_BUILTIN выделяется синеньким, так что ардуина явно знает что это особый пин
     
  15. mcureenab

    mcureenab Гуру

  16. Airbus

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

    Зависит от компилятора.У меня 1.5.5 Скетч blink я выдернул и выложил оттуда из примеров.
    А вот в этом-в том что Вы написали
    Код (C++):
    void setup() {
    // put your setup code here, to run once:
    pinMode(LED_BUILTIN, OUTPUT);
    }

    void loop() {
    // put your main code here, to run repeatedly:
    digtalWrite(LED_BUILTIN, HIGH);
    delay(1000);
    digitalWrite(LED_BUILTIN, LOW);
    delay(9000);
    }
    Выдаёт ошибку.
    sketch_jul27a.ino: In function 'void loop()':
    sketch_jul27a.ino:8: error: 'digtalWrite' was not declared in this scope

    Поэтому надо декларировать всегда-хуже не будет.В настоящем Си надо декларировать и дефинировать всегда.
     
  17. fogary

    fogary Гик

    Букву пропустили, digitalWrite же.
     
    Airbus нравится это.
  18. Airbus

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

    Ага понял.Вот так компилиться.Проверить некогда.Это akl сделал ошибку.Так правильно.
    Код (C++):
    void setup() {
    // put your setup code here, to run once:
    pinMode(LED_BUILTIN, OUTPUT);
    }

    void loop() {
    // put your main code here, to run repeatedly:
    digitalWrite(LED_BUILTIN, HIGH);
    delay(1000);
    digitalWrite(LED_BUILTIN, LOW);
    delay(9000);
    }
    Спасибо!
     
  19. akl

    akl Гуру

    мопед не мой это не я букву пропустил, а автор темы, я просто в его код энтеров наставил, а ошибку и не заметил
    :D но вот и нашлась внезапно
    lexaKostukov, стандартные функции и операторы автоматически выделяются цветным шрифтом, так что смотри внимательно. Ну и компилятор обычно достаточно хорошо указывает на подобные опечатки.