Flame Sensor

Nome componente: Flame Sensor

Come funziona:  il sensore rileva la presenza di fiamme, inviando poi un valore TRUE o FALSE sul pin D0.

Foto componente: 

 

 

 

 

 

 

 

Istruzioni collegamento: 

Collegare il pin GND con il pin GND di Arduino, il pin VCC con il pin +5V, il pin D0 ad un pin digitale qualunque, e regolare il trimmer sul sensore per definire il valore sopra al quale verrà inviato un segnale TRUE.
Non è necessario collegare il pin A0.

Codice di esempio: 

void setup() {
 pinMode(8,INPUT);
 Serial.begin(9600);
}

void loop() {
 int fuoco= digitalRead(8);
 if(fuoco == 0){
  Serial.println("RILEVATA FIAMMA");
 }
}

                                                                                                                                                        

Amoretti Fabio – Gorlero Filippo

 

Fotoresistore

Nome componente:  SunFounder Photoresistor

Come funziona: Il fotoresistore è un componente che varia la sua resistenza in base alla quantità di luce presente. La resistenza diminuisce con l’aumentare della quantità di luce, quindi quando leggeremo valori bassi saremo in presenza di una grande quantità di luce. Mentre quando leggeremo valori alti avremo una minore quantità di luce.

Foto componente:

Istruzioni collegamento:  Il fotoresistore utilizza 3 pin: GND, VCC e SIG.

GND –  GND(massa)

VCC- 5V

SIG- A0, o qualsiasi pin analogico

Librerie necessarie:  nessuna libreria specifica richiesta

Codice di esempio:

#define fotocellula A0

int Val = 0;

void setup(){
    Serial.begin(9600);
}

void loop(){
    Val = analogRead(fotocellula);
    Serial.println(Val);
    delay(1000);
}

Il programma è molto semplice, all’inizio dichiariamo che la fotocellula è collegata ad A0, dichiariamo un variabile Val ed inizializziamo in monitor seriale. Nel loop leggiamo il valore del fotoresitore e lo mettiamo detro la variabile Val ed in seguito lo stampiamo su monitor seriale.

Made by:

Faudella Davide & Franco Edoardo

Sensore ad ultrasuoni

Lurgio – Ruggiero

Nome componente: Sensore ad Ultrasuoni.

Sigla modello: HC-SR04.

 

Come funziona: Permette la misura di distanze in un campo di misura che si estende da 2 centimetri a 4 metri, con una risoluzione di 1cm

Istruzioni collegamento: Per connettere il sensore HC-SR04 ad Arduino basta collegare i 2 pin di alimentazione rispettivamente a VCC e GND e gli altri 2 pin (Trigger e Echo) a 2 ingressi digitali.

Codice funzionante:

const int triggerPort = 9;
const int echoPort = 10;

void setup() {
 pinMode(triggerPort, OUTPUT);
 pinMode(echoPort, INPUT);
 Serial.begin(9600);
 Serial.print("Sensore ad Ultrasuoni: ");

}

void loop() {
 digitalWrite(triggerPort, LOW); //uscita del trigger bassa
 digitalWrite(triggerPort, HIGH); //impulso di 10 microsec su trigger
 delayMicroseconds(10);
 digitalWrite(triggerPort, LOW);
 long durata = pulseIn(echoPort, HIGH);
 long distanza = 0.034 * durata / 2;
 Serial.print("distanza: ");

if(durata>38000){
 Serial.println("Fuori portata ");
 }

else{
 Serial.print(distanza);
 Serial.println(" cm ");
 }

}

 

Joystick

Nome componente: JOYSTICK

 

 

 

 

 

Sigla modello: B103 3810

Il componente è una levetta analogica come quella presente sui joystick ps2;
E’ in grado di fornire in output i valori di x e y da 0 a 1023, che rappresentano la posizione della levetta nello spazio. Grazie a questi due valori possiamo definire la direzione della levetta.
Il componente inoltre produce in output anche un booleano, che sarà 0 se la levetta è premuta e 1 in caso non lo fosse.

 ISTRUZIONI COLLEGAMENTO:

Il componente è predisposto di 5 pin:

  1. Y: fornisce alla scheda il valore di y sul joystick, va collegato su pin analogico e fornisce valori tra 0 e 1023;
  2. X: fornisce alla scheda il valore di x sul joystick, va collegato su pin analogico e fornisce valori tra 0 e 1023;
  3. Bt: fornisce alla scheda un booleano, in funzione della pressione esercitata sul joystick (“0” premuto, “1” non premuto);
  4. Vcc: il pin utilizzato per alimentare il componente e va collegato sul 5 Volt;
  5. GND: il pin utilizzato per la massa.

 

Per il codice che abbiamo scritto non è stato necessario utilizzare alcuna libreria esterna, abbiamo gestito noi le casistiche.
L’unica libreria che è stato necessario utilizzare era fornita dal cpp ed è la <string.h>, e ci è servita per poter comporre la stringa da stampare sulla seriale.

Codice di esempio :

#include <string.h>
const int xPin = A1;   //Dichiara il pin per la x (A1)
const int yPin = A0;   //Dichiara il pin per la y (A0)
const int swPin = 7;   //Dichiara il pin dello switch (7)

/* Funzione che ritorna sotto forma di stringa
   la posizione della levetta analogica         */

String direzione(){
 int x = analogRead(xPin);     //Legge il valore di x
 int y = analogRead(yPin);     //Legge il valore di y
 bool z = digitalRead(swPin);  //Legge il valore di z
 String dir = "";
 
/* In base ai valori di x e y definiamo 
      la posizione della leva             */

 if ( x >= 0 && x <= 20 && y > 500 && y < 520 )
 dir = "sinistra ";
 //Serial.print("Sinistra");

else if ( y >= 0 && y <= 20 && x > 475 && y < 495 )
 dir = "su ";
 //Serial.print("Su");

else if ( x >= 475 && x <= 495 && y > 1015 )
 dir = "giu ";
 //Serial.print("Giu");

else if ( x >= 1015 && y > 500 && y < 520 )
 dir = "destra ";
 //Serial.print("Destra");

else 
 dir = "centro ";

/* Aggiunge alla direzione, un booleano che 
   indica se la levetta sia premuta o meno */

 dir += z;

// Ritorna la stringa composta da direzione + pressione
 return dir;
 }

/* Dichiariamo il tipo di utilizzo del pin 
  e inizializziamo la seriale              */
void setup()
{
pinMode(swPin,INPUT);
digitalWrite(swPin, HIGH);
Serial.begin(9600);
}

void loop()
{
Serial.print(direzione());
Serial.print("\n");
delay(500);
}

Display a 7 Segmenti

Scheda Componente:

 

Nome Componente: Display 7 Segmenti

Sigla Modello:  SMA42056

Foto Componente:

Istruzioni Collegamento:

Sono stati collegati 8 pin, dalla sezione DIGITAL, sulla breadboard per collegare il display a 7 segmenti all’Arduino, mentre un’ottavo pin nella sezione POWER per poi essere collegato anch’esso alla breadboard in modo da far accendere il display a 7 segmenti.

Librerie Necessarie: Nessuna

Codice Di Esempio: 

// Definisco la mappatura tra pin e segmenti
int G=4;
int F=5;
int A=6;
int B=7;
int E=8;
int D=9;
int C=10;
int DP=11;

void setup() {


}

void loop() {
 lettera_C();
 delay(1000);
 lettera_I();
 delay(1000);
 lettera_A();
 delay(1000);
 lettera_O();
 delay(1000);

}
// Funzioni per scrivere alcuni caratteri (catodo comune)
void lettera_C(){
 digitalWrite(A, HIGH);
 digitalWrite(B, LOW);
 digitalWrite(C, LOW);
 digitalWrite(D, HIGH);
 digitalWrite(E, HIGH);
 digitalWrite(F, HIGH);
 digitalWrite(G, LOW);
 digitalWrite(DP, LOW);
}
void lettera_I(){
 digitalWrite(A, LOW);
 digitalWrite(B, HIGH);
 digitalWrite(C, HIGH);
 digitalWrite(D, LOW);
 digitalWrite(E, LOW);
 digitalWrite(F, LOW);
 digitalWrite(G, LOW);
 digitalWrite(DP, LOW);
}
void lettera_A(){
 digitalWrite(A, HIGH);
 digitalWrite(B, HIGH);
 digitalWrite(C, HIGH);
 digitalWrite(D, LOW);
 digitalWrite(E, HIGH);
 digitalWrite(F, HIGH);
 digitalWrite(G, HIGH);
 digitalWrite(DP, LOW);
}
void lettera_O(){
 digitalWrite(A, HIGH);
 digitalWrite(B, HIGH);
 digitalWrite(C, HIGH);
 digitalWrite(D, HIGH);
 digitalWrite(E, HIGH);
 digitalWrite(F, HIGH);
 digitalWrite(G, LOW);
 digitalWrite(DP, LOW);
}