Skip to main content

Maïdenn, Gregoire & Soulaimane

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

2 Fils conducteurs

1 planche conductrice

1 AccéléromèAccéléromètre et son 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.