Buongiorno cari amici, ho un problema e spero che qualcuno possa farmi luce, io sono un radioamatore e stavo costruendo un bel ricetrasmettitore, ho avuto la malsana idea di usare per lo scambio dei filtri hf un arduino mega e un display nextion.
Il programma da me scritto molto semplice funziona su arduino uno e su arduino nano, ma non su uno rev 4 e su arduino mega, la trasmissione da arduino al display invece funziona perfettamente ma non la ricezione dei tasti, quindi escluderei a priori un errore di cablaggio, vorrei usare la seriale 0 per comodità, ma lo stesso problema succede anche con serial1 e 2, il display riceve da arduino ma non trasmette l'evento.
Ps. abbiate pietà di me, non sono un programmatore e mi scuso preventivamente per eventuali errori
Grazie Luca
#include <Nextion.h>
#include <EasyNextionLibrary.h>
EasyNex myNextion ( Serial );
//#include <avdweb_AnalogReadFast.h>
//#if defined(__arm__)
//analogReadResolution(10);
//#endif
#include "DHT.h"
#define DHTPIN 5
#define DHTTYPE DHT11
DHT dht ( DHTPIN, DHTTYPE );
unsigned int potenza = 0;
unsigned int swr = 0;
int temperatura = 0;
unsigned int amp = 0;
unsigned int tensione = 0;
unsigned int swr1 = 0;
// NexWaveform s0 = NexWaveform(0,19,"s0"); //inizializza il grafico
NexButton b80 = NexButton ( 0, 5, "b7" );
NexButton b40 = NexButton ( 0, 4, "b6" );
NexButton b20 = NexButton ( 0, 3, "b5" );
NexButton b1517 = NexButton ( 0, 2, "b4" );
NexButton b1012 = NexButton ( 0, 30, "b3" );
NexButton b6 = NexButton ( 0, 29, "b2" );
NexButton bstart = NexButton ( 0, 12, "b1" );
//NexButton breset = NexButton(0, 25, "b5");
NexTouch *nex_list[] = {
&b80,
&b40,
&b20,
&b1517,
&b1012,
&b6,
&bstart,
NULL
};
void setup() {
dht.begin(); //inizializza il sensore di temperatura dht11
pinMode ( 13, OUTPUT );
pinMode ( 20, OUTPUT );
pinMode ( 19, OUTPUT );
pinMode ( 18, OUTPUT );
pinMode ( 17, OUTPUT );
pinMode ( 16, OUTPUT );
pinMode ( 15, OUTPUT );
pinMode ( 40, OUTPUT ); //disconnettore RX
pinMode ( 42, OUTPUT );
pinMode ( 44, OUTPUT );
pinMode ( 46, OUTPUT );
pinMode ( 48, OUTPUT );
pinMode ( 50, OUTPUT );
digitalWrite ( 13, LOW );
nexInit();
b80.attachPop ( accensione80, &b80 );
b40.attachPop ( accensione40, &b40 );
b20.attachPop ( accensione20, &b20 );
b1517.attachPop ( accensione1517, &b1517 );
b1012.attachPop ( accensione1012, &b1012 );
b6.attachPop ( accensione6, &b6 );
bstart.attachPop ( start, &bstart );
pinMode ( 9, OUTPUT ); // uscita alimentazione
myNextion.begin ( 9600 );
}
void loop() {
myNextion.writeNum ( "j3.val", 50 );
delay ( 10 );
int temperatura = dht.readTemperature();
// myNextion.writeNum("j3.val", temperatura);
// myNextion.writeNum("x3.val", temperatura);
nexLoop ( nex_list );
}
void accensione80 ( void *ptr ) {
digitalWrite ( 17, HIGH );
digitalWrite ( 46, HIGH );
digitalWrite ( 13, HIGH );
}
void accensione40 ( void *ptr ) {
digitalWrite ( 15, HIGH );
digitalWrite ( 48, HIGH );
}
void accensione20 ( void *ptr ) {
digitalWrite ( 16, HIGH );
digitalWrite ( 50, HIGH );
}
void accensione1517 ( void *ptr ) {
// digitalWrite(18,HIGH);
digitalWrite ( 50, HIGH );
}
void accensione1012 ( void *ptr ) {
// digitalWrite(19,HIGH);
digitalWrite ( 50, HIGH );
digitalWrite ( 13, HIGH );
}
void accensione6 ( void *ptr ) {
digitalWrite ( 20, HIGH );
digitalWrite ( 50, HIGH );
digitalWrite ( 13, HIGH );
}
void start ( void *ptr ) {
digitalWrite ( 13, HIGH );
}
Ho sistemato, per renderlo più leggibile, il tuo codice. La prossima volta utilizza la funzione di formattazione autometica dell'IDE. Grazie. - gpb01