OM/YL Online  

   

Login  

   

donazione  

 
   Donazione a sostegno e per lo
      sviluppo
del Club Italiano
                Modi Digitali
               Psktrentunisti

   

MultiTrans  

   
   
Benvenuto, Ospite
Nome utente: Password: Ricordami

ARGOMENTO: Sostituzione controller Yaesu con display Nextion

Sostituzione controller Yaesu con display Nextion 11 Mesi 2 Settimane fa #1692

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 573
  • Ringraziamenti ricevuti 102
  • Karma: 44
Ciao Mitico!!
In realtà a questi display puoi far fare qualunque cosa... il problema è riuscirci... :P
Ma essendo collegato ad un Arduino puoi certamente dire ad Arduino (dotato di seriale) di "informare" il PC dei dati che riceve. Ho iniziato da poco ad usare i display Nextion e non sono così preparato per risponderti su due piedi.
Come saprai meglio di me, i Nextion nascono dalla necessità di poter alleggerire i software, in quanto tutto ciò che è grafica e invio dei dati touchscreen, è a carico del display invece che scritto sul software di Arduino.
Nel mio caso ho solo messo due relè che fanno le veci dei pulsanti CW e CCW del controller originale. Eliminato il secondo potenziometro di riferimento con tutti gli ingranaggini plasticosi (e rumorosi). Ora sono alla ricerca di un trasformatore come quello montato sul controller in modo da riassemblare l'originale per metterlo nell'armadio e inscatolare il mio.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Sostituzione controller Yaesu con display Nextion 11 Mesi 2 Settimane fa #1693

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 573
  • Ringraziamenti ricevuti 102
  • Karma: 44
Inserita la quarta pagina in cui controllerò l'elevazione della direttiva V/Uhf... Appena riuscirò a rimontarla... :unsure:[
Allegati:
  • Allegato Questa immagine è nascosta ai visitatori. Prego accedi o registrati per visualizzarli.
Ultima modifica: 11 Mesi 2 Settimane fa da IZ3ZLU.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Sostituzione controller Yaesu con display Nextion 11 Mesi 1 Settimana fa #1698

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 573
  • Ringraziamenti ricevuti 102
  • Karma: 44
Layout migliorato nella visibilità.
La scritta ABBATTIBILE appare solo in determinati gradi di rotazione e indica che l'antenna in quel punto si può calare sul traliccio. Molto comodo in caso di vento sistemare in uno di quei punti l'antenna senza dover scendere e controllare prima di tirarla giù.

Questa immagine è nascosta ai visitatori. Prego accedi o registrati per visualizzarli.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Sostituzione controller Yaesu con display Nextion 11 Mesi 2 Giorni fa #1702

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 573
  • Ringraziamenti ricevuti 102
  • Karma: 44
Iniziato il montaggio sul suo contenitore.
Sono in attesa del trasformatore da 24V per alimentare il rotore.


Questa immagine è nascosta ai visitatori. Prego accedi o registrati per visualizzarli.
Ultima modifica: 11 Mesi 2 Giorni fa da IZ3ZLU.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Sostituzione controller Yaesu con display Nextion 11 Mesi 1 Giorno fa #1703

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 573
  • Ringraziamenti ricevuti 102
  • Karma: 44
FINITO!



Questa immagine è nascosta ai visitatori. Prego accedi o registrati per visualizzarli.
Ultima modifica: 11 Mesi 1 Giorno fa da IZ3ZLU.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Sostituzione controller Yaesu con display Nextion 11 Mesi 1 Giorno fa #1704

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 573
  • Ringraziamenti ricevuti 102
  • Karma: 44
Ecco il video su Youtube e lo sketch provvisorio quindi senza tastierino numerico ed elevazione:





// Sostituzione frontalino meccanico rotore Yaesu G-450C con display touch Nextion Advanced da 7''

byte PotentiometerPin = A0;  // pin del potenziometro

int PotentiometerValue;  // variabile del potenziometro
int GaugeValue;  // variabile del gauge
int ProgressBarValue;  // variabile progressbar
int ProgressBar2Value; // variabile progressbar2
int Numerogradi;// visualizza sul display il numero dei gradi di rotazione
int DigitNumber; //Valore digitato sul tastierino numerico
int CurrentPage = 0;  // variabile pagina iniziale


#include <Nextion.h>  

NexButton b0 = NexButton(0, 10, "b0");
NexButton b1 = NexButton(0, 11, "b1");
NexButton b16 = NexButton(3, 12, "b16");
NexButton b17 = NexButton(3, 11, "b17");
NexButton b15 = NexButton(2, 15, "b15");  //Tasto GO TO con valore impostato su tastierino numerico

//
NexPage page0 = NexPage(0, 0, "page0");  // Pagina 0
NexPage page1 = NexPage(1, 0, "page1");  // Pagina 1
NexPage page2 = NexPage(2, 0, "page2");  // Pagina 2
NexPage page3 = NexPage(3, 0, "page3");  // Pagina 3

NexTouch *nex_listen_list[] = 
{
  
  &b0,  // CW a pagina 0
  &b1,  // CCW a pagina 0
  &b15,   //-------------------- Tasto GO TO tastierino numerico
  &b16, // CW a pagina 3
  &b17, // CCW a pagina 3
  &page0, 
  &page1, 
  &page2, 
  &page3,  
  NULL  
};  // Fine eventi touch


// Pulsanti Avanti e indietro Rotore:

// CW

void b0PushCallback(void *ptr)  
{
  digitalWrite(2, HIGH);  // Rotore gira in senso Orario CW
}  
void b0PopCallback(void *ptr)  
{
  digitalWrite(2, LOW);  // Rotore stop
} 

void b16PushCallback(void *ptr)  // Rotore avanti da pagina 3
{
  digitalWrite(2, HIGH); 
}  
void b16PopCallback(void *ptr)  
{
  digitalWrite(2, LOW);  // Rotore stop
} 


// CCW

void b1PushCallback(void *ptr)  // Rotore indietro CCW
{
  digitalWrite(3, HIGH);  
}  
void b1PopCallback(void *ptr)  
{
  digitalWrite(3, LOW);  // Rotore stop
}  


void b17PushCallback(void *ptr)  
{
  digitalWrite(3, HIGH);  // Rotore indietro da pagina 3 CCW
} 
void b17PopCallback(void *ptr)  
{
  digitalWrite(3, LOW);  // Rotore stop
} 


// Inizio prova puntamento da tastierino numerico ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // End of press event

// Cambio eventi a seconda della pagina selezionata
void page0PushCallback(void *ptr) 
{
  CurrentPage = 0;  
}  
void page1PushCallback(void *ptr)  
{
  CurrentPage = 1;  
} 
void page2PushCallback(void *ptr)  
{
  CurrentPage = 2;  
} 
void page3PushCallback(void *ptr) 
{
  CurrentPage = 3;  
}  // Fine cambio eventi


void setup() 
{

  pinMode(PotentiometerPin, INPUT);  
  Serial.begin(9600);  

  b0.attachPush(b0PushCallback);
  b0.attachPop(b0PopCallback);  
  b1.attachPush(b1PushCallback); 
  b1.attachPop(b1PopCallback); 
                                  // INSERIRE b15 PAGINA 2?????
  b16.attachPush(b16PushCallback);
  b16.attachPop(b16PopCallback);  
  b17.attachPush(b17PushCallback); 
  b17.attachPop(b17PopCallback); 
  page0.attachPush(page0PushCallback);  // Pagina controllo rotazione
  page1.attachPush(page1PushCallback);  // Pagina cartina zone DXCC
  page2.attachPush(page2PushCallback);  // Pagina tastierino numerico
  page3.attachPush(page3PushCallback);  // Pagina Elevazione e azimuth


  pinMode(13, OUTPUT); // Led overlap
  pinMode(2, OUTPUT);  //Rotazione in senso orario CW
  pinMode(3, OUTPUT);  //Rotazione in senso antiorario CCW

}  //Fine SETUP

void loop() 
{

  delay(100);  

  PotentiometerValue = analogRead(PotentiometerPin);  // leggi il potenziometro da 0 a 1023

  
 if(CurrentPage == 2){ 
  

Numerogradi = map(PotentiometerValue, 2, 1025, 0, 450);
 if(Numerogradi > 359)  // se il valore di rotazione supera i 359°
  {
    Numerogradi = Numerogradi - 360;  // Sottrai 360° e riparti da 0° in overlap
  }

  Serial.print("n0.val=");  
  Serial.print(Numerogradi);  
  Serial.write(0xff);  
  Serial.write(0xff);
  Serial.write(0xff);
} 

  
if(CurrentPage == 3){ 
  

Numerogradi = map(PotentiometerValue, 2, 1025, 0, 450);
 if(Numerogradi > 359)  // se il valore di rotazione supera i 359°
  {
    Numerogradi = Numerogradi - 360;  // Sottrai 360° e riparti da 0° in overlap
  }

  Serial.print("n0.val=");  
  Serial.print(Numerogradi);  
  Serial.write(0xff);  
  Serial.write(0xff);
  Serial.write(0xff);
}

  if(CurrentPage == 0){ 

Numerogradi = map(PotentiometerValue, 2, 1025, 0, 450);
 if(Numerogradi > 359)  // se il valore di rotazione supera i 359°
  {
    Numerogradi = Numerogradi - 360;  // Sottrai 360° e riparti da 0° in overlap
  }

  Serial.print("n0.val=");  
  Serial.print(Numerogradi);  
  Serial.write(0xff);  
  Serial.write(0xff);
  Serial.write(0xff);


  GaugeValue = map(PotentiometerValue, 2, 1025, 90, 540);  

  if(GaugeValue > 359)  // se il valore di rotazione supera i 359°
  {
    GaugeValue = GaugeValue - 360;  // ricomincia da 0° (overlap)
  }

  Serial.print("z0.val=");  
  Serial.print(GaugeValue); 
  Serial.write(0xff);  
  Serial.write(0xff);
  Serial.write(0xff);



  Serial.print("va0.val=");  
  Serial.print(GaugeValue);  
  Serial.write(0xff);  
  Serial.write(0xff);
  Serial.write(0xff);


  ProgressBarValue = map(PotentiometerValue, 2, 820, 0, 100); 
  Serial.print("j0.val="); 
  Serial.print(ProgressBarValue);  
  Serial.write(0xff);  
  Serial.write(0xff);
  Serial.write(0xff);
  
  ProgressBar2Value = map(PotentiometerValue, 820, 1025, 0, 100);
  Serial.print("j1.val="); 
  Serial.print(ProgressBar2Value);
  Serial.write(0xff);  
  Serial.write(0xff);
  Serial.write(0xff);


  
// Led indicatore di overlap 
if(ProgressBar2Value > 2)
 {
  digitalWrite(13,HIGH); // Se la barra di OVERLAP parte, accendi il led
 }
else
 {
  digitalWrite(13,LOW);}  

if(ProgressBar2Value > 99)// Blocco software della rotazione superati i 449°
  {
 digitalWrite(2,LOW);
  } 


  nexLoop(nex_listen_list);  // controlla ogni azione touch

}}
Ultima modifica: 10 Mesi 3 Settimane fa da IZ3ZLU.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Moderatori: iz8ifl, iz1tgh, IZ3ZLU, iz8guh
Tempo creazione pagina: 0.660 secondi
Powered by Forum Kunena
   
   
© PSKTRENTUNISTI ITALIAN CLUB (PIC)