Ааааа.... Как его остановить? Как остановить запущенный скетч?

R0MaNbI4
Offline
Зарегистрирован: 25.01.2016

Вот скомпилировал я программу, загрузил. Программа работает, серваки двигаются. Но как ее остановить? Если подаю питание, то оно снова начинает работать. Неужели нужно загружать на него пустой скетч, чтоб он остановился? Почему нигде нет кнопки "стоп"?

Или как обновить уже загруженную программу. Например, вот запустил я прогу, потом подкорректировал пару строк и хочу снова ее загрузить. У меня он выдает ошибку:

avrdude: ser_open(): can't open device "\\.\COM9": Отказано в доступе.
Проблема загрузки в плату. Помощь по загрузке: http://www.arduino.cc/en/Guide/Troubleshooting#upload .
 
Что я делаю не так? Как надо правильно?
Клапауций 322
Offline
Зарегистрирован: 31.12.2015

R0MaNbI4 пишет:

Почему нигде нет кнопки "стоп"?

заметь, кнопка "старт" и педаль сцепления, тоже отсутсвуют.

R0MaNbI4 пишет:

avrdude: ser_open(): can't open device "\\.\COM9": Отказано в доступе.

ты не прошёл фейс-контроль.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

RST - на землю и оно остановится

at0mix
at0mix аватар
Offline
Зарегистрирован: 23.11.2015

В цикле loop от кнопки переходить в delay() с ожиданием следующего нажатия на кнопку ;)

Естессно остановив при необходимости движки....

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

at0mix пишет:

переходить в delay() с ожиданием следующего нажатия на кнопку ;)

это как? можно код позырить

at0mix
at0mix аватар
Offline
Зарегистрирован: 23.11.2015

Клапауций 322 пишет:

это как? можно код позырить

    do{ 
      buff=KBDread();  
      if (buff){tm1637.display(1,buff);}
      delay(200);
      switch(buff){
        case 1://чтение ключей по командам, кнопка 12 выход
          KeySave=1;
          buff1=1;
          do
          {
            if(ds.reset()) // если обнаружено устройттво
            {
              ds.write(0x33); // отправляем команду "считать ROM" 
              delay(10); // на всякий случай ждем
              for(int i=0;i<8;i++)
              {
                buffTM[i] = ds.read(); // считываем ключ
              }
            }
            buffZ=ScanTM();
            if(buffZ>5){tm1637.display(2,12);tm1637.display(3,buffZ-5);}//пользовательский ключ, выводим С*
            if(buffZ>0&&buffZ<6){tm1637.display(2,10);tm1637.display(3,buffZ);}//админский ключ, выводим А*
            if(!buffZ){tm1637.display(2,0);tm1637.display(3,0);}//админский ключ, выводим А*
            delay(1000);
            if(KBDread()==12){buff1=0;}
                      Serial.print(" Key = ");//для отладки      
                      Serial.println(buff1);//для отладки          

          }while(buff1);
          KeySave=0;
        break;
     }
 }while(ds.reset()||KeySave);


byte KBDread()//опрос клавиатуры
{
      byte KBread=0;
      for (byte KBx=0;KBx<3;KBx++)//цикл по столбцам
      {
        for (byte KBy=0;KBy<4;KBy++)//цикл по строкам
        {
          digitalWrite(pinKBy1+KBy, LOW);// 0 на столбец
          if (!digitalRead(pinKBx1+KBx))//читаем строку
          {
            KBread=KBy*3+KBx+1;//если 0 определяем кнопку
          }
          digitalWrite(pinKBy1+KBy, HIGH);//1 на столбец
        }
      }
    return KBread;//возвращаем 0 или номер кнопки 1-12
}

Вообще это просто кусочек проекта, вывод идет на 4-секционный 7-сегментный LED, ввод - считка ТМ-ключей и клавиатурная матрица 3*4.

bwn
Offline
Зарегистрирован: 25.08.2014

R0MaNbI4, все лишнее отключи от платы перед заливкой.