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: Commutatore antenna wireless con Arduino

Commutatore antenna wireless con Arduino 4 Anni 1 Mese fa #840

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 557
  • Ringraziamenti ricevuti 98
  • Karma: 42
Ho fatto una prova con un display a quattro righe che rende il tutto più visibile.

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

Commutatore antenna wireless con Arduino 4 Anni 1 Mese fa #841

  • iz8ifl
  • Avatar di iz8ifl
  • OFFLINE
  • Amministratore
  • Messaggi: 515
  • Ringraziamenti ricevuti 108
  • Karma: 20
Devo dire caro amico mio che stavolta sei stato superlativo. Ho avuto problemi ultimamente una striscia negativa che non finiva piu ultimamente e caduta la mua 18avq2 ed ho avuto un gran da fare per risistemare il tutto


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


Che momentaccio ma per fortuna sono riuscita a recuperarla tramite un amico (Marcello ik8inr) che ne aveva una dismessa e la base, che era completamente rovinata, la ho potuto recuperare.

Ciao da iz8ifl
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Commutatore antenna wireless con Arduino 4 Anni 1 Mese fa #842

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 557
  • Ringraziamenti ricevuti 98
  • Karma: 42
Azz che brutta immagine..........
Mi dispiace Salvatore. Purtroppo anche per me e mia moglie non è un momento positivo...
Anzi, se qui nel forum c'è un medico di quelli che il giuramento di Ippocrate lo ha fatto non da "Ipocrita", se ha voglia di farmi un consulto online per mia moglie gliene sarei eternamente grato...
Comunque ora che rimetterai in piedi la tua antenna, potrai dedicarti allo switch :)
Io oggi comincio ad assemblare la Versione3....
Ciao, tieni duro.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Commutatore antenna wireless con Arduino 4 Anni 1 Mese fa #843

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 557
  • Ringraziamenti ricevuti 98
  • Karma: 42
Ecco il nuovo sketch con il display a 4 righe.
Notare che sulle porte analogiche ho saltato la 4 e la 5 che servono al display:


#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <VirtualWire.h>

LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 20 chars and 4 line display

const int RX_DIO_Pin = 12;
const int TX_DIO_Pin = 2;
const int PIN_BUTTON1 = A0; //antenna DeltaLoop 20 e 10 mt
const int PIN_BUTTON2 = A1; //antenna MoreGain
const int PIN_BUTTON3 = A2; //antenna Dipolo rigido 15mt
const int PIN_BUTTON4 = A3; //Quadrifilare
const int PIN_BUTTON5 = A6; //antenna dualband V/UHF

unsigned int Data;

void setup()
{
pinMode(13, OUTPUT);
Serial.begin(9600);
lcd.init(); // initialize the lcd

// Print a message to the LCD.
lcd.backlight();
lcd.print(" Antenna Switch");
lcd.setCursor(0,1);
lcd.print(" IZ3ZLU");
delay(1000);
lcd.setCursor(0,2);
lcd.print(" Controllo wi-fi");
lcd.setCursor(0,3);
lcd.print(" Con conferma");


vw_set_tx_pin(TX_DIO_Pin);//imposto il pin di trasmissione
vw_set_rx_pin(RX_DIO_Pin);//imposto il pin di ricezione

vw_set_ptt_inverted(true);

vw_setup(1000);
vw_rx_start();
}

/* Main program */
void loop()
{
uint8_t Buffer_Size = 2;


unsigned int Data;


uint8_t RxBuffer[Buffer_Size];


if (vw_get_message(RxBuffer, &Buffer_Size)){

Data = RxBuffer[0] << 8 | RxBuffer[1];
}

if(hasBeenPressed(PIN_BUTTON1)){
Data = 1;
sendData(Data);
Serial.println(Data);
lcd.setCursor(0, 1);
lcd.print("HF- DeltaLoop "); // Visualizzo il messaggio sul display
}
if(Data==6){ //se il dato ricevuto è 6 sono certo che il relè ha collegato l'antenna selezionata
Serial.println(Data);
lcd.setCursor(0, 0);
lcd.print("Controllo...........");

digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
lcd.setCursor(0, 1);
lcd.print("HF- DeltaLoop OK"); // quindi visualizzo il messaggio sul display con l'asterisco *
lcd.setCursor(0, 0);
lcd.print("********************");



}
if(hasBeenPressed(PIN_BUTTON2)){
Data = 2;
sendData(Data);
Serial.println(Data);
lcd.setCursor(0, 1);
lcd.print("HF- MoreGain "); // Visualizzo il messaggio sul display
}
if(Data==7){
Serial.println(Data);
lcd.setCursor(0, 0);
lcd.print("Controllo...........");

digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
lcd.setCursor(0, 1);
lcd.print("HF- MoreGain OK"); // quindi visualizzo il messaggio sul display con l'asterisco *
lcd.setCursor(0, 0);
lcd.print("********************");


}
if(hasBeenPressed(PIN_BUTTON3)){
Data = 3;
sendData(Data);
Serial.println(Data);
lcd.setCursor(0, 1);
lcd.print("HF- 15mt Dipole "); // Visualizzo il messaggio sul display
}
if(Data==8){
Serial.println(Data);
lcd.setCursor(0, 0);
lcd.print("Controllo...........");

digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
lcd.setCursor(0, 1);
lcd.print("HF- 15mt Dipole OK"); // quindi visualizzo il messaggio sul display con l'asterisco *
lcd.setCursor(0, 0);
lcd.print("********************");

}
if(hasBeenPressed(PIN_BUTTON4)){
Data = 4;
sendData(Data);
Serial.println(Data);
lcd.setCursor(0, 2);
lcd.print("V/UHF- Quadrifilare "); // Visualizzo il messaggio sul display
}
if(Data==9){
Serial.println(Data);
lcd.setCursor(0, 3);
lcd.print("Controllo...........");

digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
lcd.setCursor(0, 2);
lcd.print("V/UHF-QuadrifilareOK"); // quindi visualizzo il messaggio sul display con l'asterisco *
lcd.setCursor(0, 3);
lcd.print("********************");


}
if(hasBeenPressed(PIN_BUTTON5)){
Data = 5;
sendData(Data);
Serial.println(Data);
lcd.setCursor(0, 2);
lcd.print("V/UHF- Yagi Dualband"); // Visualizzo il messaggio sul display
}
if(Data==0){
Serial.println(Data);
lcd.setCursor(0, 3);
lcd.print("Controllo...........");

digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
lcd.setCursor(0, 2);
lcd.print("V/UHF- Yagi D/B OK"); // quindi visualizzo il messaggio sul display con l'asterisco *
lcd.setCursor(0, 3);
lcd.print("********************");

}
}

boolean hasBeenPressed(int pin){
if(analogRead(pin)>1000){
return true;
}else{
return false;
}
}

void sendData(int Data){
byte TxBuffer[2];
TxBuffer[0] = Data >> 8;
TxBuffer[1] = Data;
digitalWrite(13, HIGH);
vw_send((byte *)TxBuffer, 2);
vw_wait_tx();
digitalWrite(13, LOW);
delay(1000);
}
Ultima modifica: 4 Anni 1 Mese fa da IZ3ZLU.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Commutatore antenna wireless con Arduino 4 Anni 1 Mese fa #844

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 557
  • Ringraziamenti ricevuti 98
  • Karma: 42
Ecco il video "ufficiale" dello switcher ver.3.
73 a tutti.

L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
I seguenti utenti ringraziano:: iz8ifl

Commutatore antenna wireless con Arduino 4 Anni 1 Mese fa #845

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 557
  • Ringraziamenti ricevuti 98
  • Karma: 42
Tanto per sbattermi un'altro pò.... ho inserito nel codice la possibilità di usare anche il telecomando IR. Ho voluto farlo perchè mi affascinava provare un bel comando di C++, ossia l'OR. L'esperimento è riuscito... ho scritto:"se premo il pulsante uno OR ricevi il codice del telecomando che corrisponde al pulsante uno, allora fai..."
Il comando OR si scrive || .
Mi sto appassionando parecchio ad Arduino.....
Ecco il nuovo sketch
73

#include <IRremote.h>
const int receiver = 11; // pin 1 of IR receiver to Arduino digital pin 11
IRrecv irrecv(receiver); // create instance of 'irrecv'
decode_results results;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <VirtualWire.h>

LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display

const int RX_DIO_Pin = 12;
const int TX_DIO_Pin = 2;
const int PIN_BUTTON1 = A0; //antenna Delat Loop 20 e 10 mt
const int PIN_BUTTON2 = A1; //antenna MoreGain
const int PIN_BUTTON3 = A2; //antenna Dipolo rigido 15mt
const int PIN_BUTTON4 = A3; //Quadrifilare
const int PIN_BUTTON5 = A6; //antenna dualband V/UHF

unsigned int Data;

void setup()
{
pinMode(13, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
lcd.init(); // initialize the lcd

// Print a message to the LCD.
lcd.backlight();
lcd.print(" Antenna Switch");
lcd.setCursor(0,1);
lcd.print(" IZ3ZLU");
delay(1000);
lcd.setCursor(0,2);
lcd.print(" Controllo wi-fi");
lcd.setCursor(0,3);
lcd.print(" Con conferma");


vw_set_tx_pin(TX_DIO_Pin);//imposto il pin di trasmissione
vw_set_rx_pin(RX_DIO_Pin);//imposto il pin di ricezione

vw_set_ptt_inverted(true);

vw_setup(1000);
vw_rx_start();
}

/* Main program */
void loop()
{
uint8_t Buffer_Size = 2;


unsigned int Data;


uint8_t RxBuffer[Buffer_Size];


if (vw_get_message(RxBuffer, &Buffer_Size)){

Data = RxBuffer[0] << 8 | RxBuffer[1];
}
if (irrecv.decode(&results)) // have we received an IR signal?
{
Serial.println(results.value, HEX); // display it on serial monitor in hexadecimal
irrecv.resume();// receive the next value
}
if (results.value == 0xFF30CF ||(hasBeenPressed(PIN_BUTTON1)) ) //tasto 1 sul telecomando

{
Data = 1;
sendData(Data);
Serial.println(Data);
lcd.setCursor(0, 1);
lcd.print("HF- DeltaLoop "); // Visualizzo il messaggio sul display
}
if(Data==6){ //se il dato ricevuto è 6 sono certo che il relè ha collegato l'antenna selezionata
Serial.println(Data);
lcd.setCursor(0, 0);
lcd.print("Controllo...........");

digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
lcd.setCursor(0, 1);
lcd.print("HF- DeltaLoop OK"); // quindi visualizzo il messaggio sul display con l'asterisco *
lcd.setCursor(0, 0);
lcd.print("********************");



}
if (results.value == 0xFF18E7 ||(hasBeenPressed(PIN_BUTTON2)) ){
Data = 2;
sendData(Data);
Serial.println(Data);
lcd.setCursor(0, 1);
lcd.print("HF- MoreGain "); // Visualizzo il messaggio sul display
}
if(Data==7){
Serial.println(Data);
lcd.setCursor(0, 0);
lcd.print("Controllo...........");

digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
lcd.setCursor(0, 1);
lcd.print("HF- MoreGain OK"); // quindi visualizzo il messaggio sul display con l'asterisco *
lcd.setCursor(0, 0);
lcd.print("********************");


}
if (results.value == 0xFF7A85 ||(hasBeenPressed(PIN_BUTTON3)) ){
Data = 3;
sendData(Data);
Serial.println(Data);
lcd.setCursor(0, 1);
lcd.print("HF- 15mt Dipole "); // Visualizzo il messaggio sul display
}
if(Data==8){
Serial.println(Data);
lcd.setCursor(0, 0);
lcd.print("Controllo...........");

digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
lcd.setCursor(0, 1);
lcd.print("HF- 15mt Dipole OK"); // quindi visualizzo il messaggio sul display con l'asterisco *
lcd.setCursor(0, 0);
lcd.print("********************");

}
if (results.value == 0xFF10EF ||(hasBeenPressed(PIN_BUTTON4)) ){
Data = 4;
sendData(Data);
Serial.println(Data);
lcd.setCursor(0, 2);
lcd.print("V/UHF- Quadrifilare "); // Visualizzo il messaggio sul display
}
if(Data==9){
Serial.println(Data);
lcd.setCursor(0, 3);
lcd.print("Controllo...........");

digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
lcd.setCursor(0, 2);
lcd.print("V/UHF-QuadrifilareOK"); // quindi visualizzo il messaggio sul display con l'asterisco *
lcd.setCursor(0, 3);
lcd.print("********************");


}
if (results.value == 0xFF38C7 ||(hasBeenPressed(PIN_BUTTON5)) ){
Data = 5;
sendData(Data);
Serial.println(Data);
lcd.setCursor(0, 2);
lcd.print("V/UHF- Yagi Dualband"); // Visualizzo il messaggio sul display
}
if(Data==0){
Serial.println(Data);
lcd.setCursor(0, 3);
lcd.print("Controllo...........");

digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
lcd.setCursor(0, 2);
lcd.print("V/UHF- Yagi D/B OK"); // quindi visualizzo il messaggio sul display con l'asterisco *
lcd.setCursor(0, 3);
lcd.print("********************");

}
}

boolean hasBeenPressed(int pin){
if(analogRead(pin)>1000){
return true;
}else{
return false;
}
}

void sendData(int Data){
byte TxBuffer[2];
TxBuffer[0] = Data >> 8;
TxBuffer[1] = Data;
digitalWrite(13, HIGH);
vw_send((byte *)TxBuffer, 2);
vw_wait_tx();
digitalWrite(13, LOW);
delay(1000);
}
Ultima modifica: 4 Anni 1 Mese fa da IZ3ZLU.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Moderatori: iz8ifl, iz1tgh, IZ3ZLU, iz8guh
Tempo creazione pagina: 0.610 secondi
Powered by Forum Kunena
   
   
© PSKTRENTUNISTI ITALIAN CLUB (PIC)