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
  • Pagina:
  • 1
  • 2

ARGOMENTO: Commutatore antenna via cavo (ora Touch screen)

Commutatore antenna via cavo (ora Touch screen) 2 Anni 4 Mesi fa #1606

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 596
  • Ringraziamenti ricevuti 104
  • Karma: 44
Salve a tutti,
nella nuova casa ho il traliccetto subito al di là del muro dove si trova la stazione Radio e a suo tempo avevo fatto fare ai muratori un foro per passarci i cavi. A questo punto ho pensato di modificare il mio Commutatore wireless d'antenna e farlo diventare via cavo.
Questo non era possibile nella mia vecchia abitazione in quanto la stazione era al di là di diversi muri e corridoi.
La modifica è semplicissima, dall'RX posto sul traliccio, si toglie la scheda Arduino UNO dal suo zoccolo e, una volta entrati nella scatola col cavo che avrà tanti fili quante sono le antenne più i due che poteranno i 12V per i relè, si collegheranno i vari fili direttamente sullo zoccolo e si elimineranno le due schedine RX e TX Wi-Fi.
A questo punto il cavo si collegherà al TX in stazione per il quale ho fatto il nuovo sketch.... molto più semplice... In pratica schiacciando un pulsante si manda alta la relativa porta per mezzo secondo, quindi si da corrente all'optoisolatore sull'RX che farà eccitare il relativo relè. Come sempre i relè sono bistabili in modo che basti un colpetto e poi non giri più tensione.

Qesto lo sketch:
// Connessioni sul TX (cavo a 12 fili più massa)
// 2 Marrone      Libero
// 3 Nero         Libero
// 4 Giallo       Yagi V/Uhf
// 5 Bianco       Libero HF
// 6 Viola/rosso  Dipolo 40mt
// 7 Rosa         Deltaloop
// 8 Verde       Reset V/Uhf
// 9 Grigio/rosa Reset HF


#include <Wire.h> 
#include <SPI.h>
#include <Adafruit_GFX.h>  
#include <Adafruit_ST7735.h>
#include <VirtualWire.h>
#include <EEPROM.h>

#define TFT_PIN_CS   10 // Arduino-Pin an Display CS   
#define TFT_PIN_DC   9  // Arduino-Pin an 
#define TFT_PIN_RST  8  // Arduino Reset-Pin

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_PIN_CS, TFT_PIN_DC, TFT_PIN_RST);  // set the tft address to 0x27 for a 16 chars and 2 line display

const int PIN_BUTTON1 = A2; //antenna Delta Loop 20 e 10 mt
const int PIN_BUTTON2 = A3; //antenna Dipolo Meandri 40mt
const int PIN_BUTTON3 = A4; //Libero
const int PIN_BUTTON4 = A5; //antenna dualband V/UHF
const int PIN_BUTTON5 = A6; //Libero
const int PIN_BUTTON6 = A7; //Libero
const int ResetHF = 14;    // Pin A0 reset V/Uhf
const int ResetVHF = 15;   // Pin A1 reset HF
unsigned int Data;
byte numAntenna;


void setup()

{
 pinMode(ResetVHF,OUTPUT); //Relè azzeramento VHF
 pinMode(ResetHF,OUTPUT); // Relè azzeramento HF
 pinMode(2, OUTPUT); //relè antenna1 HF
 pinMode(3, OUTPUT); //relè antenna2 HF
 pinMode(4, OUTPUT); //relè antenna3 HF
 pinMode(5, OUTPUT); //relè antenna1 U/Vhf
 pinMode(6, OUTPUT); //relè antenna2 U/Vhf 
 pinMode(7, OUTPUT); //relè antenna3 U/Vhf
 Serial.begin(9600);
 tft.initR(INITR_BLACKTAB); // initialize the tft   
  // Print a message to the tft.
  tft.fillScreen(ST7735_BLACK);
   delay(2000);
  tft.setCursor(20,12);
  tft.setTextColor(ST7735_WHITE);
  tft.print("Antenna Switch");
  tft.setCursor(25,50);
  tft.setTextSize(2);
  tft.setTextColor(ST7735_BLUE);
  tft.print("IZ3ZLU");
  delay(1000);
  tft.setTextSize(1);
  tft.setTextColor(ST7735_WHITE);
  tft.setCursor(3,100);
  tft.print("  Controllo via cavo");
  tft.setTextColor(ST7735_YELLOW);
  tft.setCursor(4,140);
  tft.print("  Release 1  2017");
  delay(300);
    tft.setTextColor(ST7735_WHITE);
  tft.setCursor(4,140);
  tft.print("  Release 1  2017");
  delay(500);
  tft.fillScreen(ST7735_BLACK);

  tft.fillRect(3,79,120,1,ST7735_GREEN);

  numAntenna = EEPROM.read(1);
  if (numAntenna ==1){
  tft.setTextColor(ST7735_WHITE);
  tft.setCursor(1, 1); 
  tft.print("Leggo EEPROM HF.....");
  tft.setCursor(1, 10); 
  tft.print("                   ");
  Serial.println(numAntenna);
  delay(500);
  tft.setCursor(1, 10);
  tft.setTextColor(ST7735_YELLOW); 
  tft.print("DeltaLoop ");
  tft.setTextColor(ST7735_WHITE);
  tft.setCursor(1, 20); 
  tft.print("letta EEPROM HF     ");
  delay(500);}
  
  if (numAntenna ==2){
  tft.setCursor(1, 1); 
  tft.print("Leggo EEPROM HF.....");
  tft.setCursor(1, 10); 
  tft.print("                   ");
  Serial.println(numAntenna);
  delay(500);
  tft.setCursor(1, 10);
  tft.setTextColor(ST7735_YELLOW); 
  tft.print("Dipolo 40mt");
  tft.setCursor(1, 20);
  tft.setTextColor(ST7735_WHITE); 
  tft.print("letta EEPROM HF     ");
  delay(500);}
  
  if (numAntenna ==3){
  tft.setCursor(1, 1); 
  tft.print("Leggo EEPROM HF....");
  tft.setCursor(1, 10); 
  tft.print("                   ");
  Serial.println(numAntenna);
  delay(500);
  tft.setCursor(1, 10);
  tft.setTextColor(ST7735_YELLOW); 
  tft.print("Libero ");
  tft.setCursor(0, 20);
  tft.setTextColor(ST7735_WHITE); 
  tft.print("letta EEPROM HF  ");
  delay(500);}
{  
numAntenna = EEPROM.read(2); 
  if (numAntenna ==1){
  tft.setCursor(1, 82); 
  tft.print("Leggo EEPROM V/UHF..");
  tft.setCursor(1, 92); 
  tft.print("                   ");
  Serial.println(numAntenna);
  delay(500);
  tft.setCursor(1, 92);
  tft.setTextColor(ST7735_YELLOW); 
  tft.print("Yagi Dualband");
  tft.setCursor(1, 102);
  tft.setTextColor(ST7735_WHITE); 
  tft.print("letta EEPROM V/UHF  ");}
  if (numAntenna ==2){
  tft.setCursor(1, 82); 
  tft.print("Leggo EEPROM V/UHF..");
  tft.setCursor(1, 92); 
  tft.print("                   ");
  Serial.println(numAntenna);
  delay(500);
  tft.setCursor(1, 92);
  tft.setTextColor(ST7735_YELLOW); 
  tft.print("Libero");
  tft.setCursor(1, 102);
  tft.setTextColor(ST7735_WHITE); 
  tft.print("letta EEPROM V/UHF  ");}
  if (numAntenna ==3){
  tft.setCursor(1, 82); 
  tft.print("Leggo EEPROM V/UHF..");
  tft.setCursor(1, 92); 
  tft.print("                   ");
  Serial.println(numAntenna);
  delay(500);
  tft.setCursor(1, 92);
  tft.setTextColor(ST7735_YELLOW); 
  tft.print("Libero");
  tft.setCursor(1,102);
  tft.setTextColor(ST7735_WHITE); 
  tft.print("letta EEPROM V/UHF  ");}
}

 
  
  }
void loop()
{
if(hasBeenPressed(PIN_BUTTON1)){
    Data = 1;
    digitalWrite(ResetHF,HIGH);
    delay(500);
    digitalWrite(ResetHF,LOW);
    delay(300);
    digitalWrite(2,HIGH);
    delay(500);
    digitalWrite(2,LOW);
    EEPROM.write(1,1);
    Serial.println(Data);
    tft.setCursor(6, 40);
    tft.fillRect(2,55,125,24,ST7735_BLACK);
    tft.drawRoundRect(1,50,125,25,5,ST7735_GREEN);
    tft.setTextSize(2);
    tft.setCursor(3, 30);
    tft.setTextColor(ST7735_BLUE);
    tft.setTextSize(2); 
    tft.print(" HF selez."); // Visualizzo il messaggio sul display
    tft.setTextColor(ST7735_YELLOW);
    tft.setCursor(6, 55);
    tft.print("Deltaloop");
    tft.fillRect(1,1,125,27,ST7735_BLACK);
    tft.setCursor(2,10);
    tft.setTextColor(ST7735_BLUE);
    tft.setTextSize(2);
    tft.print(" ANTENNA ");  
}
if(hasBeenPressed(PIN_BUTTON2)){
    Data = 2;
    digitalWrite(ResetHF,HIGH);
    delay(500);
    digitalWrite(ResetHF,LOW);
    delay(300);
    digitalWrite(3,HIGH);
    delay(500);
    digitalWrite(3,LOW);
    EEPROM.write(1,2);
    Serial.println(Data);
     tft.setCursor(6, 40);
    tft.fillRect(2,55,125,24,ST7735_BLACK);
    tft.drawRoundRect(1,50,125,25,5,ST7735_GREEN);
    tft.setTextSize(2);
    tft.setCursor(3, 30);
    tft.setTextColor(ST7735_BLUE);
    tft.setTextSize(2); 
    tft.print(" HF selez."); // Visualizzo il messaggio sul display
    tft.setTextColor(ST7735_YELLOW);
    tft.setCursor(6, 55);
    tft.print("Dipolo40");
    tft.fillRect(1,1,125,27,ST7735_BLACK);
    tft.setCursor(2,10);
    tft.setTextColor(ST7735_BLUE);
    tft.setTextSize(2);
    tft.print(" ANTENNA ");  
  }
  if(hasBeenPressed(PIN_BUTTON3)){
    Data = 3;
    digitalWrite(ResetHF,HIGH);
    delay(500);
    digitalWrite(ResetHF,LOW);
    delay(300);
    digitalWrite(4,HIGH);
    delay(500);
    digitalWrite(4,LOW);
    EEPROM.write(1,3);
    Serial.println(Data);
     tft.setCursor(6, 40);
    tft.fillRect(2,55,125,24,ST7735_BLACK);
    tft.drawRoundRect(1,50,125,25,5,ST7735_GREEN);
    tft.setTextSize(2);
    tft.setCursor(3, 30);
    tft.setTextColor(ST7735_BLUE);
    tft.setTextSize(2); 
    tft.print(" HF selez."); // Visualizzo il messaggio sul display
    tft.setTextColor(ST7735_YELLOW);
    tft.setCursor(6, 55);
    tft.print("Libero");
    tft.fillRect(1,1,125,27,ST7735_BLACK);
    tft.setCursor(2,10);
    tft.setTextColor(ST7735_BLUE);
    tft.setTextSize(2);
    tft.print(" ANTENNA ");  
  }
if(hasBeenPressed(PIN_BUTTON4)){
    Data = 4;
    digitalWrite(ResetVHF,HIGH);
    delay(500);
    digitalWrite(ResetVHF,LOW);
    delay(300);
    digitalWrite(5,HIGH);
    delay(500);
    digitalWrite(5,LOW);
    EEPROM.write(2,1);
    Serial.println(Data);
    tft.setCursor(6, 115);
    tft.fillRect(3,135,120,25,ST7735_BLACK);
    tft.drawRoundRect(3,135,122,25,5,ST7735_GREEN);
    tft.setCursor(4, 115);
    tft.setTextColor(ST7735_BLUE);
    tft.setTextSize(2); 
    tft.print("V/UHF sel."); // Visualizzo il messaggio sul display
    tft.setCursor(6, 140);
    tft.setTextColor(ST7735_YELLOW);
    tft.print("Yagi D/B");
    tft.fillRect(1,82,122,27,ST7735_BLACK);
    tft.setCursor(1, 94);
    tft.setTextColor(ST7735_BLUE);
    tft.setTextSize(2);
    tft.print(" ANTENNA ");  
   }
if(hasBeenPressed(PIN_BUTTON5)){
    Data = 5;
    digitalWrite(ResetVHF,HIGH);
    delay(500);
    digitalWrite(ResetVHF,LOW);
    delay(300);
    digitalWrite(6,HIGH);
    delay(500);
    digitalWrite(6,LOW);
    EEPROM.write(2,2);
    Serial.println(Data);
    tft.setCursor(6, 115);
    tft.fillRect(3,135,122,25,ST7735_BLACK);
    tft.drawRoundRect(3,135,122,25,5,ST7735_GREEN);
    tft.setCursor(4, 115);
    tft.setTextColor(ST7735_BLUE);
    tft.setTextSize(2); 
    tft.print("V/UHF sel."); // Visualizzo il messaggio sul display
    tft.setCursor(6, 140);
    tft.setTextColor(ST7735_YELLOW);
    tft.print("Libero");
    tft.fillRect(1,82,120,27,ST7735_BLACK);
    tft.setCursor(1, 94);
    tft.setTextColor(ST7735_BLUE);
    tft.setTextSize(2);
    tft.print(" ANTENNA ");  
  }
if(hasBeenPressed(PIN_BUTTON6)){
    Data = 6;
    digitalWrite(ResetVHF,HIGH);
    delay(500);
    digitalWrite(ResetVHF,LOW);
    delay(300);
    digitalWrite(7,HIGH);
    delay(500);
    digitalWrite(7,LOW);
    Serial.println(Data);
    EEPROM.write(2,3);
    tft.setCursor(6, 115);
    tft.fillRect(3,135,120,25,ST7735_BLACK);
    tft.drawRoundRect(3,135,122,25,5,ST7735_GREEN);
    tft.setCursor(4, 115);
     tft.setTextColor(ST7735_YELLOW);
    tft.setTextSize(2); 
    tft.print("V/UHF sel."); // Visualizzo il messaggio sul display
    tft.setCursor(6, 140);
    tft.setTextColor(ST7735_BLUE);
    tft.print("Libero");
    tft.fillRect(1,82,122,27,ST7735_BLACK);
    tft.setCursor(1, 94);
    tft.setTextColor(ST7735_BLUE);
    tft.setTextSize(2);
    tft.print(" ANTENNA ");  
   }       
   }
  boolean hasBeenPressed(int pin){
  if(analogRead(pin)>1000){
    return true;
  }else{
    return false;
  }
}

Ovviamente rimane la funzione di scrittura sull'EEPROM per avere l'ultima antenna selezionata sul display all'accensione.
Questo per ora il layout del display:


Questa immagine è nascosta ai visitatori. Prego accedi o registrati per visualizzarli.


Ho però ordinato uno di questi nuovi display:
www.banggood.com/3_2-Inch-Nextion-HMI-In...der&cur_warehouse=CN
Quindi al più presto si farà la versione touch.

'73
Ultima modifica: 2 Anni 3 Mesi fa da IZ3ZLU.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Commutatore antenna via cavo con Arduino 2 Anni 4 Mesi fa #1609

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 596
  • Ringraziamenti ricevuti 104
  • Karma: 44
Ed eccolo qua FINITO e funzionante!!!!
Sarebbe molto facile avere anche la conferma di avvenuta commutazione, ma non mi bastavano i piedini dell'Arduino :dry:

TADAAAA!

Questa immagine è nascosta ai visitatori. Prego accedi o registrati per visualizzarli.


Un'altra foto per capire le dimensioni rispetto ad una chiavetta USB.

Questa immagine è nascosta ai visitatori. Prego accedi o registrati per visualizzarli.
Ultima modifica: 2 Anni 4 Mesi fa da IZ3ZLU.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
I seguenti utenti ringraziano:: IZ3028SWL

Commutatore antenna via cavo con Arduino 2 Anni 4 Mesi fa #1613

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 596
  • Ringraziamenti ricevuti 104
  • Karma: 44
Fialmente è arrivato il display Nextion e devo dire che per 18€ è un vero gioiello.
Sono così iniziati i lavori per il nuovo commutatore d'antenna touchscreen via cavo.
In pratica il layout di questo display si crea con un editor e un programma come Paint o Photoshop se proprio volete esagerare...
Questo il layout provvisorio che ho creato, per lo sketch sono arrivato solo a commutare le antenne, ma ora manca il salvataggio su EEPROM e la comparsa sul display dei vari nomi delle antenne selezionate.


Questa immagine è nascosta ai visitatori. Prego accedi o registrati per visualizzarli.


Questo display occupa solo i due pin dell'alimentazione e il TX ed RX dell'Arduino, risparmiando tutti gli altri per essere utilizzati.
In questo modo ora avrò pin a sufficienza per avere anche la conferma di avvenuta commutazione.

Questa immagine è nascosta ai visitatori. Prego accedi o registrati per visualizzarli.


I pulsanti quando sono "premuti" cambiano colore divendando così:

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

Commutatore antenna via cavo con Arduino 2 Anni 4 Mesi fa #1614

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 596
  • Ringraziamenti ricevuti 104
  • Karma: 44
Giunto a metà dell'opera...

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

Commutatore antenna via cavo con Arduino 2 Anni 4 Mesi fa #1615

  • IZ3028SWL
  • Avatar di IZ3028SWL
  • OFFLINE
  • Senior Boarder
  • Messaggi: 45
  • Ringraziamenti ricevuti 4
  • Karma: 0
bel lavoro pulito :)
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
I seguenti utenti ringraziano:: IZ3ZLU

Commutatore antenna via cavo con Arduino 2 Anni 4 Mesi fa #1616

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 596
  • Ringraziamenti ricevuti 104
  • Karma: 44
Ti ringrazio.
Ora aggiungerò il piccolo display per il controllo dell'elevazione della direttiva Yagi autocostruita.
Apro un nuovo post.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
Moderatori: iz8ifl, iz1tgh, IZ3ZLU, iz8guh
Tempo creazione pagina: 0.473 secondi
Powered by Forum Kunena
   
   
© PSKTRENTUNISTI ITALIAN CLUB (PIC)