Bonsoir à tous,
je réalise un petit projet personnel dont le but est de connaitre la vitesse de mon skate. Pour cela j’utilise un capteur à effet hall couplé à un petit écran de Nokia.
D’une part voici le programme pour afficher la vitesse sur le petit écran LCD:
//Mesure du nombre de tours avec capteur à effet Hall + aimant.
//Interruptions pour mesurer le temps entre 2 valeurs HIGH du pin 2.
//Capteur sur pin 2 et pull up interne sur pin 2 activé.
// pin 7 - (SCLK)
// pin 6 - (DIN)
// pin 5 - (D/C)
// pin 4 - (CS)
// pin 3 - (RST)
#include <Adafruit_GFX.h>
#include <SPI.h>
#include <Adafruit_PCD8544.h>
#include <avr/sleep.h>
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);
float tp_ms ;
volatile long lastTime;
volatile long period = 0;
void setup()
{
attachInterrupt(0,highTime, RISING);
digitalWrite(2, HIGH);
display.begin();
display.setContrast(50);
tp_ms = 0;
period = 0;
}
void loop()
{
if (period >= 0)
{
tp_ms = ((2 * 3.14 * 0.045) / period) * 3600;
period=0;
display.clearDisplay();// efface le lcd
display.setTextSize(2);
display.setTextColor(BLACK);
display.setCursor(20,4);
display.println(tp_ms, DEC);
display.display();// affiche lettres
delay(500);
}
}
void highTime ()
{
long time;
time = millis();
period = (time - lastTime);
lastTime = time ;
}
Mais voilà, j’aimerai pouvoir afficher la vitesse sur mon téléphone portable. J’utilise une petite carte Bluetooth JY-MCU qui marche à merveille pour allumer une petite led depuis mon téléphone avec le programme ci-dessous:
/* simple test LED */
char val; // variable pour recevoir les données du port série
int ledpin = 13; // LED connected to pin 2 (on-board LED)
void setup()
{
pinMode(ledpin = 13, OUTPUT); // broche 13 en mode sortie
Serial.begin(115200); // communication série en 115200bps
}
void loop() {
if( Serial.available() ) // si des données sont reçu sur le port série
{;} // ...rien...
val = Serial.read(); // lecture des données est stock dans 'val'
if( val == '0' ) // si '0' est reçue
{
digitalWrite(ledpin, LOW); // LED 13 est éteint
delay(1000); // attend une seconde
Serial.println("13 off"); // envoi "13 off" sur le port sortie
}
if( val == '1' ) // si '1' est reçue
{
digitalWrite(ledpin = 13, HIGH); // LED 13 est allumé on
delay(1000); // attend une seconde
Serial.println("13 on"); // envoi "13 on" sur le port sorti
}
}
Et enfin voilà mon problème, je ne sais absolument pas comment dire a la carte bluetooth d’envoyer ma vitesse sur mon téléphone. (j’utilise l’application Blue tem sur mon téléphone mais dans l’avenir j’aimerais me faire une petite application Processing).
Si vous savez comment faire, je serais très intéressé par votre aide.
Merci d’avance