[Arduino] Programme accéléromètre analogique

Bonjour,

Actuellement en classe de STI2D SIN (Système information et numérique), je suis, avec mon groupe, en train de réaliser notre projet de fin d’année coefficient 12 (6 par nos professeurs, 6 par le Jury).

Notre projet consiste à la réalisation d’un sac à dos connecté pour cycliste.

Notre groupe est constitué de 4 personnes, avec 4 tâches réparties :

Géolocalisation (GPS/GSM)

Mouvement (Accéléromètre direction droite/gauche - afficheur)

Mouvement (Accéléromètre freiner - afficheur)

Alimentation

Composants :

54 LED Rouge

3 Accéléromètres http://store.arduino.cc/product/T000020

Le but est donc que lorsque le cycliste lève sa main à gauche ou droite de 90 à 180°, cela envoie un signal au sac qui affichera une flèche sur l’afficheur LED qui indiquera le sens dans lequel le cycliste tournera.

Lorsque le cycliste freinera, un signal sera envoyé à l’afficheur LED pour afficher « STOP ».

Voici les deux algorithmes :

Nous avions en premier lieu choisi des accéléromètres numériques mais bien trop compliqué à l'utilisation, nous sommes donc passé à l'analogique.
Lorsqu'il ne se passe rien, on a 2,6 V. Lorsque l'on va lever le bras droit, cela va augmenter de 1V (soit 3,6 V) et donc on va activer les LED à partir de 3,6 V.
Pour le bras gauche, on va allumer les LED lorsque la tension sera de moins 1 V donc 1,6 V.
Pour le "stop", il faut voir avec les valeurs constantes et capter la décélération.

LE PROBLEME :

Nous sommes des élèves de terminale qui n'avons jamais réaliser de programme. Nous avons vu les bases de la programmation, mais cela ne nous permet pas de réaliser un programme entier et surtout, fonctionnel.
Nous avons quand même tenter des brouillons de programme, que voici :

Accéléromètre droite/gauche

void setup()
Lire l’accéléromètre (Read)
Valeur > 676 //Valeur supérieur à 1V au dessus de 3,6 V
Si (If) oui
Allume Led Jaune1 (Tourner à droite → )
Si (if) non
//Ne s’allume pas
void loop() //Faire une boucle
delay(100) //Obtenir une nouvelle valeur toutes les 100ms

Valeur < 266 //Valeur inférieur à 1V en dessous de 3,6 V
Si (If) oui
Allume Led Jaune2 (Tourner à gauche ←)
Si (If) non
//Ne s’allume pas
void loop() //Faire une boucle
delay(100) //Obtenir une nouvelle valeur toutes les 100ms

____________________________________________________

Accéléromètre "stop" (Premier brouillon)

void setup()
Lire l’accéléromètre (Read)
Valeur
Si (If) oui 
Allume Led Rouge (STOP)
Si (iF) non
Ne s’allume pas
void loop() //Faire une boucle
delay(100) //Obtenir une nouvelle valeur toutes les 100ms

____________________________________________________

Accéléromètre "stop" (Second brouillon)

const int led=13  // déclaration constante de broche
void setup() 
pinMod (LED, OUTPUT); // met la led en sortie
analogRead(accelerometer) //lire l’accéléromètre
{
if (valeur > seuil) // si valeur > seuil
else //alors
digitalWrite(LED, HIGH); //met la broche au niveau haut, allume la LED
delay(1000); //pause de 1000ms
}
{
if (valeur< 656 max)  //si valeur < seuil max
else //alors
digitalWrite(LED, OUT); //met la broche à l’état bas, éteins la LED
delay(1000); //pause de 1000ms
}
voidloop() //recommencer, faire une boucle

Donc s'il y a une âme généreuse qui peut nous sauver en nous corrigeant/complétant ce n'est pas de refus :frowning:

Merci pour votre aide !

A LIRE AVANT TOUT

c'est pas des brouillons, à 4, vous n'êtes pas capables de lire les exemples fournis dans l'ide et de prendre les exemples dans les librairies fournies avec le matériel?