Bonjour à tous.
J'ai vue de nombreux sujet qui parle de ces type de projet. mais ne trouve pas de réponse a mon problème.
Je suis père e famille de deux petits garçons. Il y a quelque temps, j’ai trouvé une voiture radio commandé électrique sans commande. J’avais dans un carton une carte similaire a une arduino uno r3 marque chinoise. Après avoir vue plusieurs tutos j’avais acheté quelque élément électronique tel un ESC, un servo SG90 et une hc05. Car je voulais le piloter via un vieux smartphone androïde compatible BTH
Je me suis remis sur le petit projet, il y a quelques jours et je block. Je ne comprends pas mon problème.
Si je tourne, pas de problème à première vue. Je tourne à droite et à gauche. Dans l’application que j’ai trouvée, Arduino Bth contoler. Si je n’appuie pas sur droite ou gauche, je demande à centrer mon servo.
Puis perte de connexion Bth après un certain temps.
Si j’accélère ou recule, là aussi pas l’impression d’avoir de problème. Ici aussi si je n’appuie pas sur avancer ou reculer, je demande l’arrêt. Mais là encore perte de connexion après un certain temps
Si je viens à tourner et accéléré je perds direct (1min maxi) la connexion Bth.
J’ai hier mis des résistances comme sur les exemples avec la hc05. pensans que cela alait resoure le problème. Même problème, je ne comprends pas.
j'ai fais plusieurs essais, visible dans le programme si dessous. tous le même problème.
#include <Servo.h>
#include <SoftwareSerial.h>
SoftwareSerial HC05(2, 3); // (TXD, RXD) du HC-05
Servo myServo; // déclaration servo direction
Servo ESC; // déclaration servo moteur
int val = 0;
void setup()
{
Serial.begin(9600); // liaison série avec pc
HC05.begin(9600); // liaison série avec module hc05
myServo.attach(9); // broche de raccordement servo
myServo.write(90); // demande de ce mettre au centre
ESC.attach(7, 1000, 2000);
}
void loop()
{
// code test 1 case (test beuthoo remplacer Serial par HC05)
if (HC05.available()) {
int BT_input = HC05.read();
HC05.write((char) BT_input);
switch (BT_input) {
case 'L': // tourner a gauche
myServo.write(150); // position angle servo
break;
case 'C': //centré servo
myServo.write(90); // position angle servo
break;
case 'R': // tourner a droite
myServo.write(30); // position angle servo
break;
val= map(val, 0, 510, -90, 90);
case 'F':
ESC.write(20); //carret = av
break;
case 'S': //croix = stop
ESC.write(90);
break;
case 'B': //cercle = ar
ESC.write(110);
break;
}
/*
// code test 2 if (test beuthoo remplacer Serial par HC05)
if (Serial.available())
{
char commande = Serial.read(); // on lit
if(commande == 'L'){
myServo.write(0);
}
else if(commande == 'C'){
myServo.write(90);
}
if(commande == 'R')
{
myServo.write(180);
}
else if(commande == 'C')
{
myServo.write(90);
}
if(commande == 'F')
{
ESC.write(00); //carret = av
}
else if(commande == 'S') //croix = stop
{
ESC.write(90);
}
if(commande == 'B') //cercle = ar
{
ESC.write(180);
}
else if(commande == 'S') //croix = stop
{
ESC.write(90);
// code test 2 if (test beuthoo remplacer Serial par HC05)
if (HC05.available())
{
char commande = HC05.read(); // on lit
if(commande == 'L'){
myServo.write(10);
}
else if(commande == 'C'){
myServo.write(90);
}
if(commande == 'R')
{
myServo.write(180);
}
else if(commande == 'C')
{
myServo.write(90);
}
if(commande == 'F')
{
ESC.write(00); //carret = av
}
else if(commande == 'S') //croix = stop
{
ESC.write(90);
}
if(commande == 'B') //cercle = ar
{
ESC.write(180);
}
else if(commande == 'S') //croix = stop
{
ESC.write(90);
}
*/
}
}
voici la photo de mon montage
Merci par avance pour vos réponses.