Arduino Mega 2560

Adaly
Offline
Зарегистрирован: 22.10.2019

Всем добрый день!

Никак не могу разобраться в чем проблема.

Есть ардуино мега 2560

пытаюсь исполнить код

void setup() {
  // put your setup code here, to run once:

}

void loop() {

  analogWrite(6, 60);
  analogWrite(44, 10);

}

И не работает.

Но если исполнять код с одинаковым значением то все пашет

например:

void setup() {
  // put your setup code here, to run once:

}

void loop() {

  analogWrite(6, 10);
  analogWrite(44, 10);

}

До этого игрался с регистрами таймеров.

Подскажите куда копать

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

Adaly пишет:

До этого игрался с регистрами таймеров.

Подскажите куда копать

в регистры таймеров

Adaly
Offline
Зарегистрирован: 22.10.2019

Тоесть они не сбрасываются при перезаливки скетча?

Просто допустим по частоте же они сбрасываются явно. Ну и собстно вопрос как вернуть все назад?

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

на Reset нажать. 

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

Ты ни здесь, ни на Амперке так и не можешь сформулировать, что именно не работает.  Нам нада гаднуть?  Вдруг угадаем чо...

Adaly
Offline
Зарегистрирован: 22.10.2019

Пробывал не проходит

Так же вешал на разные к таймерам которые не использовал результат тотже

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

кстате, pinMode(...) где?

Adaly
Offline
Зарегистрирован: 22.10.2019

Не работает шим если значения Value в функции analogWrite(Pin, Value) разные. Тоесть обрабатывается код для первого пина в коде но с неправильным значением(если быть точным то с значением второго пина по счету в коде, и второй пин вообще не выдает шима пустота). Но если значения одинаковые то все работает.

Так же этот код работает на Arduino Uno как положено но мне нужно больше портов с шимом.

Adaly
Offline
Зарегистрирован: 22.10.2019

pinMode не влияет на исполнение уже пробывал, просто свел к минимуму код.

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

PinMode настраивает ноги на ВЫВОД, по умолчанию они настроены на ввод.  Если на вывод не настроить, туда и выводиться ничего не будет.  Это раз.  

Во-вторых, осёл есть?  Что там на ногах происходит? 

Adaly
Offline
Зарегистрирован: 22.10.2019

DetSimen пишет:

PinMode настраивает ноги на ВЫВОД, по умолчанию они настроены на ввод.  Если на вывод не настроить, туда и выводиться ничего не будет.  Это раз.  

Во-вторых, осёл есть?  Что там на ногах происходит? 

Прям счас попробывал ничего не изменилось, буквально седня читал что для этой функции не обязательно прописывать пинмод. Опять же таки код работает как надо на ардуине уно но не на меге.

Осциллографа нет к сожалению, смотрю по светодиоду. 

Adaly
Offline
Зарегистрирован: 22.10.2019

Счас опробывал следующий код

void setup() {

  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  
}

void loop() {

  analogWrite(6, 70);
  analogWrite(7, 10);

}

Итог на 6 пине есть шим но со значением 7ого пина. а 7 пин не работает.

 

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

Ну, тада надо ждать взрослых.  Они подскажут, я пас. 

Komandir
Offline
Зарегистрирован: 18.08.2018

А если так:

void setup() {

  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  analogWrite(6, 70);
  analogWrite(7, 10);
}

void loop() {

}

 

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

точно, он же в loop заново передергивается.  Потому и не работает.  Надо с вечера меньше пить мне. :( 

Adaly
Offline
Зарегистрирован: 22.10.2019

Komandir пишет:

А если так:

void setup() {

  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  analogWrite(6, 70);
  analogWrite(7, 10);
}

void loop() {

}

 

эффект тот же что и в предыдущем ответе.

Adaly
Offline
Зарегистрирован: 22.10.2019

DetSimen пишет:

точно, он же в loop заново передергивается.  Потому и не работает.  Надо с вечера меньше пить мне. :( 

Увы я этот вариант и раньше пробывал. он ничем не отличается =(

Adaly
Offline
Зарегистрирован: 22.10.2019

Самое не понятное для меня почему он берет значение не из своей строки... Так бы можно было бы грешить на таймеры. Но так как значение не свое я вообще не понимаю.

Komandir
Offline
Зарегистрирован: 18.08.2018

В протеусе всё работает. Может КЗ на плате ?

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

без осла трудно понять, что там происходит.  Значения ШИМ 10 и 70 на глаз, по светлодиодику, не отличишь 

Adaly
Offline
Зарегистрирован: 22.10.2019

DetSimen пишет:

без осла трудно понять, что там происходит.  Значения ШИМ 10 и 70 на глаз, по светлодиодику, не отличишь 

легко я просто менял значения оба на 70 и гораздо ярче светит

Komandir
Offline
Зарегистрирован: 18.08.2018

сделай 5 и 250 - точно будет заметна разница

Adaly
Offline
Зарегистрирован: 22.10.2019

Komandir пишет:

сделай 5 и 250 - точно будет заметна разница

Да там и так видно там лента диодная и хорошо заметна разница даже между 10 и 70

Adaly
Offline
Зарегистрирован: 22.10.2019

Komandir пишет:

В протеусе всё работает. Может КЗ на плате ?

 

Как проверить?

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

Adaly пишет:

Да там и так видно там лента диодная

А чего мы ещё не знаем? 

Adaly
Offline
Зарегистрирован: 22.10.2019

DetSimen пишет:

Adaly пишет:

Да там и так видно там лента диодная

А чего мы ещё не знаем? 

Вопрос не в этом вопрос в том почему код обрабатывается не правильно. И почему если заменять на уно то все пашет.

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

Да?  Ну ладно...

Adaly
Offline
Зарегистрирован: 22.10.2019

DetSimen пишет:

Да?  Ну ладно...

Код и подключение верны так как ни раз проверялось помимо меги на nodemcu, arduino uno, а вот на mega запускаться не хочет.

Adaly
Offline
Зарегистрирован: 22.10.2019

Общая схема стоит ардуинка далее подключена к транзисторам 3034 выводы которых коммутируют ленты.

Gate подключен через резистор и подтягивается на землю. Ленты питаются от 12 вольт. Земля соединена. 

Ардуино мега такая

На текущий момент тестов используется в положении DIP переключатели 3 4 ON

Table DIP- Switch:
 
Connection                                                                                       DIP
                                                                 1            2           3             4            5             6              7
ATmega2560<->ESP8266                         ON         ON        OFF       OFF        OFF        OFF          OFF
USB <->ATmega2560                               OFF        OFF       ON        ON         OFF        OFF          OFF
USB<->ESP8266 (Update firmware or sketch) OFF  OFF       OFF       OFF        ON         ON           ON
USB<->ESP8266 (communication)            OFF        OFF       OFF       OFF        ON         ON           OFF
All independent                                        OFF        OFF       OFF       OFF        OFF        OFF          OFF

Uno на которой тоже тестировал подобного рода. на ней все ок.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Adaly пишет:

Вопрос не в этом вопрос в том ...

Вопрос в том, что Вы выносите нам мозг не показав ни реального кода, ни реальной схемы.

Adaly пишет:

Код и подключение верны 

Ну, тогда всё работает нормально, расходимся.

Adaly
Offline
Зарегистрирован: 22.10.2019
asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

DetSimen пишет:

PinMode настраивает ноги на ВЫВОД, по умолчанию они настроены на ввод.  Если на вывод не настроить, туда и выводиться ничего не будет.  Это раз.  

Во-вторых, осёл есть?  Что там на ногах происходит? 

 

pinMode() для analogWrite() настраивать не требуется поскольку используется выход таймера, а порт отключается от пина.

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Adaly пишет:

Общая схема стоит ардуинка далее подключена к транзисторам 3034 выводы которых коммутируют ленты.

Gate подключен через резистор и подтягивается на землю. Ленты питаются от 12 вольт. Земля соединена. 

 

Отключите ленты и подключите к пинам осциллограф. Если такого нет, то обычный светодиод через резистор 100-500 ом

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

asam пишет:

pinMode() для analogWrite() настраивать не требуется поскольку используется выход таймера, а порт отключается от пина.

Да, вполне вероятно, шо так и есть. 

Adaly
Offline
Зарегистрирован: 22.10.2019

asam пишет:

Adaly пишет:

Общая схема стоит ардуинка далее подключена к транзисторам 3034 выводы которых коммутируют ленты.

Gate подключен через резистор и подтягивается на землю. Ленты питаются от 12 вольт. Земля соединена. 

 

Отключите ленты и подключите к пинам осциллограф. Если такого нет, то обычный светодиод через резистор 100-500 ом

тоже самое. ничего не меняется даже если делать через библиотеку PWM.h 

b707
Offline
Зарегистрирован: 26.05.2017

Adaly пишет:

тоже самое. ничего не меняется даже если делать через библиотеку PWM.h 

а если взять другую мегу? - может вы эту уже подпалили 

или хотя бы другие комбинации пинов?

Adaly
Offline
Зарегистрирован: 22.10.2019

b707 пишет:

Adaly пишет:

тоже самое. ничего не меняется даже если делать через библиотеку PWM.h 

а если взять другую мегу? - может вы эту уже подпалили 

или хотя бы другие комбинации пинов?

на видео подключаю эти же ленты к uno работает как надо а также работают с Nodemcu просто нужно было заменить на nodemcu на arduino из за частоты шима что бы избежать свиста