Différences entre versions de « Arduino A3144 »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
 
Ligne 11 : Ligne 11 :
  
 
= Partie logicielle =
 
= Partie logicielle =
== Import des librairies ==
+
== Récupérer la présence de champs magnétique ==
Avant de continuer, il faut importer la librairie nécessaire à l'utilisation du BMP280, une librairie pour les capteurs ''Adafruit'' et normalement, celle pour le protocole I2C est déjà installée.
+
Un exemple de code qui permet de récupérer la présence de champs magnétique. Notez l'utilisation d'une résistance de ''pull-up'' sur le PIN 2 !
{|align=center
 
|-
 
|[[Fichier:Arduino_IDE_I2C_install.png|centré|400px]] || [[Fichier:Arduino_IDE_BMP280_install.png|centré|400px]] || [[Fichier:Arduino_IDE_ADAFRUIT_SENSOR_install.png|centré|400px]]
 
|-
 
|align=center| Librairie I2C ||align=center| Librairie BMP280||align=center| Librairie capteur ''Adafruit''
 
|}
 
 
 
== Récupérer la température ==
 
Un exemple de code qui permet de récupérer la température, la pression et l'altitude:
 
 
<source lang="c">
 
<source lang="c">
#include <Wire.h>
+
const int hallPin = 2;     // le PIN de lecture du A3144
#include <Adafruit_Sensor.h>
+
const int ledPin =  13;     // le PIN de la LED de l'arduino
#include <Adafruit_BMP280.h>
+
// variables will change:
 
 
Adafruit_BMP280 bmp; // I2C
 
 
 
//Variables
 
float pressure;   //Pour stocker la pression (Pa)
 
float temperature;  //Pour stocker la température (oC)
 
int altimeter;    //Pour stocker l'altitude (m)
 
  
 
void setup() {
 
void setup() {
   Serial.begin(9600);
+
   // Configuration en sortie du PIN 13
   bmp.begin(); //Connexion au capteur
+
  pinMode(ledPin, OUTPUT);    
   Serial.println(F("Reading BMP280 : "));
+
  // Configuration en entrée du PIN 2
 +
   pinMode(hallPin, INPUT);
 +
  // Utilisation d'une résistance de pull-up sur le PIN 2
 +
   digitalWrite(hallPin, HIGH);
 
}
 
}
  
void loop() {
+
void loop(){
   //Lecture des valeurs du capteur
+
   if (digitalRead(hallPin) == LOW) {
  pressure = bmp.readPressure();
+
    // Présence d'un champ, allumer la LED:  
  temperature = bmp.readTemperature();
+
    digitalWrite(ledPin, HIGH);
  altimeter = bmp.readAltitude (1020); //changez en fonction de la pression barométrique de votre ville (http://www.meteociel.fr/observations-meteo/pression.php)
+
   }
  Serial.print(F("Pressure: "));
+
   else {
   Serial.print(pressure);
+
    // Pas de champ, éteindre la LED:
   Serial.print(F(" Pa\t"));
+
    digitalWrite(ledPin, LOW);  
  Serial.print(F("Temp: "));
+
   }
  Serial.print(temperature);
 
  Serial.print(F(" C\t"));
 
   Serial.print(F("Altimeter: "));
 
  Serial.print(altimeter);
 
  Serial.println(F(" m"));
 
  delay(5000);
 
 
}
 
}
 
</source>
 
</source>

Version actuelle datée du 10 octobre 2016 à 08:48

Partie électronique

Le composant

Le A3144 est au format TO-92.

A3144.jpg

Ce composant possède une sortie numérique qui est à 5v en l'absence de champ magnétique et 0v sinon.

Le montage

Le montage suivant prévoit un fil data qui nous permettra de lire le retour du A3144 sur le PIN 2 de l'Arduino.

A3144 diagram.png

Partie logicielle

Récupérer la présence de champs magnétique

Un exemple de code qui permet de récupérer la présence de champs magnétique. Notez l'utilisation d'une résistance de pull-up sur le PIN 2 !

const int hallPin = 2;     // le PIN de lecture du A3144
const int ledPin =  13;     // le PIN de la LED de l'arduino
// variables will change:

void setup() {
  // Configuration en sortie du PIN 13
  pinMode(ledPin, OUTPUT);      
  // Configuration en entrée du PIN 2
  pinMode(hallPin, INPUT);
  // Utilisation d'une résistance de pull-up sur le PIN 2
  digitalWrite(hallPin, HIGH);
}

void loop(){
  if (digitalRead(hallPin) == LOW) { 
    // Présence d'un champ, allumer la LED:    
    digitalWrite(ledPin, HIGH);  
  } 
  else {
    // Pas de champ, éteindre la LED:
    digitalWrite(ledPin, LOW); 
  }
}