Arduino Mega 2560

alexdr
Offline
Зарегистрирован: 26.04.2014

Решил тоже приобщится к ардуино. Есть arduina Mega 2560 две штуки. Вопрос такой -

На USB стоит ATmega8U2 остальное все как на MEGA 2560 ,но что заметил ,вместо чипа 2560 стоит чип 1280 . В семерке определяется как Arduino Mega 2560. Простая заливка скетча мигающего светодиода прошла на ура и по разным ножкам. В программе выбирал именно Mega2560,но так как чмп стоит 1280 решил программе плату выставить Mega 1280. Послезагрузки скетча любого сразу вылезают ошибки. Так как правильно все для такой платы выставлять в программе? Да и самое смешное не работает LCD дисплей WH1602B ,как я только не крутил. Распайка по 6-ти проводам RS E D4 D5 D6 D7 ну и самособой питание и разрешение записи на землю. Но после заливки скетча (ножки все прописаны) на экране только квадратики в верхней строке. На второй ардуино проверял - все то же самое. Подсветки на индикаторе нет и я ее не подключал. Может не хватает тока по питанию от USB? Это пока не проверял от отдельного источника питания.  Но мое понимание может так как ардуина определяется как 2560 ,а чип стоит 1280 при заливке скетча он не рпавильно понимается чипом. Прошу вашей помощи!!! Фото пока нет ,так что выложить смогу позже.

плата типа такой ,только чип 1280  http://arduino.ua/img/hardware/ArduinoMega2560_r2_front.jpg

 

alexdr
Offline
Зарегистрирован: 26.04.2014

Прошу прощения за писанину с ошибками. Спешил однако!

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

то есть у вас одна плата ArduinoMega1280, а другая ArduinoMega2560, но обе опеределяются как 2560? Ну и работайте с обеими как с 2560, просто учитывайте, что памяти в одной из них в 2 раза меньше.

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

alexdr
Offline
Зарегистрирован: 26.04.2014

Платы у меня обе MEGA 2560 ,но на обоих стоят чипы ATmega1280. Как я понял просто урезали память(значит или клон или наши паяли). Пробовал и вариант который вы предлагали ,но все равно не работает. Сегодня попробовал припаять другой индикатор WH1602O ,но эффект тот же. Распаиваю так RS-pin50 / Enable-pin53 /DB4-pin24/DB5-pin25/DB6-pin22 /DB7-pin23. Код привожу как изменил:

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(50, 53, 24, 25, 22, 23);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

Еще раз все прозвонил на обрыв и проверил распайку,ошибок не нашел. Куда еще копать,я уже в ступоре!

alexdr
Offline
Зарегистрирован: 26.04.2014

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

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

Какой чип у дисплея - KS0066 или HD44780? В коде для них все одинаково, кроме одного значения в инициализации, возможно, библиотека это не учитывает.
Попробуй перед и после lcd.begin(16, 2); поставить delay(200);

 

alexdr
Offline
Зарегистрирован: 26.04.2014

Спасибо ,попробовал в программе изменить задержку. Но рузультат не поменялся ,только стало видно как как бы подмигивают все квадратики на индикаторе.А контрасность настроена потенциометром многооборотным ,так что там нормально все . Я пробовал и слабее делать ,информация не изменяется,кубики просто плавно теряют контрастность.

roman2712@mail.ru
Offline
Зарегистрирован: 16.01.2014

Распиновку проверьте или на другие выводы подключите. Провод другой возьмите...

alexdr
Offline
Зарегистрирован: 26.04.2014

Может загрузчик не подходит который залит в ардуино. Хотя сравнивали 2560 и1280 по ножкам все один в один у них.только объем разный. Подключать пробовал к разным ножкам и как в примерах и на свои ,результат один и тот же . Провода все тестром прозвонил ,целые и соответствуют распайке на схеме и то что написано в скетче.

 

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

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

alexdr
Offline
Зарегистрирован: 26.04.2014

Где взять другие библиотеки? у меня только одна есть в программе версии 1.0.5-r2.

Читал как-то человек мучался с подключением индикатора по I2C ,так у него только с 4-ой библиотекой заработало ,а остальные ну ни как.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

alexdr, а вы пробывали на другие пины включать? Попробуйте всё же посадить на стандартные пины 12, 10, 5,4,3,2

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

http://bit.ly/1itkE10

да, придется тупо скачивать каждую, удалять предыдущую, ставить эту и прописывать пины.

roman2712@mail.ru
Offline
Зарегистрирован: 16.01.2014

Стандартная библиотека из примеров ардуино точно рабочая. Плдключитесь к пинам как указано в примере к этой библиотеке.

Можете еще пины ардуина поверить, подключив к ним светодиоды (диоды будут в пол яркости гореть, если вывод на дисплей у вас будет в цикле. Из примера "Hello Word" задержку уберите.) 

 

alexdr
Offline
Зарегистрирован: 26.04.2014

dimax пишет:

alexdr, а вы пробывали на другие пины включать? Попробуйте всё же посадить на стандартные пины 12, 10, 5,4,3,2

Сажал и на стандартные ,не помогло . Пробовал LCD WH2004 поключать по его ножкам к ардуино ,тоже самое. Не понимаю ,ну не настолько же плата левак?!

alexdr
Offline
Зарегистрирован: 26.04.2014

Значит что проверил светодиодом при своей распайке-

пин 53 anable светодиод в полнакала коротко моргает

пин 50 RS  светодиод не горит

пин 24 DB4 светодиод ярко моргает короткими вспышками

пин 25 DB5  светодиод горит постоянно

пин 22 DB6 светодиод горит и еле заметно моргает(видимо импульсы короткие)

пин 23 DB7 светодиод коротко в полнакала моргает

вот так как-то. Смушает отсутствие мигания на 50-м пине,хотя может там импульс cовсем короткий и светодиод не успевает засветится.

roman2712@mail.ru
Offline
Зарегистрирован: 16.01.2014

правильно смущает. Померте напругу. Если совсем 0, то что то что то здесь не так... Переместите его на другую ногу.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

alexdr,  если в соединениях уверены, то возможно это всё от кривости платы. Можно попробывать скомпилить прошивку для 1280, и влить программатором. А вообще я б на вашем месте сдал обратно эту плату. В любом случае это не дело, когда продают как  2560, а стоит другой контроллер. Хоть они и схожи, но глюков можно наловить таких, что мало не покажется.

alexdr
Offline
Зарегистрирован: 26.04.2014

roman2712@mail.ru пишет:

правильно смущает. Померте напругу. Если совсем 0, то что то что то здесь не так... Переместите его на другую ногу.

Завтра проверю осциллографом что там идет на этой ножке. Светодиодом можно и не увидеть короткого импульса. Хотя когда заливаю скетч для свето диода для этой ножки ,то все работает на ура. Так же проверял и другим которые использую. Видимо есть какая-то кривизна платы (не думаю что рук).

alexdr
Offline
Зарегистрирован: 26.04.2014

dimax пишет:

alexdr,  если в соединениях уверены, то возможно это всё от кривости платы. Можно попробывать скомпилить прошивку для 1280, и влить программатором. А вообще я б на вашем месте сдал обратно эту плату. В любом случае это не дело, когда продают как  2560, а стоит другой контроллер. Хоть они и схожи, но глюков можно наловить таких, что мало не покажется.

Согласен с вами. Так как по работе связан с электроникой ,то чтобы так сложно было подключить LCD даже и не верится. У остальных смотрю все идет на ура.Будем думать .

А как прошивку влить для 1280 ? Это лить в USB микруху ATmega8U2 ?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

alexdr, нет, скомпилированный скетч лить не в 8u2,  а в 1280, (разъём для программатора  рядом с ресетом). Вам стоит это сделать, ибо бессмысленно лазить осциллографом по ножкам, что бы там вы не увидели  -это скорее всего ни о чём не скажет.. Кстати, если будете шить -то отключите дисплей от ног 50...53, они запаралелены с тем разъёмом, и используются при программировании. Можно ещё попробывать зашить бутьлоадер от 1280, т.к. наверняка там зашит от 2560, поэтому и ругается при выборе 1280 в настройках платы.

alexdr
Offline
Зарегистрирован: 26.04.2014

Спасибо за инфо. Только я с програмированием не очень. Где взять скетч для 1280 и где взять бутлоадер для 1280 ? Заливать как я понял придется и скетч и бутлоадер в 1280? Значит нужен программатор для внутрисхемного под AVR. А при программировании USB шнур в компе должен торчать или надо подавать на разъем питания или через разъем за программирования питание подается?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

alexdr, (1) выражение "скетч для 1280" не очень корректно,  вам нужно взять тестовый скетч для LCD, скомпилировать его под выбранный в меню  Ардуино Мега (мега1280) и зашить через программатор в ардуино. Вариантов как это сделать как минимум 2. Через сам интерфейс ардуино, и не пользуясь им. Первый вариант гораздо легче, при условии, что ваш программатор есть в меню выбора программатора. Можно залить как прошивку, так и бутлоадер практически не озадачиваясь ничем. Бутлоадер есть непосредственно в папке с программой, если заливать по первому способу, но его находить не нужно, нужный бутлоадер сам зальётся. (Кстати изучите все меню программы ардуино, многое прояснится) Если программатора в списке программаторов нет, то это не значит что уже сделать нельзя, можно его туда добавить, взяв всю необходимую информацию из инета. Второй вариант -вручную запускать программу для прошивки, вручную выбирать многочисленные опции, это для новичка несравнимо сложнее. (2) питать или нет плату ардуино при прошивке зависит от программатора. Если он даёт питание, то питать плату не обязательно. Если вы никогда ничего подобного не делали, лучше сперва проштудировать мануалы (гугль в помощь).

 

alexdr
Offline
Зарегистрирован: 26.04.2014

Честно говоря не понял немного чем компилировать ,чтобы из скетча создать НЕХ файл.И бутлоодер как сделать чтобы его тоже залить через программатор .Но это будет решение только для LCD если получится ,а как быть с остальными скетчами,например серво? Заливать так понял надо применяя внутрисхемный программатор для АVR.

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

alexdr, в предыдущем сообщениии я акцентировал момент что нужно ознакомится с интерфейсом программы Arduino IDE. Вы ознакомились?  При работе по "лёгкому" варианту ответы на первые два вопроса находятся в меню программы.  <<Загрузить с помощью программатора>> и  <<записать загрузчик>>. По поводу остальных скетчей - станет ясно после успешности первых двух эксперементов. Если корень зла в бутлоадере от другого контроллера, то по идее перезаписав правильный всё будет хорошо. Но это пока догадка.

alexdr
Offline
Зарегистрирован: 26.04.2014

Dimax, большое спасибо за подсказки. Вот что сделал.

Попытался одну из плат сделать ISP программатором,скетч как ни странно залился и работал(смотрел по светодиодам подключенным к соответствующим пинам ардуино. Спаял кабель для прошивки и подсоединил им другую ардуино . В программе выбрал Arduino Mega 1280 и нажал загрузить загрузчик . Процесс пошел и о чудо LCD индикатор ожил и стал писать hello world. Потом уже в прошитую ардуино залил скетч ICP программатора и так же перепрошил вторую плату . И она тоже ожила. Попробовал сразу собрать измеритель температуры на LM35DZ и все сразу заработало. Вот такие чудеса. Да входную микросхему на USB (ATmega8U2) не обновлял прошивку ,так что виндой плата ардуино определяется как и раньше 2560 ,но на работу это уже не влияет.

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

alexdr, поздравляю ! С определением платы виндой -да, можно оставить как есть, . Тем более что прошивки для старой меги под 8u2 скорее всего нет.