1. Arduino
    1. Allarme magnetico
    2. Collegamento con modulo Blue Tooth
    3. Collegamento con Pure Data
    4. Collegamento con modulo ESP8266
  2. Raspberry
    1. Collegamento SSH
    2. Accensione LED con Python
    3. Accensione LED con Mathematica
    4. Collegamento con smartphone tramite TouchOSC
    5. Utilizzo del convertitore MCP3008
  3. Pure Data
    1. Collegamento con controller MIDI
Blog
Media

Allarme magnetico

Un sensore magnetico digitale rileva la posizione on/off per far scattare un allarme

 

/*ALLARME_3.5
author........................FABIO
date..........................6 sept 2015

Arduino alimenta la mia interfaccia +5V
Il pin A0 è collegato all'uscita dello stato del magnete
Il pin 7 è settato ad uscita alto/basso a seconda dello
stato del magnete: se il magnete:
magnete in linea=>tensione bassa=> pin 7 basso=> SILENZIO
magnete NON in linea=> tensione alta=> pin 7 alto=> ALLARME

*/

const int led=13; //led di controllo
const int ledMagnete=12;
const int Magnete=0; //uscita magnete pin 0 (A0 analogico)
const int Relay=7; //pin 7 collegato al relay
int Tensione=0; //inizializzazione a 0 Volt
const int Control=2; //il pin 2 digitale è collegato all'interruttore
int i=0; //contatore per la prima volta che si accende il sistema
int j=0; //contatore per la prima volta che si apre la porta
int ValoreControl=0; //inizializzazione tensione pin 2

void setup()
{
Serial.begin(9600);
//inizializza il pin 7 come output da collegare
// al relay e il 13 e 12 (led) come uscita
pinMode(led,OUTPUT);
pinMode(ledMagnete,OUTPUT);
pinMode(Relay,OUTPUT);
pinMode(Control,INPUT);
digitalWrite(Relay,LOW);
digitalWrite(Control,LOW);
}

////////////////////////////////////
//////////TEMPORIZZATORE///////////
//passano k secondi/////////////
//ogni accensione e spegnimento ///
//led dura un secondo//////////////
///////////////////////////////////
void AttesaInnesco(){
Serial.print("ATTESAINNESCO");
digitalWrite(ledMagnete,LOW);
for(int k=1;k<10;k++)
{
digitalWrite(led,HIGH);
delay(500);
digitalWrite(led,LOW);
delay(500);
}
i++;
}
/////////////////////////////////////
//CONTROLLO STATO ON OFF PULSANTE
/////////////////////////////////////
int OnOff(){
if(ValoreControl==HIGH){
j==0;
return 1;
}
else {
j==1;
return 0;//// qui
}
}

///////////////////////////////////////////
////LOOOOOOOOOOOOOOOOPPPPP allarme/////////
///////////////////////////////////////////
void loop(){
ValoreControl=digitalRead(Control);
OnOff();
//
if (OnOff()==1)// allarme inserito
{ Serial.println("ON");
if(i==0)//se è la prima volta aspetta un tempo definito lampeggiando
{
AttesaInnesco();
}
Serial.println("CICLO ALLARME;;;;;;;;;;;;;;;");
Tensione=analogRead(Magnete);



//loop SILENZIO, se il magnete è COLLEGATO
// la tensione va sotto 1024.
//Non c'è uscita e il relé non si carica
if(Tensione<1020 && j==0)
{
Serial.print("SILENZIO");
Serial.println(Tensione);//al pin 7 arriva tensione bassa
digitalWrite(Relay,LOW);
digitalWrite(ledMagnete,LOW);
}

//loop ALLARME, se il magnete è SCOLLEGATO
// la tensione va sopra la soglia.
//C'è uscita e il relé si carica
else
{
j==1;
Serial.print(Tensione);
Serial.println("ALLARME");//al pin 7 arriva il massimo di tensione
Serial.print("j===");
Serial.println(j);
digitalWrite(Relay,HIGH);
digitalWrite(ledMagnete,HIGH);
delay(500);
}

}
else {
Serial.println(" OFF");//allarme disinserito
i=0; //allarme disinserito
digitalWrite(led,LOW); //allarme disinserito
digitalWrite(Relay,LOW); //allarme disinserito

}
}//fine ciclo loop