Arduino Uno 3: Застрял на "загрузке..." скетчей

ide

Я играл с моей платой Arduino Uno R3 с Sublime Text 2 и "Stino" в качестве IDE
Я не уверен, что проблема в моем коде или я что-то сломал...
Я нажал загрузить, пока другой скетч не закончил загрузку, даже оригинальная Arduino IDE больше не может загружать новые скетчи!

Это мой код:

// singleServo.ino

#include <Servo.h>

Servo servo;
const int button = 2;
const int led = 13;
const int buzzerPin = 10;
const int duration = 180;

int stateLED = LOW;
int previous = LOW;

void setup() {
    pinMode(led, OUTPUT);
    pinMode(button, INPUT);
    pinMode(buzzerPin, OUTPUT);
    Serial.begin(9600);
}

void loop() {
    int stateButton;

    stateButton = digitalRead(button);

    if (stateButton == LOW && previous == LOW) {
        if (stateLED == HIGH) 
        { 
            stateLED = LOW; 
            initAction(duration);
        }
        else 
        { 
            stateLED = HIGH;
        }
    }

    digitalWrite(led, stateLED);
    previous = stateButton;
    servo.detach();
}

void initAction(int time_iA){
    tone(buzzerPin, 523, 200);
    delay(200);

    shiftServo(180, time_iA);

    tone(buzzerPin, 262, 200);
}

void shiftServo(int angle, int time_sS) {
    servo.attach(9);
    delay(500);
    int position;

    for(position=0; position <= angle; position += 1)
    {
        servo.write(position);
        delay(time_sS / 180);
        Serial.println(servo.read());
    }
    // for(position=angle; position >= 0; position -= 1)
    // {
    //  servo.write(position);
    //  delay(time_sS / 90);
    // }
}

Я новичок со всеми вещами Arduino - Пожалуйста, помогите!

Редактировать: После перезагрузки системы (Ubuntu Linux 14.04) все снова работало нормально!
Но я собираюсь убрать и последовательные функции.

, 👍4

Обсуждение

Вы пробовали отключить *все*, включая хост-компьютер, а затем загрузить его с помощью Arduino IDE? Какую ОС вы используете?, @gbulmer

Проверьте диспетчер задач или top или что-то еще на наличие осиротевших процессов avrdude, @BrettAM

Я знаю, что это действительно просто, и не обижайтесь, но вы нажали кнопку buiild и проверили, что она строится перед загрузкой? - Также, пожалуйста, дважды проверьте, что arduino подключен к USB-порту, назначенному в buildtool., @Magic-Mouse


4 ответа


Лучший ответ:

1

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

Если вы не уверены, то перезагрузка - самое надежное решение.

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

,

Перезагрузка помогла. Но что именно я сделал не так? Был ли это Сериал или потому, что я остановил эту загрузку? Должен ли я прекратить использовать Sublime + Stino IDE?, @robertgzr

проблема обычно заключается в том, что загрузка внешнего скрипта должным образом не остановлена, а его тайм-аут очень высок. Обычно убийство процесса может оставить последовательный порт "занятым" (отключите и снова подключите USB, чтобы решить эту проблему), но в arduino ide нет "выключателя", и вам нужно подождать (обратите внимание, что внешняя команда t hat не зависит от ide). Похоже, Стино делает то же самое. О IDE, используйте все, что хотите, но прежде чем публиковать здесь, проверьте, имеет ли arduino ide такой же poblem!, @Lesto

Я проверил только это. Я не смог загрузить ни одного скетча с обеих ide, @robertgzr

да, этот случай является "условием гонки" по последовательному порту; поскольку последовательный порт может использоваться только одной программой одновременно, до тех пор, пока все предыдущие загрузки не завершатся неудачно (много времени ожидания, около 20-30 секунд для КАЖДОЙ загрузки в очереди), вы не сможете загрузить. Также обратите внимание, что удаление Serial из sketch не помогает в этом случае, так как это проблема ПК. Серийный в скетче проблематичен только тогда, когда пишется слишком много, но ручной сброс платы сделать проще, когда вы узнаете время rght :), @Lesto

Я читал об этом ручном сбросе где-то еще, но я не мог получить его в нужное время^^ в любом случае спасибо за объяснение, @robertgzr

В этом случае, поскольку загрузка никогда не начиналась с ПК, это не сработало бы. Кстати, просто держите нажатой кнопку reset, прикрепите usb, из arduino выберите serial и luck upload, когда появится "двоичный размер blabla", отпустите кнопку reset. Пробуйте снова и снова xD, @Lesto


1

У меня такая же проблема с Ubuntu. В конце концов, я застрял при каждой загрузке, даже после отключения+повторного подключения устройства.

Убив весь процесс avrdude, устраните проблему.

sudo killall avrdude

или с новыми ИДАМИ:

sudo killall avrdude_bin
,

0

Это случилось со мной на UNO R3. Я решил эту проблему, отключив Bluetooth на своем ноутбуке. Это вызвало конфликт на COM5.

Я исключил плату, кабель и IDE. Наконец-то заметил в диспетчере устройств, что в COM5 есть записи (одна из них-Arduino, а другая-Bluetooth).

Надеюсь, это поможет кому-то еще, у кого может возникнуть эта проблема в будущем.

,

0

У меня была такая же проблема с arduino uno r3 на win10. Решение было простым:

  1. откройте диспетчер задач (Ctrl + Shift + Esc).
  2. остановите все открытые COM-процессы , и загрузка arduino снова заработает.
,