informatique:gestion_de_3_leds_via_bluetooth
Table des matières
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
- Arduino “master” :
- Une Dreamer Nano V4.1 avec un ATmega32u4.
- Avec un shield.
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