Bonjour tout le monde , je viens vous voir car niveau prog je suis vraiment a la ramasse ... Je viens d'un bac S SVT et je n'ai aucune base en arduino
Donc voila ma partie du projet ce compose de la communication Bluetooth. Ma carte et terminé , j'arrive à communiquer de mon portable ( Blueterm ) au module ( RN42-I ) brancher en UART via le programme en exemple SoftwareSerial.
Le prof me demande d'envoyer une trame fixe pour regarder ce qui entre et ce qui sors ( ?? ) et ensuite mettre un potentiomètre sur une broche analogique pour faire varier .
Mais je ne sais ni comment demarrer cela , comment envoyer une trame la lire et/ou configurer afin de pouvoir lire quand on fais varier via le potentiomètre etc .
J'espère que vous pourrez m'aider moi et la prog sa fais 14 ^^ . Si vous avez besoin de plus de précision je suis la pour essayr d'y répondre ...
Bon alors, pas grand chose à faire au final ( même si sa reste flou car on bit rien à ce que tu demande ) :
Brochage du potentiometre : 5v => entré potentiomètre, mass du potentiomètre => GND , curseur du potentiomètre => Entré analogique du arduino (A0 ou A1 ou A2 ou ...)
Lecture de la valeur du potentiomètre :
valeur = analogRead(pin); => pin = A0 ou A1 ou ... = 0 ou 1 ou ... ( en fonction de la broche choisie au dessus tu l'auras compris. )
Après une fois que tu à la valeur du potentiomètre : serial.print(valeur); et sa y est tu à envoyé la valeur de ton potentiomètre vers le bluetooth.
Si c'était sa la question, je doute toujours vus tes propos très flou
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
Serial.println("Goodnight moon!");
// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
mySerial.println("Hello, world?");
}
void loop() // run over and over
{
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}
Je rajouterai le schéma quand je serai chez moi .
Enfait , le truc c'est que , bien que ce soit bete , il faut deja que je comprenne comment envoyer une trame et la lire .
C'est pire qu'à la ramasse je ne comprend vraiment rien a la prog bien que j'ai eu essayé
Bon allez tes sympa tes mignon je vais t'aider ! ( pense au balise code la prochaine fois par contre ^^ )
Voila ce que tu doit remplacer :
ceci de ton code :
void loop() // run over and over
{
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}
Par ceci :
void loop() // run over and over
{
potentiometreValue = analogRead(analogInPin); // on récupere l'info potentiometre ( sa valeur, qui varie en fonction de sa position : U = R x I )
outputValue = map(potentiometreValue, 0, 1023, 0, 255); // transforme le 0 a 1023 recupere en 0 a 255
if (mySerial.available()){ // si la liaison série est ok ( ton bluetooth )
Serial.write("potentiometre = ");// on envoie
Serial.write(outputValue);// la valeur
}
}
}
Et ajouter dans l'init ( setup )
const int analogInPin = A0; // si tu choisie la pin A0 bien sur
D'accord merci désolé pour la balise c'est la premiere fois que je post sur ce forum je n'avais pas fais attention .
Merci pour ton aide , si j'ai bien compris , mon code de base servais a envoyer / recevoir a travers le bluetooth sur le port emulé .
Le code que tu m'as filé est censé envoie de ma carte a mon portable les valeurs que prend le potentiomètre a travers le moduele Bluetooth c'est sa ? sur l'écran de mon portable je verrai les valeurs du pot , comme le ferai le terminal arduino ?
Oui si tu a bien câblé ton potentiomètre et ton module bluetooth, ton arduino enverra a chaque tour de boucle la valeur du potentiomètre sur le bluetooth, tu peut mettre un delays si tu veux que ce soit toutes les secondes sinon sa risque de vite défiler.
Hey , désolé de repondre si tard , mais j'ai était en periode d'exam les deux semaines d'avant et n'ai pas eu spécialement de temps a donner à mon code
Enfait je crois que je me suis trés mal expliquer .
La première partie de mon code était pour verifier que ma carte fonctionnais correctement ainsi que le module bluetooth et la liaison du téléphone <-> ordinateur .
Ceci étant fait , je suis censer m'attaquer aux "procédure de test" c'est la que sa bloque ...
On m'as demander tout d'abord d'envoier une trame fixe et ainsi la relevé toussa pour montrer qu'il n'y a rien qui interfere sur les pin TX/RX . Le problème c'est que deja je ne sais comment m'y prendre pour envoyer cette fichu trame .
Et ensuite viens la phase 2 de la procédure , c'est a dire de rajouter un potentiomètre afin de faire varier une valeur de cette trame et voir si ce chagement et bien pris en compte dans la communication .
Voila j'espere que vous pourrez m'éclairer plus haut on m'as demander un schéma , c'est celui sous Ares ou Isis qui est voulu ?
Quand il te dise envoyer une trame fixe, il ne faut pas te braquer et dire : " AAHhhhhh une trame kezaco !! ", reste calme, si tu envoie coucou c'est une trame fixe car tu enverra toujours coucou ^^
Donc pour tester tu peux simplement faire :
(conserve ton setup avec la déclaration de ton serial pour le bluetooth) Remplace le loop par :
void loop()
{
if (mySerial.available()){
Serial.write("salut");
}
}
( vérifie que sur l'appli bluetooth de ton téléphone il y a bien le même paramétrage que sa : vitesse 9600 )
( si ça ne fonctionne pas essaie d'inverser RX et TX sur ton module bluetooth )
Donc la tu envoie une trame qui contiens salut à chaque tour de boucle.
Si sur ton portable connecté en bluetooth tu reçoit salut, ta liaison bluetooth marche et la communication aussi.
En suite il restera lecture de potentiomètre et envoie à faire, rien de bien sorcier ne t'en fait pas.