Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« Arduino A3144 » : différence entre les versions

De The Linux Craftsman
 
(Une version intermédiaire par le même utilisateur non affichée)
Ligne 7 : Ligne 7 :


== Le montage ==
== Le montage ==
Le montage suivant prévoit un fil ''data'' qui nous permettra de lire le retour du ''A3144''.
Le montage suivant prévoit un fil ''data'' qui nous permettra de lire le retour du ''A3144'' sur le PIN 2 de ''l'Arduino''.
[[Fichier:a3144_diagram.png|centré|400px]]
[[Fichier:a3144_diagram.png|centré|400px]]


= 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>

Dernière version du 10 octobre 2016 à 08:48

Partie électronique

Le composant

Le A3144 est au format TO-92.

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.

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