Outils pour utilisateurs

Outils du site


informatique:gestion_de_3_leds_via_bluetooth

Gestion de trois leds via bluetooth

Suite à notre découverte du module bluetooth tel0026 et à un premier essais allumer une led via bluetooth, continuons l'apprentissage en utilisant cette fois un joystick d'un côté et trois leds de l'autre.

Mise en place

TODO: Ajouter photos!

Code "Master"

/* Minimal code for testing bluetooth module TEL0026 with a joystick
 
The circuit is based on Dreamer Nano V4.1, compatible Arduino Leonardo ( https://www.dfrobot.com/product-786.html ).
TEL0026 and button are plugged on Nano I/O Shield ( https://www.dfrobot.com/product-68.html )
 
Created 2017 by Simon Lefort.
*/
 
const int joyX = A0;
const int joyY = A1;
const int joyZ = 8; //button is on pin 8
 
byte joyXValue = 0;
byte joyYValue = 0;
byte joyZValue = 0;
 
void setup() {  
  Serial.begin(38400);   // Serial to talk with computer via USB
  Serial1.begin(38400);  // Serial to talk to bluetooth module TEL0026
}
 
void loop() {
  //lecture des capteurs
  joyXValue = analogRead(joyX) / 4; //équivalent à un map(valeur, 0, 1023, 0, 255)
  joyYValue = analogRead(joyY) / 4; 
  joyZValue = digitalRead(joyZ);
 
  //envoi
  Serial1.write("X");
  Serial1.write(joyXValue);
  Serial1.write("Y");
  Serial1.write(joyYValue);
  Serial1.write("Z");
  Serial1.write(joyZValue);
  Serial1.println();
 
  //debug
  Serial.print("X");
  Serial.print(joyXValue);
  Serial.print(" Y");
  Serial.print(joyYValue);
  Serial.print(" Z");
  Serial.println(joyZValue);
 
  delay(1000);
}

Code "Slave"

/* Minimal code for testing bluetooth module TEL0026 with leds.
 
This program must be used with "bluetooth-TEL0026-commande-avec-joystick.ino".
 
The circuit is based on Arduino Mega 2560. TEL0026 and leds are plugged on a shield.
 
Created 2017 by Simon Lefort.
*/
 
int ledPinRed = 14;
int ledBrightX = 15;
int ledBrightY = 16;
int incomingByte = 0;
String chaine = "";
 
byte xValue = 0;
byte yValue = 0;
byte zValue = 0;
 
void setup() {
  Serial.begin(38400);  //communicate via USB
  Serial1.begin(38400); //communicate via Bluetooth
 
  digitalWrite(ledBrightX, LOW);
  digitalWrite(ledBrightY, LOW);
  digitalWrite(ledPinRed, LOW);
}
 
void loop() {  
  if (Serial1.available() > 0){
    incomingByte = Serial1.read();
    delay(20);
    chaine.concat(incomingByte);
 
    if (isAlpha(incomingByte)){
      Serial.write(incomingByte);
      Serial.print(" ");
 
      if(incomingByte == 'X'){
        xValue = Serial1.read();
        chaine.concat(xValue);
        Serial.println(xValue);
      }
      else if(incomingByte == 'Y'){
        yValue = Serial1.read();
        chaine.concat(yValue);
        Serial.println(yValue);
      }
      else if(incomingByte == 'Z'){
        zValue = Serial1.read();
        chaine.concat(zValue);
        Serial.println(zValue);
      }
    }
  }
 
  analogWrite(ledBrightX, xValue);
  analogWrite(ledBrightY, yValue);
  digitalWrite(ledPinRed, zValue);
  delay(50);
 
  if(chaine != "") {
    if(incomingByte == 10 || chaine.length() > 28){
      //Debug:
      Serial.println(chaine);
 
      chaine = "";
      xValue = 0;
      yValue = 0;
      zValue = 0;
    } 
  }
}
 
/* NOTES:
Ce qu'on lit dans le terminal série :
 
X 126
Y 129
Z 1
88126891299011310
 
*/
informatique/gestion_de_3_leds_via_bluetooth.txt · Dernière modification : 2020/08/09 13:03 de 127.0.0.1