Stránka 1 z 1

Do Arduina Mega 2560 nejde nahrát program

Napsal: 17 lis 2021, 07:46
od Batata
Zdravím,
mám Arduino mega originál 2560, a nejde mi do něj nahrát program.
Mám tento kód:

Kód: Vybrat vše

// Grafický LCD display 128x64
// řadič ST7920

// připojení knihovny U8glib
#include "U8glib.h"

// nastavení propojovacích pinů
#define EN 13
#define RW 12
#define RS 11

// inicializace OLED displeje z knihovny U8glib
U8GLIB_ST7920_128X64_1X lcd(EN, RW, RS);

// proměnná pro uchování času poslední obnovy displeje
long int prepis = 0;

void setup(void) {
  // nastavení bílé barvy pro výpis
  if ( lcd.getMode() == U8G_MODE_R3G3B2 ) {
    lcd.setColorIndex(255);
  }
  // nastavení maximální intenzity svitu
  else if ( lcd.getMode() == U8G_MODE_GRAY2BIT ) {
    lcd.setColorIndex(3);
  }
  // nastavení viditelnosti pixelů
  else if ( lcd.getMode() == U8G_MODE_BW ) {
    lcd.setColorIndex(1);
  }
  // pro otočení displeje o 180 stupňů
  // stačí odkomentovat řádek níže
  // lcd.setRot180();
}

void loop(void) {
  // porovnání uloženého a aktuálního času,
  // při rozdílu větším než 100 ms se provede
  // obnovení displeje, čas můžeme nastavit dle potřeby
  if (millis()-prepis > 100) {
    // následující skupina příkazů
    // obnoví obsah OLED displeje
    lcd.firstPage();
    do {
      // funkce vykresli vykreslí žádanou obsah
      vykresli();
    } while( lcd.nextPage() );
    // uložení posledního času obnovení
    prepis = millis();
  }
  
  // zde je místo pro další příkazy pro Arduino
  
  // volitelná pauza 10 ms pro demonstraci
  // vykonání dalších příkazů
  delay(10);
}
// funkce vykresli pro nastavení výpisu informací na OLED
void vykresli(void) {
  // nastavení písma, toto písmo umožní vypsat
  // přibližně 15x4 znaků
  lcd.setFont(u8g_font_unifont);
  // nastavení pozice výpisu v pixelech
  // souřadnice jsou ve tvaru x, y
  // souřadnice 0, 0 je v levém horní rohu
  // OLED displeje, maximum je 128, 64
  lcd.setPrintPos(0, 10);
  // výpis textu na zadanou souřadnici
  lcd.print("Arduino navody");
  lcd.setPrintPos(0, 25);
  lcd.print("dratek.cz");
  lcd.setPrintPos(0, 40);
  lcd.print("Cas od zapnuti:");
  lcd.setPrintPos(40, 55);
  lcd.print(millis()/1000);
  lcd.print(" vterin");
}
Jde o vzorový příklad ze stránky dratek.cz, k LCD 128x64.
Pokud zkusím nahrát program, tak mi to zkompiluje, ale při nahrávání to vypíše toto:

avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "C:\Users\*******\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

Using Port : COM51
Using Programmer : wiring
Overriding Baud Rate : 115200
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

avrdude done. Thank you.

Nastala chyba při nahrávaní projektu.
Nevím si rady, co s tím, zkusil jsem přeinstalovat ovladač, restartovat Windows, a podobně.

Re: Do Arduina Mega 2560 nejde nahrát program

Napsal: 17 lis 2021, 08:58
od AstroMiK
Takhle ti asi nikdo neodpoví.
Málo informací.

Zkus doplnit odpovědi na následující otázky:

1) Už tam někdy něco nahrát šlo, nebo je to úplně první použití Arduina MEGA?

2) Nahráváš přes USB, nebo přes 6-pinový ISP konektor?

3) Máš správně zvolený typ procesoru v menu?

4) Zkoušel jsi nahrát program do samotného Arduina, nebo k němu máš už připojené periférie (displej ...)?

5) Zkusil jsi mačkat RESET v okamžiku startu nahrávání?



Tady je pár nápadů, jak řešit podobné problémy:
https://bastlirna.hwkitchen.cz/reseni-p ... a-arduino/

Re: Do Arduina Mega 2560 nejde nahrát program

Napsal: 17 lis 2021, 09:17
od kiRRow
Mě dost zaráží ti vysoké číslo COM portu. Už jsem zažil, že některé programy blbnuli, nebo neuměli používat COM s číslem vyšším než 8.

Re: Do Arduina Mega 2560 nejde nahrát program

Napsal: 17 lis 2021, 12:34
od Hanz
vyzkoušel jsem zkompilovat a nahrát program přes usb do samostatné megy bez lcd.
nahrál se mi bez problémů, printscreen nastavení zde :
Obrázek

Re: Do Arduina Mega 2560 nejde nahrát program

Napsal: 17 lis 2021, 15:59
od Batata
Toto Arduino Mega už mám asi pět měsíců, dosud fungovalo výborně. displej jsem odpojit zkoušel, zkoušel jsme nahrát program přes Arduino jako ISP, a to šlo. Myslel jsem si, že jde o poruchu USB převodníku ATMEGA16u2, ale Arduino se do PC hlásí jako Arduino Mega 2560. Ještě k tomu portu, to Arduino mělo vždy tak vysoké číslo.

Re: Do Arduina Mega 2560 nejde nahrát program

Napsal: 18 lis 2021, 02:07
od Caster
Nahraj IDE na PC kámoše a zkus to tam. Tak vysoké číslo COM portu je nesmysl a nějaká chyba či vir na tvém PC.

Re: Do Arduina Mega 2560 nejde nahrát program

Napsal: 18 lis 2021, 10:16
od ondraN
Zkus do něj nahrát přes ISP nějaký kód, který něco vysílá na sériovém portu. Pak ho zapoj přes USB a na sériovém monitoru zkontroluj, jestli to posílá. Pokud ano, tak je USB čip v pořádku. Dále bych zkusil přes ISP nahrát bootloader.
To vysoké číslo USB je možná dané tím, že to je zapojené přes rozbočovač. Zkusil bych připojení na jiný USB port přímo.

Re: Do Arduina Mega 2560 nejde nahrát program

Napsal: 20 lis 2021, 05:29
od Batata
Děkuji za radu. Arduino na sériovou linku normálně vypisuje to, co má. Nahrát program do něj ale ani tak nejde, což zase tak moc nevadí, pokud se využije v nějakém projektu, tak se do něj může jednoduše nahrát program přes Arduino as ISP a potom se to stejně nebude programovat.

Re: Do Arduina Mega 2560 nejde nahrát program

Napsal: 20 lis 2021, 05:37
od Batata
Ještě jednou DĚKUJI!!! Otestoval jsem sériovou linku, fungovala na obě strany. Potom jsme chvíli přemýšlel, jestli není chyba v tom čipu ATMEGA2560, a nakonec mě podle rady napadlo vypálit bootloader, a Arduino funguje zcela normálně, jako dřív.