-
IZ3ZLU
-
-
OFFLINE
-
Moderatore
-
- Messaggi: 601
- Ringraziamenti ricevuti 107
-
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
|