Visualizzazione post con etichetta Selettore. Mostra tutti i post
Visualizzazione post con etichetta Selettore. Mostra tutti i post

mercoledì 19 maggio 2021

Arduino N° 95 - Selettore 5 uscite

< Arduino N° 94

 Achille De Santis

> Arduino N°  96























Selettore  a cinque posizioni, comandabili da altrettanti pulsanti.

Cinque spie a LED segnalano la posizione impostata dal selettore.

Un cicalino avverte acusticamente della ricezione del comando.

E' possibile modificare lo sketch per avere due note diverse nelle condizioni di "cambio stato" o mantenimento in memoria dello stato precedente, senza attivazione del relay.

Per commutare segnali a radiofrequenza è opportuno utilizzare dei relais coassiali, comandabili dalla logica di controllo. 


Nota 1: 

Volutamente non ho inserito i relais sulle uscite e lascio al lettore l'onere della ricerca della giusta configurazione, utilizzando 5 driver, a BJT o MOSFET, e 5 opportuni relay in tensione continua dotati, ognuno, di diodo di libera circolazione  (o di flyback). Il contatto "puro", in uscita dallo stadio pilota, andrà collegato NON ai 5 volt di Arduino ma ad una alimentazione SEPARATA (12 volt, 24 volt ecc...) o, nel caso, al segnale da commutare.


Nota 2: 

Alcuni relais sono già dotati di diodo interno; attenzione alla loro polarità!


Simulazione: 




Argomenti correlati: 

mercoledì 5 maggio 2021

Arduino N° 93 - Selettore a Relay - 3 uscite

< Arduino N° 92

 Achille De Santis

> Arduino N°  94


Il dispositivo che qui viene descritto potrebbe essere realizzato con un semplice selettore elettromeccanico ma con l'aggiunta del display LCD, del buzzer e della scheda a microcontrollore potrebbe essere la base di lavoro di un dispositivo molto più complesso, nel quale l'uso della logica di controllo diventi essenziale per ridurre la componentistica. 


Fig. 1: schema generale del selettore a 3 posizioni


Particolarità del circuito: sono stati utilizzati tre piedini di ingresso analogico per i tre pulsanti di comando, in modalità pull-up.

Tre spie LED, che si accendono una per volta, sono collegate con una unica resistenza verso massa; le tre uscite comandano i tre relais per la commutazione dei carichi. In questo caso, le lampadine simulano il carico e sono collegate ai 5 volt, con massa comune.

E' possibile isolare completamente i contatti di scambio dei relais ottenendo dei contatti 'puri', adatti per il collegamento a tensioni 'esterne' alla logica di controllo. In questo modo, ad esempio, si potrebbe alimentare un carico  a 230 Vca.  

Se il relay non ne è provvisto, provvedete a collegare un diodo di 'libera circolazione' in 'antiparallelo' sulla bobina, del tipo 1N4004,  1N4007 o 1N4148. 

Funzionamento:

alla pressione di uno dei pulsanti si attiva la relativa uscita, che viene rivelata da un segnale acustico sul piccolo altoparlante e dalla spia LED associata all'uscita stessa, che potremo numerare con 1,2,3.


E' possibile modificare lo sketch per avere due note diverse, nelle condizioni di "cambio stato" o mantenimento in memoria dello stato precedente, senza attivazione del relay.


La simulazione è disponibile per l'analisi e il download.


Nota 1:

Le lampade vanno ASSOLUTAMENTE collegate ad una sorgente di alimentazione separata. La figura le riporta collegate alla alimentazione di Arduino a puro titolo di esempio.


Nota 2:

Ovvio che non è necessario Arduino per realizzare un selettore manuale ma questo dispositivo potrebbe essere comandato via bluetooth, senza fili. Allora ecco aprirsi nuovi scenari e nuove applicazioni. 


Per commutare segnali a radiofrequenza (RF) utilizzate la logica di controllo per comandare dei relais coassiali.


Simulazione: 



Argomenti correlati: 

martedì 4 maggio 2021

Driver Relay - 1 via. 2 posizioni

 

Pilotaggio di un relay da un pulsante.


Il pulsante comanda l'uscita del relay nelle due posizioni.

I due led segnalano la posizione assunta.

Ricordate di inserire il diodo di libera circolazione (o di flyback ) in antiparallelo sulla bobina del relay!

Il resistore di polarizzazione dei led è unico e provvede alla giusta polarizzazione di entrambi.

Il resistore in serie alla bobina del relay serve per dare la giusta tensione alla stessa.

Nel caso di alimentazione a 5 volt si deve eliminare, come anche nel caso di uso di un relay a tensione nominale di 9 Vcc.


Nota: 

Alcuni relais a tensione continua sono polarizzati internamente; in questo caso non bisogna inserire il diodo esterno e bisogna controllare la polarità della bobina del relay, con un tester.

 

Simulazione:

Driver relay


Argomenti correlati:

Arduino N° 50 - Modulo di prova per 6 uscite digitali


mercoledì 3 febbraio 2021

Arduino N° 80 - Commutazione di tre LED con i rispettivi pulsanti.


< Arduino N° 79

 Achille De Santis

> Arduino n° 81



Per accendere e spegnere dei LED bastano dei semplici pulsanti. L'uso di un microcontrollore permette di sviluppare altre funzionalità.
-------------------------

Commutazione di tre LED con i rispettivi pulsanti. 

I comandi sono di tipo "Toggle"; un impulso accende la corrispondente lampada,  un altro la spegne quindi è possibile accendere e spegnere le tre uscite mantenendone lo stato.

Inoltre, dalla logica utilizzata risulta che tenendo premuto un pulsante si ottiene il lampeggio del relativo LED con periodo di circa un secondo,

Lo sketch e la simulazione del circuito sono disponibili per l'analisi e il download.


Simulazione:

Commutazione di tre LED con i rispettivi pulsanti.


Argomenti correlati:  

Commutazione momentanea di un LED con tre pulsanti di comando





tecnatronATgmail.com


> Arduino N°  81


mercoledì 27 gennaio 2021

Arduino N° 79 - Commutazione momentanea di un LED con tre pulsanti di comando


< Arduino N°  78

 Achille De Santis

> Arduino N°  80


Selettore momentaneo per commutare l'uscita ON/OFF da tre punti di comando.

L'uscita è collegata, come esempio, su un LED opportunamente polarizzato.

Gli ingressi sono usati in modalità "pull-up", quindi vanno comandati con un segnale "attivo basso", forzando a massa temporaneamente, tramite pulsante.

L'uscita, normalmente bassa, commuta all'arrivo del comando.

Si può associare il dispositivo alla funzione di Multivibratore Monostabile.

Ovvio che in elettronica cablata basterebbe un circuito con qualche porta logica o con un Timer NE555. Di contro, questa soluzione sarebbe comoda nel caso si disponesse già del microcontrollore. Basterebbe integrare il firmware con questa semplice procedura.

Lo sketch e la simulazione del circuito sono disponibili per l'analisi e il download.


Simulazione:

Commutazione momentanea di un LED con tre pulsanti di comando


Argomenti correlati:  





tecnatronATgmail.com


> Arduino N°  80


mercoledì 25 marzo 2020

Arduino N° 42 - Selettore ad infrarosso - 8 canali














< Segue da Arduino N°  41

 Achille De Santis

> Arduino N° 43




Questo circuito realizza un Selettore ad 8 canali, comandabile con un piccolo telecomando ad infrarosso.

Il selettore commuta una uscita per volta, a livello alto. La selezione iniziale è sul canale 1 ma è possibile cambiarla da software. Ancora meglio, basta predisporre l'attuatore prioritario sul canale 1 di uscita, senza modifiche al firmware.

Andate alla simulazione per avere un'idea più precisa del suo funzionamento.

Gli otto LED di uscita (rossi) segnalano il canale prescelto.
Un altro LED (arancione), connesso ad una linea di servizio (DCD), segnala l'arrivo del comando dal trasmettitore ad infrarosso.


Nel caso fosse necessario cambiare i codici sul ricevitore, agire come segue;

Fig. 1: Telecomando e modulo Arduino Nano;
Procedura:

  • si apre il monitor seriale su Arduino 
  • da telecomando, si invia un comando per volta, premendo i tasti da 1 a 8;
  •  si copia il codice ricevuto a monitor, 
  • si ripete il comando, per conferma del codice inviato;
  • si incolla il codice sulla riga corrispondente, nelle opzioni "case" del firmware.
  • si ripete la procedura per gli 8 canali;
  • si verifica che la procedura sia andata a buon fine: se tutto è a posto, ad ogni comando si accenderà un solo LED  per volta, spegnendo il precedente. 

Una tabella dei codici in uso su molti telecomandi è disponibile all'indirizzo:

buon lavoro!


Simulazione: 

mercoledì 8 gennaio 2020

Arduino N° 31 - Antenna switch bluetooth 2 canali

< Arduino N° 30

 Achille De Santis

> Arduino N° 32





Selettore di antenna, 2 canali indipendenti, con uscite 1 via / 2 posizioni
Il primo canale viene usato per commutare due antenne; il secondo canale viene usato per commutare un preamplificatore di ricezione.


/* ---------------- Inizio Programma ----------------------------------------- 
 *  Programma di Achille De Santis    22-03-2018 V.2.2
 *  Selettore "2 vie/2 posizioni" a relé tramite collegamento Bluetooth
 *  Piedini usati per seriale bluetooth:  TX=>0, RX=>1 
 *  Linee di uscita: D2 = antenne,  D3 = preamplificatore
 *  Commuta 2 Antenne su una unica discesa in cavo coassiale.
 *  Un comando indipendente per preamplificatore di ricezione.
 *
 *  Comandi: 
 *  A = seleziona antenna A 
 *  B = seleziona antenna B 
 *  P = inserisce preamplificatore su linea antenna 
 *  p = disinserisce preamplificatore antenna   
 *  c = comandi
 *  t = titolo
*/

// ------------------- I/O -----------------------
#define i   2       // uscita comando relay
#define p3  3     // preamplificatore
// -----------------------------------------------

char dato;

void titolo()
  { 
    Serial.println("\n-           Tecnatron Creation   ");
    Serial.println("-          tecnatron@gmail.com     ");
    Serial.println("- Selettore:  2 canali - 1 via/2 posizioni");
    Serial.println("- posizione iniziale: Uscita A     ");
    Serial.println("- ---------------------------------------------");
  }

void comandi()
  {
    Serial.println(" - Comandi: -");
    Serial.println(" - A = antenna A ");
    Serial.println(" - B = antenna B ");
    Serial.println(" - P = inserisce preamplificatore ");
    Serial.println(" - p = disinserisce preamplificatore");
    Serial.println(" - c = comandi ");
    Serial.println(" - t = titolo ");
    Serial.println('  ------------------------------------------ ');
  }

void accendi(int pin)
  { digitalWrite(pin, HIGH); // eccito il relè collegato al pin
    scrivi(pin); Serial.println(" ON");
  }
void spegni(int pin)
  { digitalWrite(pin, LOW); // rilascio il relè collegato al pin
    scrivi(pin-1); delay(10); Serial.println(" ON");
  }
void scrivi(int pin)
  { Serial.print("Antenna ");
    Serial.print(pin);
  }
void accendiPRE(int pin)
  { digitalWrite(pin, HIGH); // eccito il relè collegato al pin
    Serial.println("Preampli RF: ON");
    // Serial.println();
  }
void spegniPRE(int pin)
  { digitalWrite(pin, LOW); // rilascio il relè collegato al pin 
    Serial.println("Preampli RF: OFF");
    // Serial.println();
  }

void setup()
  {
     pinMode(i, OUTPUT);              // comando switch antenna
     pinMode(p3, OUTPUT);            // comando preamplificatore
     Serial.begin(9600);                    // velocità di comunicazione
     accendi(i); delay(500); spegni(i);  // controllo iniziale
     accendiPRE(p3); delay(500); spegniPRE(p3);
     titolo();
  }

void loop()
  {while (Serial.available())
   {   dato= Serial.read();              // carattere che viene ricevuto dalla seriale
       Serial.print(dato); Serial.print(' ');
       switch(dato)
       { case 'A':  spegni(i);      break;       //
         case 'B':  accendi(i);     break;       //
         case 'P':  accendiPRE(p3); break; //
         case 'p':  spegniPRE(p3);  break;  //
         case 'c':  comandi();      break;      //
         case 't':  titolo();       break;           //
         default:   comandi();       
       }     
   }
  }
// ------------------------- Fine programma ------------------------------------



Simulazione: Antenna switch bluetooth

Argomenti correlati: 

mercoledì 25 dicembre 2019

Arduino N° 29 - Selettore bluetooth, 2 canali

< Arduino N° 28

 Achille De Santis

> Arduino N° 30





Foto 1: a sinistra Arduino Pro-Mini,
a destra modulo bluetooth;


Selettore  bluetooth, 2 canali, 1 via / 2 posizioni; si può utilizzare in vari ambiti, dove necessiti un collegamento  senza fili a 1 via/2 posizioni, per comando di 2 canali indipendenti.

Può servire una interfaccia a 2 relé, reperibile tra quelle in uso con Arduino, oppure se ne può assemblare una "ad hoc". Il relé permette di disporre di un "contatto puro", in uscita, che può essere collegato in vario modo e con tensioni diverse sul carico.

Il comando può essere impartito attraverso idonea APP da installare su telefono(Android o IoS).

Per l'uso con telefoni Android è idoneo un modulo bluetooth HC05 o HC06 ("slave" o "master/slave").
Per il funzionamento con telefoni IoS consiglio di utilizzare un modulo bluetooth BLE 4.0.




In fig. 1 potete vedere il montaggio di prova, su breadboard, dei due moduli, sufficienti per un idoneo assemblaggio minimale. Dopo le valutazioni con una scheda Arduino UNO o Nano, per un montaggio definitivo ho preferito programmare un modulo Pro-mini (a sinistra sulla foto). 
Il modulo bluetooth in foto è un BLE 4.0 compatibile con IoS ma può essere sostituito con un HC05 o HC06 compatibile con Android; attenzione al verso della piedinatura.  



/* ----------------------------- Inizio Programma -----------------------------------
  Programma di Achille De Santis    22-03-2018 V.2.2
  Selettore "1 via 2 posizioni" a relé tramite collegamento Bluetooth
  Piedini usati per seriale bluetooth:  TX=>0 RX=>1
  Linee di uscita:         D2 = canale 1,    D3 = canale 2
  Commuta 2 canali di uscita, ognuno su due posizioni.

  Comandi:
    A = seleziona uscita A
    B = seleziona uscita B
    P = inserisce la linea A1
    p = inserisce la linea B1
    c = comandi
// -------------------------------------------------------------------------------------------
*/

#define i     2       // uscita comando relay
#define p3  3      //  uscita

char dato;

void setup()
{
     pinMode(i, OUTPUT);               // comando switch 1
     pinMode(p3, OUTPUT);            // comando switch 2
     Serial.begin(9600);             // velocità di comunicazione
     titolo();
     accendi(i);   delay(500);  spegni(i);  // controllo iniziale
     accendiPRE(p3);  delay(500);  spegniPRE(p3);
}

void titolo()
{
  Serial.println(" -          Tecnatron Creation                    - ");
  Serial.println(" -          tecnatron@gmail.com               - ");
  Serial.println(" - Selettore bluetooth 2 canali               - ");
 Serial.println(" -  1 via / 2 posizioni                               - ");
  Serial.println(" - posizione iniziale su A                       - ");
  Serial.println(" --------------------------------------------------- ");
}

void comandi()
{
   Serial.println(" -  Comandi:               - ");
   Serial.println(" -  A = uscita A           - ");
   Serial.println(" -  B = uscita B           - ");
   Serial.println(" -  P = uscita A1         - ");
   Serial.println(" -  p = uscita B1         - ");
   Serial.println(" -  c = comandi          - ");
   Serial.println("  ------------------------- ");
}

void accendi(int pin)
{
   digitalWrite(pin, HIGH); // eccito il relè collegato al pin
   scrivi(pin);    Serial.println(" ON");
}

void spegni(int pin)
{
    digitalWrite(pin, LOW); // rilascio il relè collegato al pin
    scrivi(pin-1);    delay(10);    Serial.println(" ON");
}

void scrivi(int pin)
{
   Serial.print("Uscita ");   Serial.print(pin);
}

void accendiPRE(int pin)
{
   digitalWrite(pin, HIGH); // eccito il relè collegato al pin
   Serial.print("AUX  :  ON \n");
   // Serial.println(' ');
}

void spegniPRE(int pin)
{
   digitalWrite(pin, LOW); // rilascio il relè collegato al pin 
   Serial.print("AUX :  OFF \n");
   // Serial.println(' ');
}

void loop()
  {   while (Serial.available())
   {   dato= Serial.read(); // carattere che viene ricevuto dalla seriale
       Serial.print(dato); Serial.print(' ');
       switch(dato)
       { case 'A':  { spegni(i);      break;}       // Se ricevo "A"
         case 'B':  { accendi(i);     break;}       // Se ricevo "B"
         case 'P':  { accendiPRE(p3); break;} // Se ricevo "P"
         case 'p':  { spegniPRE(p3);  break;}  // Se ricevo "p"
         case 'c':  { comandi();      break;}      // Se ricevo "c"
         default: comandi();       
       }     
   }
  }
// ------------------------- Fine Programma ---------------------------------------------



RadioRama n°91 pag 40
Selettore di antenna 2 posizioni_PRE
_parte_seconda_Firmware RadioRama n°91 pag 40


> Arduino N° 30