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
> Arduino N° 30
Selettore di antenna 2 posizioni_PRE _parte_seconda_Firmware RadioRama n°91 pag 40 |
> Arduino N° 30
Nessun commento:
Posta un commento