Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 19.07.2016
Сообщений: 4

Как разобраться с ошибкой

19.07.2016, 14:47. Показов 2071. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Только начинаю знакомство с ардуиной, и у меня проблема при загрузки скетча. Начну сначала. первый раз подключил ардуину загрузил тестовый скетч (как многие моргалка), по изменял время мерцания светодиода убедился в работоспособности платы. Залил скетч (для схемы в которой будет работать), установил в схему, проверил, работает. Решил кое что изменить в скетче и тат нечего не получилось выдает ошибку(ставлю обратно в схему, плата работает). Думал может программатор сгорел взял новую плату залил прошивку без проблем. Поставил в схему. потом решил перепрошить и ее и опять та жа ошибка. Подскажите Что делать?
Плата 1: Arduino Pro Mini 5v / 16MHz на процессоре ATMEGA328
2: Arduino Pro Mini 5v / 16MHz на процессоре ATMEGA168
вот код
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
/*
Arduino IDE 1.5.4
Паяльник на Arduino Pro Mini  v0.4
 
 // Пины еодключения индикаторов
 ANODES(CATHODES):
 D1 - a
 D2 - b
 D4 - c
 D6 - d
 D7 - e
 D5 - f
 D3 - g
 D0 - dp (digital point) Я НЕ подключал - резерв... индикатора :)))
 
      a1
   ********
   *      *
 f *      * b2
 5 *  g3  *
   ********
   *      *
 e *      * c4
 7 *  d6  *
   ******** # dp0
 
 CATHODES(ANODES):
 D16 - cathode 3
 D15 - cathode 2
 D12 - cathode 1
 */
 
// ------------------------------------------------------------------------------------------------
int indicator = 0; // 0 = Катод  1 = Анод  Выбрать под Ваш индикатор !!!!
 
byte  digits[] = {
  B00001001,B11101011,B00110001,B10100001,B11000011,B10000101,B00000101,B11101001,B00000001,B10000001};
 
int digit_common_pins[]={16,15,12};  // пины для разрядов сегментов(при изменении убедитесь что Ваш порт не используется)
int refresh_delay = 5;
int count_delay = 1000; // COUNTING SECONDS IF count_delay = 1000
long actual_count_delay = 0;
long actual_refresh_delay = 0;
int increment = 0;   //Стартовое значение на сегментах
int max_digits =3;  //  Кол-во знакомест
int current_digit=max_digits-1;
int increment_max = pow(10,max_digits);
// -------------------------------------------------- не изменять, это для Сегментов -----------------------------------------------
 
 
//--------------------- переменные паяльника -----------------------------
int knopka = 3; //Пин кнопок
 
 
int tin = 0; // Пин Датчика температуры IN Analog через LM358N
int pinpwm = 11;// порт нагревательного элемента(через транзистор)PWM
 
int tempust = 230; // установленная температура
int tempmin = 200; // минимальная температура
int tempmax = 480; // максимальная температура
int tempreal = 250; // переменная датчика текущей температуры
int temppwmmin = 40; // минимальное значение PWM нагревателя  
int temppwmmax = 180; // максимальное значение PWM нагревателя
int temppwmreal = 0; // текущее значение PWM нагревателя
int airreal = 100; // стартовое значение PWM вентилятора(если нужно)
 
int temperror = -50; // разница температур(установленная - реальная)
 
int temprazn = 0; // переменная разницы температуры(установленная - текущая)
 
void setup(){
  
 if(indicator == 0){   //Если вначале был выбран общий Катод
                    for(int i=0; i<10;i++){
                                           digits[i] = ~ digits[i];
                                           }
                   }
  
  pinMode(pinpwm,OUTPUT);     // Порт нагрузки(паяльника) настраиваем на выход
  analogWrite(pinpwm, temppwmreal);     //Вывод  шим в нагрузку паяльника (выводим 0 - старт с выключеным паяльником- пока не опредилим состояние температуры)
  
 
  // -------------------------------------------------- не изменять, это для Сегментов -----------------------------------------------
  DDRD = B11111111;
  for (int y=0;y<max_digits;y++)
          {
           pinMode(digit_common_pins[y],OUTPUT);
           digitalWrite(digit_common_pins[y], LOW);    
          }
  // -------------------------------------------------- не изменять, это для Сегментов -----------------------------------------------
 
}
 
void loop() {
    
  show(increment);   // Вывести значение переменной на экран(LED)
   
    
   if (tempreal < tempust ){   // Если температура паяльника ниже установленной температуры то:
      
            if ((tempust - tempreal) < 16 & (tempust - tempreal) > 6 ) // Проверяем разницу между у становленной температурой и текущей паяльника,
                                     // Если разница меньше 10 градусов то 
                             { 
                              temppwmreal = 99;  // Понижаем мощность нагрева (шим 0-255  мы делаем 99)  - таким образом мы убираем инерцию перегрева
                              }
             else  if ((tempust - tempreal) < 7 & (tempust - tempreal) > 3)
                                                                {              
                                                                  temppwmreal = 80;  // Понижаем мощность нагрева (шим 0-255  мы делаем 99)  - таким образом мы убираем инерцию перегрева
                                                                 }
                              
                         else if ((tempust - tempreal) < 4 )
                                                      {              
                                                       temppwmreal = 45;  // Понижаем мощность нагрева (шим 0-255  мы делаем 99)  - таким образом мы убираем инерцию перегрева
                                                       }  
                                                     
                                                     
                            else {
                                  temppwmreal = 230; // Иначе Подымаем мощность нагрева(шим 0-255  мы делаем 230) на максимум для быстрого нагрева до нужной температуры
                                 }
                        
                              
      analogWrite(pinpwm, temppwmreal);     //Вывод в шим порт (на транзистор) значение мощности
    }
 else { //Иначе (если температура паяльника равняется или выше установленной) 
            
            temppwmreal = 0;  // Выключаем мощность нагрева (шим 0-255  мы делаем 0)  - таким образом мы отключаем паяльник
            analogWrite(pinpwm, temppwmreal);   //Вывод в шим порт (на транзистор) значение мощности
          } 
 
  
  if(millis() - actual_count_delay > count_delay) // это для сегментов 
 
  {  
    actual_count_delay = millis();
     // Здесь мы пишем нашу прогу по считыванию состояния кнопок (это место в счетчк не будет тормозить вывод на сегменты)
   
    tempreal = analogRead(0);// считываем текущую температуру
    
    tempreal=map(tempreal,-50,700,0,500);   // нужно вычислить
    increment=tempreal;
  
  //---------------------------------------------------------- Кнопки -------------------------------------------------------------------------  
          if (analogRead(knopka) == 0)  // Если нажата вниз кнопка то понизить температуру на 5
                               {
                               if( tempust <= tempmin || (tempust-5) <= tempmin )
                                                          {
                                                            tempust= tempmin;
                                                            increment = tempust;
                                                          }
                                       else { 
                                             tempust=tempust-5;
                                             increment = tempust;
                                             show(increment);   // Вывести значение переменной на экран(LED)
                                            
                                              } 
                                 
                                 
                              
                               }
  
          else if (analogRead(knopka) > 500 && analogRead(knopka) < 524 )  // Если нажата вверх кнопка то повысить температуру на 5
                                       {
                                       tempust=tempust+5;
                                       if( tempust >=tempmax)
                                                          {
                                                            tempust= tempmax;
                                                          }
                                       increment = tempust;
                                       show(increment);   // Вывести значение переменной на экран(LED)
                                      
                                       } 
 
    
  }
}
 
void show(int value) { //------------------------------- подпрограмма для вывода на сегменты   - лучше не изменять ---------------------------------------------
  int digits_array[]={};  
  int y=0;
  boolean empty_most_significant = true; 
  
 
  
  if(millis() - actual_refresh_delay >= refresh_delay)
  {  
 
  for (int z=max_digits-1;z>=0;z--)
  {
 
 
    digits_array[z] = value / pow(10,z); //rounding down by converting from float to int
    
    if(digits_array[z] != 0 ) empty_most_significant = false;  // DON'T SHOW LEADING ZEROS
    
    value = value - digits_array[z] * pow(10,z);
 
 
 
 
 
   if(z==current_digit)
        {
         if(!empty_most_significant || z==0){ // DON'T SHOW LEADING ZEROS EXCEPT FOR THE LEAST SIGNIFICANT
            
                                            PORTD = digits[digits_array[z]];
                                            }
                                       else
                                            {
                                             if(indicator == 0){   //Если вначале был выбран общий Катод
                                                                PORTD = B00000000;  
                                                                }
                                                     else{
                                                           PORTD = B11111111;
                                                          }  
                                            }
 
       if(indicator == 0){ 
                         digitalWrite(digit_common_pins[z], LOW);
                         }
             else{
                  digitalWrite(digit_common_pins[z], HIGH);
                 }
      }
 else{
     
     if(indicator == 0){ 
                         digitalWrite(digit_common_pins[z], HIGH);
                         }
             else{
                  digitalWrite(digit_common_pins[z], LOW);
                 }
   }
 
}
  
 
      current_digit--;
      if(current_digit < 0) 
      {
        current_digit= max_digits; // NEED AN EXTRA REFRESH CYCLE TO CLEAR ALL DIGITS
      }
 
 actual_refresh_delay =  millis();     
 }
 
}
А вот текст ошибки
Arduino: 1.6.9 (Windows 7), Плата:"Arduino Pro or Pro Mini, ATmega328 (5V, 16 MHz)"

Скетч использует 4 572 байт (14%) памяти устройства. Всего доступно 30 720 байт.
Глобальные переменные используют 67 байт (3%) динамической памяти, оставляя 1 981 байт для локальных переменных. Максимум: 2 048 байт.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x1c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x1c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x1c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x1c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x1c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c
Проблема загрузки в плату. Помощь по загрузке: http://www.arduino.cc/en/Guide... ing#upload .

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.07.2016, 14:47
Ответы с готовыми решениями:

Как разобраться с ошибкой?
Решил выучить Python по книге Марка Лутца и на первоначальном же этапе столкнулся с проблемой. Выдает ошибку (на фото). В интернете ответа...

Как разобраться с ошибкой?
привет! мне нужен был тестовый мини-сервер для урока по ангуляру (хероез тур) и надо было набросать сервер(бекенд) на быструю руку, выбор...

Как разобраться с ошибкой базы при переносе сайта с денвера на хостинг?
Сначала база загружалась пустой служба поддержки на хостинге исправила! Но теперь такая проблема все посты, картинки и все остальное...

6
77 / 40 / 14
Регистрация: 14.01.2016
Сообщений: 203
20.07.2016, 11:38
как ты подключаешь плату к компу? если usb to ttl без dtr, то как начнется компиляция надо нажать reset и удерживать пока не начнет вгружать
0
0 / 0 / 0
Регистрация: 19.07.2016
Сообщений: 4
20.07.2016, 11:51  [ТС]
подключен через USB-UART, вывод DTR тоже подключен
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.07.2016, 21:41
Какой тип/название USB-UART переходника?
0
0 / 0 / 0
Регистрация: 19.07.2016
Сообщений: 4
21.07.2016, 09:58  [ТС]
Все заработало. Всем спасибо кто пытался помочь...
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
21.07.2016, 10:29
Цитата Сообщение от Markys63 Посмотреть сообщение
Все заработало.
можно узнать? как?
правила п 4.10
Если вопрос был решен вами самостоятельно, отпишите об этом в своей теме - есть и другие люди, которые столкнутся с той же проблемой, и им поможет ваш ответ.
Добавлено через 1 минуту
Цитата Сообщение от Markys63 Посмотреть сообщение
Всем спасибо кто пытался помочь...
опять же правила п 3.6
Если какой-либо пост на форуме показался вам полезным, то вы можете выразить свою благодарность, нажав кнопку "Спасибо" внизу самого поста.
0
0 / 0 / 0
Регистрация: 19.07.2016
Сообщений: 4
21.07.2016, 17:31  [ТС]
Пожалуйста. Вставил дуню в схему и перепрошил(раньше того не пробовал). Вынул проверил, шьется.
Благодарность получили все кто помог...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.07.2016, 17:31
Помогаю со студенческими работами здесь

Разобраться с ошибкой
Господа! Помогите разобраться с ошибкой, пожалуйста. Она вот в чем: в меню нажимаю первый раз на пункт, появляется:...

разобраться с ошибкой
x = linspace(-2,0.01,2); y = linspace(-3,0.02,3); =meshgrid(x,y); Z = (exp(-y.*x).*sin(2.*x))./(abs(3.*y)+(2.*x)+5); mesh(X,Y,Z)

Разобраться с ошибкой
package ru.job4j.calculator; import org.junit.Assert; import org.junit.Test; public class FitTest { @Test public static...

Разобраться с ошибкой
Есть код, и не понимаю почему но не ищет значения #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; #define n 10 ...

Разобраться с ошибкой
Когда компилирую появляется вот такая ошибка.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru