Nextion display code via arduino usb uploaden.

algemene C code
Berichten: 14
Geregistreerd: 09 Mrt 2019, 14:31

Nextion display code via arduino usb uploaden.

Berichtdoor KlaasdeVries » 15 Mrt 2019, 10:08

Ik heb een nextion display aangesloten op pin 12 en 13 van de arduino. Nu wil ik de code van de nextion updaten via de usb/seriële poort van de arduino. Ik heb hiervoor de volgende code in de arduino geladen:

Code: Alles selecteren
#include <SoftwareSerial.h>
SoftwareSerial nexSerial(13,12);

void setup() {
  // initialize both serial ports:
  Serial.begin(9600);
  nexSerial.begin(9600);
}

void loop() {
  // read from nexSerial, send to Serial:
  int inByte1 = nexSerial.read();
  Serial.write(inByte1);

  // read from Serial, send to nexSerial:
  int inByte2 = Serial.read();
  nexSerial.write(inByte2);
}

Alleen dit werkt jammer genoeg niet. Is dit überhaupt mogelijk en zo ja hoe?

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Nextion display code via arduino usb uploaden.

Berichtdoor Koepel » 15 Mrt 2019, 11:14

Je gaat me toch niet vertellen dat je net zo dom bent als ik, door het in een kastje in te bouwen en je niet meer bij de Nextion connector kunt ? :lol:

Het kan met een Arduino Uno, maar het lukt nauwelijks en het duurt lang.

Code: Alles selecteren
void loop()
{
  if( Serial.available())
    nexSerial.write( Serial.read());
  if( nexSerial.available())
    Serial.write( nexSerial.read());
}


Zet de Nextion Editor bij het uploaden op 9600.

Ik gebruik niet de SoftwareSerial, maar de AltSoftSerial. Die heeft vast pinnen voor RX en TX. Ik gebruik 38400 baud. Dat is lastig voor elkaar te krijgen, dus je kunt beter op 9600 baud blijven. Het uploaden heb ik in mijn normale sketch verwerkt. Met een knop op het scherm zet ik de Arduino klaar voor het uploaden. Mijn loop() is dus te langzaam, daarom heb ik die vier regels code in een "while(true)" loop.

Berichten: 14
Geregistreerd: 09 Mrt 2019, 14:31

Re: Nextion display code via arduino usb uploaden.

Berichtdoor KlaasdeVries » 15 Mrt 2019, 12:01

Koepel schreef:Je gaat me toch niet vertellen dat je net zo dom bent als ik, door het in een kastje in te bouwen en je niet meer bij de Nextion connector kunt ? :lol:
Gelukkig ben ik dus niet de enige :D

Ik heb het nu met jouw stukje code geprobeerd. Maar krijg hierbij dezelfde melding van nextion: Connection failed Forced interrupt! :-(

[edit]
Als ik vanuit de serial monitor zelf een connect stuur krijg ik netjes antwoord terug (comok 1,37697-0,NX3224T024_011R,99...... etc). Software in de arduino werkt dus. Alleen de nextion sofware ziet de verbinding niet.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Nextion display code via arduino usb uploaden.

Berichtdoor Koepel » 15 Mrt 2019, 14:41

Heb je in de Nextion Editor bij het uploaden de baudrate ingesteld ?

De Nextion Editor doet een paar testen waarbij de timing belangrijk is. Dat ik het werkend kreeg is meer geluk dan wijsheid.

Kun je AltSoftSerial proberen ?
Dan zit de TX op pin 9, en RX op pin 8, en de PWM op pin 10 is niet meer te gebruiken (bij een Arduino Uno).
Timer1 wordt gebruikt, dus andere bibliotheken kunnen niet meer Timer1 gebruiken.

Als je pin 8 en 9 niet gebruikt dan mag je 12 en 13 met 8 en 9 verbinden. Dan kun je ofwel 12 en 13 gebruiken, ofwel 8 en 9. Zolang de ongebruikte pinnen ook echt nooit gebruikt worden.

De SoftwareSerial heeft problemen dat binnenkomende data de uitgaande data kan verstoren. Misschien dat ook de SoftwareSerial beter werkt met 38400 baud.

Eventueel kan ik mijn stukje code opzoeken waarbij ik na veel proberen de baudrate heb kunnen verhogen naar 38400 (met AltSoftSerial).

Berichten: 14
Geregistreerd: 09 Mrt 2019, 14:31

Re: Nextion display code via arduino usb uploaden.

Berichtdoor KlaasdeVries » 15 Mrt 2019, 16:20

Ja ik heb de Nextion Editor ingesteld op 9600. Maar desondanks gaat hij toch nog verschillende snelheden testen. En AltSoftSerial proberen zal moeilijk gaan. Alle pin zijn in gebruik. En de arduino zit op een print gesoleerd. Dus even een draadje omzetten gaat ook niet. Ik heb het mijzelf dus knap lastig gemaakt :-(

Ik heb alle snelheden al geprobeerd. En 9600 was de enige waarbij ik ook werkelijk de connection string te zien kreeg met de serial monitor. De Nextion Editor reageerde helaas op geen van de snelheden.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Nextion display code via arduino usb uploaden.

Berichtdoor Koepel » 15 Mrt 2019, 20:58

Dat wordt lastig.

Er is nog een derde mogelijkheid: https://github.com/SlashDevin/NeoSWSerial.

Heb je een Arduino Uno?
Kun je pin 0 en 1 tijdelijk verbinden met 12 en 13 ? Dan zou je de ATmega328P kunnen uitschakelen met een lege setup() en lege loop() functie en alleen de usb-serial chip van de Arduino Uno gebruiken.

Berichten: 14
Geregistreerd: 09 Mrt 2019, 14:31

Re: Nextion display code via arduino usb uploaden.

Berichtdoor KlaasdeVries » 16 Mrt 2019, 10:36

Weet zo niet of dat ook voor een mega gaat werken. Zal het eens proberen. En als het niet werkt heb ik alvast een Micro SD Card Extender besteld :-)

In ieder geval bedankt voor de hulp.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Nextion display code via arduino usb uploaden.

Berichtdoor Koepel » 16 Mrt 2019, 12:29

Heb je een Arduino Mega 2560 board ?
Die heeft drie extra hardware seriële poorten. Als je die pinnen voor het Nextion display had gebruikt dan had je al die problemen met een softwarematige seriële poort niet gehad.

Berichten: 14
Geregistreerd: 09 Mrt 2019, 14:31

Re: Nextion display code via arduino usb uploaden.

Berichtdoor KlaasdeVries » 16 Mrt 2019, 20:31

Ja dat was het eerste foutje. Ik heb een teken foutje maakt in het print ontwerp. In plaats van 14 en 15 heb ik niet goed geteld en het aangesloten op 12 en 13 :-(

Maar gelukkig was dit softwarematig op te lossen. En dat had ik eigenlijk ook gehoopt met het display. En dat had eigenlijks ook moeten werken. Want als ik alle opdrachten (https://nextion.itead.cc/2017/12/08/nex ... ocol-v1-1/) in de serial monitor uitvoer werkt het ook. Alleen de upload optie van nextion kan er blijkbaar niet mee overweg.

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 7 gasten