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);
}

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 ");
 }

}

 

Gas Sensor MQ2

NOME COMPONENTE: gas sensor module

COME FUNZIONA: Esso è un dispositivo che rileva la presenza di gas nell’aria. E’ generalmente usato per rilevare gas combustibili, infiammabili e tossici ma oltre a questo è in grado di rilevare la mancanza di ossigeno nell’aria.

SIGLA MODELLO:  MQ2

SCATTO VIRTUALE:

ISTRUZIONI COLLEGAMENTO:

Il pin GND (ground) del sensore deve essere collegato al pin GND della scheda Arduino, il pin VCC del sensore deve essere collegato aL pin 5V dellla scheda, il pin A0 del sensore deve essere collegata sulla scheda ad un pin analogico (analog pin) mentre il pin D0 deve essere collegato sulla scheda ad un pin digitale (digital pin).

CODICE ESEMPIO:

// D0 7
 // A0 A0
 // GND GND
 // VCC 5V

const int ledPin = 13;//the led attach to pin13
 const int analogPin=A0; //the DO on the Module attach to Pin7 on the SunFounder
 const int digitalPin=7; //the D0 attach to pin7
 int Astate=0;
 boolean Dstate=0;
 void setup()
 {
 //set the pins state
 pinMode (digitalPin,INPUT);
 pinMode(ledPin,OUTPUT);
 Serial.begin(9600);
 }
 void loop()
 {
 Astate=analogRead(analogPin);//read the value of A0
 Serial.println(Astate); //print
 Dstate=digitalRead(digitalPin);//read the value of D0
 Serial.println(Dstate);//print
 delay(200);//delay 200ms
 }

Tilt Switch

Nome Componente: Tilt Switch

Come funziona: Questo componente permette di rilevare movimenti, scosse o ribaltamenti dell’oggetto a cui viene fissato. Funziona, il linea di massima, grazie ad una “pallina” posta all’interno del cilindro, che a seconda dei movimenti si sposta chiudendo il circuito. I suoi utilizzi principali sono ad esempio per il  rilevamento di scosse o per progetti di sicurezza nei quali bisogna impedire che il progetto venga spostato dalla sua sede originale

Foto Componente:

Tilt Switch

Istruzioni collegamento:


Collegare il pin VCC del sensore ai +5V della scheda Arduino, il pin GND con il pin GND di Arduino, e il pin SIG con uno qualunque dei pin digitali della scheda.

Codice di esempio:

#define tilt 12

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

void loop() {
  if(digitalRead(tilt) == true){
     Serial.println("In piano");
  }else if(digitalRead(tilt) == false){
     Serial.println("Inclinato");
  }
}

Ecco il link per il file .ino : tiltSwitch

Amoretti Fabio – Gorlero Filippo

Sound Sensor

Nome componente:  SunFounder SOUND SENSOR

Come funziona:  Il sound sensor (o sensore sonoro) è un componente che riceve in input onde sonore e le trasforma fornendo in output un segnale di tipo elettrico. Le onde sonore fanno vibrare la sottile membrana e modificano così la capacitanza, causando una variazione di tensione. Questo sbalzo di tensione è molte debole ed ha bisogno di essere amplificato, per questo vi è il LM358 che ne amplifica la potenza di 100 volte.

Sigla modello:  MK1

Foto componente:

Istruzioni collegamento:  Il sound sensor 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:

const int soundPin = A0; //dichiaro il pin del suono su un pin analogico A0

void setup()
{
 Serial.begin(9600); //inizializzo il monito seriale
}

void loop()
{
 int value = analogRead(soundPin); //leggo il valore analogico ricavato dal sensore
 Serial.println(value); //stampo il valore trovato sul monitor seriale
 
 }

Il programma è molto semplice.  Come scritto nei commenti dichiaro il pin del sensore collegato su A0 e inizializzo il monitor seriale. In seguito leggo il valore dal sound sensor e lo stampo sul monitor seriale.

Made by:

Faudella Davide & Franco Edoardo