Maïdenn, Gregoire & Soulaimane
DéDétecteur d'accéléaccélération
Soulaimane, Greg,Gregoire, MaïMaïdenn.
Projet effectuer dans le cadre du cours de prototypage, dans le but d’d’apprendre les fonctions de base de l’l’Arduino.
Description du projet :
ÀÀ l’l’aide d’d’un Arduino nous avons codécodé et brancher un accéléromèaccéléromètre capable de dédétecter l' accéléaccélération supésupérieur àà 5g dans un des 3 axes (x,y,z). Lorsque l’accéléromèl’accéléromètre subit une accéléaccélération suffisante, le montage permet àà une led de s’s’allumer et donc d’d’indiquer que l’accélél’accélération àà atteint au moins 5g.
MatéMatériel :
1 Arduino
1 Shield Arduino
1 Led
1 RéRésistance
2 Fils conducteurs
1 planche conductrice
1 AccéléromèAccéléromètre et son câcâble de connexion
Code :
// This example shows the 3 axis acceleration.
#include "LIS3DHTR.h"
#include <Wire.h>
LIS3DHTR<TwoWire> LIS; //IIC
#define WIRE Wire
#define LED 9
void setup() {
Serial.begin(115200);
while (!Serial) {};
//LIS.begin(WIRE); //IIC init dafault :0x18
LIS.begin(WIRE, 0x19); //IIC init
delay(100);
// LIS.setFullScaleRange(LIS3DHTR_RANGE_2G);
// LIS.setFullScaleRange(LIS3DHTR_RANGE_4G);
// LIS.setFullScaleRange(LIS3DHTR_RANGE_8G);
LIS.setFullScaleRange(LIS3DHTR_RANGE_16G);
// LIS.setOutputDataRate(LIS3DHTR_DATARATE_1HZ);
// LIS.setOutputDataRate(LIS3DHTR_DATARATE_10HZ);
// LIS.setOutputDataRate(LIS3DHTR_DATARATE_25HZ);
LIS.setOutputDataRate(LIS3DHTR_DATARATE_50HZ);
// LIS.setOutputDataRate(LIS3DHTR_DATARATE_100HZ);
// LIS.setOutputDataRate(LIS3DHTR_DATARATE_200HZ);
// LIS.setOutputDataRate(LIS3DHTR_DATARATE_1_6KHZ);
// LIS.setOutputDataRate(LIS3DHTR_DATARATE_5KHZ);
LIS.setHighSolution(true); //High solution enable
}
void loop() {
if (!LIS) {
Serial.println("LIS3DHTR didn't connect.");
while (1);
return;
}
//3 axis
Serial.print("x:"); Serial.print(LIS.getAccelerationX()); Serial.print(" ");
Serial.print("y:"); Serial.print(LIS.getAccelerationY()); Serial.print(" ");
Serial.print("z:"); Serial.println(LIS.getAccelerationZ());
if (float(LIS.getAccelerationX()) >= 1.00)
{
digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level)
delay(100); // wait for a second
digitalWrite(LED, LOW); // turn the LED off by making the voltage LOW
delay(100); // wait for a second
}
else if (float(LIS.getAccelerationY()) >= 1.00)
{
digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level)
delay(100); // wait for a second
digitalWrite(LED, LOW); // turn the LED off by making the voltage LOW
delay(100); // wait for a second
}
else if (float(LIS.getAccelerationZ()) >= 1.00)
{
digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level)
delay(100); // wait for a second
digitalWrite(LED, LOW); // turn the LED off by making the voltage LOW
delay(100); // wait for a second
}
delay(500);
}
Montage :
Explication du montage :
L’L’Arduino est équipééquipé de son shield et est branchébranché àà un ordinateur. L'accéléromèaccéléromètre est connectéconnecté àà une prise analogique de l’l’Arduino en I2C. La Led est connectéconnectée au port 9 et àà la masse. Lorsque que le capteur reçreçoit un signal supésupérieur àà 5g dans un axe, alors la Led s’s’allume via le signal envoyéenvoyé par l’l’Arduino.