Arduino

Indította gaben, 2025 február 03, 18:09

Előző téma - Következő téma

cgtvuc9v

A kolloid készülékeken így töltöm fel a tartalmat, mert amikor elszálltak az arduino modulok árai és sikerült vásárolnom panelokat, amiken ATmegák voltak, kedvezőbb lett az ár.
Mellékelt képen a lábak, amin keresztül töltöm fel a programot.

Nem kell módosítani a pineket a kódban, mert az Arduino IDE elvégzi ezt.
A feltöltéshez válaszd az "Arduino as ISP" módot, persze előtte az UNO-ra töltsd rá a példákból az ArduinoISP-t. Állítsd be az ATmega328-at a feltöltéshez.

Program feltöltése az ISP bekötés szerint:
MOSI - UNO Pin 11 → ATmega Pin 17
MISO - UNO Pin 12 → ATmega Pin 18
SCK - UNO Pin 13 → ATmega Pin 19
RESET - UNO Pin 10 → ATmega Pin 1
GND és VCC +5V bekötése is kell.

Ha nem indulna el a feltöltés, akkor a VCC és RESET láb közé egy 10K ellenállás.

Csak az ATmega feltöltéséhez szükséges a kristály és a két lábán 1-1 22pF kondenzátorral a GND-re.

  

ihvhgd64x

A feltöltéssel nincs gond.
Az a kérdés, ha a kopasz atmegán a 22-es és a 23-as lábat akarom használni akkor az arduino ide programba minek deklaráljam?

cgtvuc9v

ha UNO-ként írtad meg a programot, akkor UNO lábkiosztás szerint fogja csinálni. Ha csak mint chipet külön akarod használni, akkor a programban saját magad döntöd el, hogy melyik lábnak mi lesz a funkciója.

cgtvuc9v

bocsi, nem írtad meg, hanem UNO-ra fordítottad le a programot.  este van... :)

gaben

Na szóval folytatva a másik topikban nyitott beszélgetést, hogy az a nyamvadt Nextion kijelző végre azt csinálja amit az Arduino mond neki. [#vigyor]


#include <Nextion.h>

// Serial1 port a Nextion kijelző kommunikációjához
#define nexSerial Serial1

void setup() {
    Serial.begin(9600);               // Soros monitor inicializálása
    nexSerial.begin(9600);            // Nextion kommunikáció (Serial1)
    Serial.println("Nextion inicializálva a Serial1-en.");
   
    // Küldj egy teszt parancsot a kijelzőnek
    sendTextToNextion("t_status", "Arduino teszt szöveg");

    // Várjunk egy kicsit, majd ellenőrizzük a kijelző válaszát
    delay(500);
    checkNextionResponse();
}

void loop() {
    // Ebben a tesztben nincs szükség folyamatos eseményekre
}

// Parancs küldése a Nextion kijelző komponensének
void sendTextToNextion(String component, String text) {
    String command = component + ".txt=\"" + text + "\"";
    nexSerial.print(command); // Küldi a parancsot a kijelzőnek
    nexSerial.write(0xFF);    // Parancs lezárása
    nexSerial.write(0xFF);
    nexSerial.write(0xFF);

    // Debug kiírás a soros monitorra
    Serial.print("Küldött parancs: ");
    Serial.println(command);
}

// Kijelző válaszainak ellenőrzése
void checkNextionResponse() {
    Serial.println("Kijelző válasz ellenőrzése...");
    while (nexSerial.available()) {
        Serial.print("Kijelző válasz: ");
        Serial.println(nexSerial.read(), HEX);
    }
}



Itt most csak a tesztszöveget próbálnám kiíratni az adott text ablakba, de nem csinál semmit a nextion a fizikai kijelzőn.
Viszont a nextion debuggerében frankón kiírja ha manuálisan írom be a parancsot.

  

zwnavt8rw

a \ jelet külön add hozzá  "\"" így az elején és a végén

zwnavt8rw

amit még tehetsz, hogy tényleg a oda vissza soros-t lásd
usb TTL rs232 átalakító ftdi vagy cp vagy valami kínai..

RX  lábat 1-1- diódán keresztül rákötöd a soros RX TX re
így az oda vissza közlekedőt látod terminálban, nem pedig egy külön kiíratva, ami sokszor baromira nem ugyan az mint ami egyébként kimegy
diódák leválasztják egymástól a két vonalat így nincs kavarodás, de mindent látsz..

gaben

Ezt így megeszi az arduino IDE, ha máshogy írom, akkor nem.
Lehet még egy kicsit szórakozok vele, de már kezdem unni a dolgot, szóval valszeg váltás lesz egy komolyabb és kompaktabb Arduino-ra, mert ez a 2 eszköz valahogy nem akar együttműködni.
Ráadásul a nextion egy csomó műveletet nem akar végrehajtani, ez is a váltás mellett érvel.

Az új kiszemelt kombó, az Arduino GIGA R1 WiFi  és Arduino GIGA Display Shield.

    

zwnavt8rw

mega328 az az egy sima ardu proci, amit felraktam egy saját panelre, olvas két modbus csatornát, abból kreál két pwm jelet kezeli a nextiont, és és külön kapacitiv touchot olvas be i2c-n
mert az egész nextion egy 6mm -es ragasztott üveg mögött van, hogy ne bassza szét a kezelő, így ügye a rezisztív touch kiesett...

~6-7 éve működik egy építőipari gépen...

szóval ja nem jó :)

gaben

Ügyes vagy, nekem egyelőre nem megy.

Na majd a többit privátban, mert attól még szeretném működésre bírni

zwnavt8rw

ha esetleg átküldöd magánba vagy ide felrakod a teszt kódodat ránézek... van nextion is mellettem, ardu is, ki is próbálom...

zwnavt8rw

közben néztem a az előző kódodat, felejtsd el a nextion.h libet
nem kell, mert ha azt használod, minden bizonnyal teljesen másképp kell meghívni mint ahogy én mondtam.

nem kell semmi várakozás sehova, írod olvasod...
amit írtam példát próbáld ki
csak baudrate legyen jó mindkét oldalt, és ha nincs messze egymástól a két eszköz told fel 115,2k-ra

menni fog!

nem annyira agysebészet a nextion, hogy kelljen hozzá lib...

zwnavt8rw

Bocs, szófosásom van :D

ez ha nyomkodod a reset-et akkor egyszer kiküldi a signal lost szöveget
és meg is jelenik
üres lapot létrehozol a nextion ban, feldobsz egy szövegmezőt, adsz neki valami fontot, utána ardura fel a kód, majd összedug a kettő, amikor nyomsz resetet kiírja...


int egyszer=0;

void setup() {
    Serial.begin(9600);               // Soros monitor inicializálása
 
}
void loop() {
  if ( egyszer ==0)
  {
sendtostring(String("t0.txt=") + String("\"") + String("Signal Lost") + String("\""));
egyszer=egyszer+1;
  }
}

void sendtostring(String str) { //a string küldése után 3 db 255 küldése nextionnak
  Serial.print(str);
  Serial.write(0xff);
    Serial.write(0xff);
  Serial.write(0xff);
}

gaben

köszi, de így sem írja ki a szöveget, na majd ebéd után írok privátot [#wave]

eayw6fwu

Régen Nextionoztam, de nekem úgy rémlik, hogy a távirat végén kell küldeni 3-szor dec255-öt(vagy 3x hexa 0xFF).