Bonjour à tous,
Je viens ici pour un peu d'aide étant débutant avec l'arduino.
Donc le projet est de fabriquer un chronographe pouvant mesurer la vitesse des billes sortant d'une réplique d'airsoft.
Le principe est assez simple: la bille passe successivement devant 2 capteurs infrarouges espacé de Xcm. Les capteurs qui ne reçoivent plus de rayon IR envoi une donnée. le temps de passage entre les deux capteurs est enregistrée puis utilisée pour obtenir la vitesse du projectiles.
Cependant j'ai quelques soucis.
J'ai mis le schéma de montage en pièce jointe. Pour les détails j'utilise des LED IR classiques, la résistance placée avant celles-ci est de 10ohms. les recepteurs IR sont des VS 1838B.
et voici pour le code (que j'ai récupéré sur un site d'airsoft pour ne pas partir de zéro, merci à son créateur)
/* création d'un chronographe pour mesurer la puissance des répliques d'airsoft
* matériel: arduino, led IR, recepteur IR, ecran lcd 16:2, fil, resistance, resistance variable
*
* ______________________________________________
*
* Parametres ecran
*
* The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* LCD VSS pin to ground
* LCD VCC pin to 5V
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
*/
// ajout de la librairie pour l'écran
#include <LiquidCrystal.h>
//intialisation des Pin pour l'ecran
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//declaration des variables- capteur infrarouge 1&2
#define CIr1 6
#define CIr2 7
long startTime ; // Temps au passage devant le 1er capteur
long endTime ; // Temps au passage devant le deuxieme capteur
long deltaTime ; // Temps de passage entre les deux capteurs
void setup() {
Serial.begin(9600);
pinMode(CIr1, INPUT);
pinMode(CIr2, INPUT);
}
void loop() {
Serial.println("OK");
while ( digitalRead(CIr1)) // attendre le passage devant le 1er capteur
{ } startTime = micros(); // enregistrer le temps au passage du 1er capteur
do{ }while(digitalRead(CIr2)); // attendre le passage devant le 2em capteur
endTime= micros(); // enregistrer le temps au passage du 2em capteur
deltaTime = endTime - startTime; // calculer le temps de passage entre les 2 capteurs
Serial.println(deltaTime); // affichage sur le port série
Serial.println(196000L/(deltaTime)); // 196000 représente la distance entre les 2 capteurs en pieds x 1000000 (à ajuster)
Serial.println("fps");
}
Si il y a des paramètres écran c'est parce que je souhaite en mettre un pour la suite, mais c'est autre chose !
Le probleme plus exact et que quand je branche tout selon se que j'ai défini et selon l'utilisation des capteurs, j'ai n'est aucune donnée quand j'ouvre mon port série. J'ai seulement le "OK" du départ qui s'affiche.
Si vous aviez un bout de solution ça serait sympathique
