C'est ça ! Par contre, pour les parités, bits de stop et tout je te suggère de lire la doc.
-----
C'est ça ! Par contre, pour les parités, bits de stop et tout je te suggère de lire la doc.
merci j'ai trouvé dans la doc
Pour la config sur le serial harware, il y a deux moyens :
soit on utilise Serial.begin(vitesse); ou Serial.begin(vitesse, config);
SERIAL_5N1
SERIAL_6N1
SERIAL_7N1
SERIAL_8N1 (celui par défaut)
SERIAL_5N2
SERIAL_6N2
SERIAL_7N2
SERIAL_8N2
SERIAL_5E1
SERIAL_6E1
SERIAL_7E1
SERIAL_8E1
SERIAL_5E2
SERIAL_6E2
SERIAL_7E2
SERIAL_8E2
SERIAL_5O1
SERIAL_6O1
SERIAL_7O1
SERIAL_8O1
SERIAL_5O2
SERIAL_6O2
SERIAL_7O2
SERIAL_8O2
donc si j'ai bien compris sa donne :
le O = Odd (impair) et E = Even (Pair) et le N = pas de parité.
donc par exemple si je prends
on aura 9600 bits/sec pour le débit; 6 bits de données; O donc impair et 2 bits de stopCode:Serial.begin(9600,SERIAL_6O2);
Oui, c'est ça
Si c'est ce que ton appareil mystérieux utilise...
Bonjour
Cette histoire de MAX232 (et pas maxrs232) en DIP est incompréhensible, et je n'en vois pas sur les photos. Un MAX232 en DIP, c'est ça :
Il faut donc une plaque d'essai ou un PCB pour l'utiliser, et bien évidemment des fils de connexions pour le relier d'une part au port RS232 auquel il est destiné, et d'autre part aux entrées/sorties et à l'alimentation 5V de l'Arduino.
Ce circuit a pour fonction de changer les niveaux de tension élevés du port RS232 en niveaux logiques 0V/5V, et réciproquement.
Par ailleurs, sur l'Arduino l'utilisation de l'objet Serial (de la librairie Serial) est réservée à la communication via les pins #0 et #1 entre le microcontrôleur principal et son circuit de communication avec le PC au travers de la liaison USB. Cette liaison est notamment utilisée pour la programmation de l'Arduino, et elle est systématiquement lue par le bootloader à chaque redémarrage pour vérifier si une nouvelle programmation n'est pas lancée. Elle envoie également au microcontrôleur toutes les données reçues du port USB.
Il n'est pas impossible de réutiliser cette liaison pour une autre application, mais cela suppose quelques précautions, pour ne pas polluer mutuellement les transmissions vers le PC et vers cette application, et aussi pour éviter de planter l'Arduino au démarrage.
Sinon, il est toujours possible d'utiliser d'autres pins pour réaliser la liaison série. Sur l'Arduino UNO qui ne possède qu'une interface série matérielle, il faut avoir recours à un port série logiciel, lequel peut être réalisé directement en utilisant la librairie SoftwareSerial à la place de Serial. Des exemples d'utilisation de cette librairie sont intégrés à l'environnement de développement de l'Arduino (menu Fichier>Exemple>SoftwareSerial ).
Notre ami semble manquer de matériel en ce qui concerne la partie câblage. Et peut être aussi d'un poil d'encadrement...
Utiliser le TX/RX hard comme proposé avec un MAX est risqué vis à vis de la présence du convertisseur USB/TTL présent sur la arduino ?
par contre je suppose que mon programme qui permet d'afficher sur l'écran lcd ce que je tappe dans le moniteur série ne sert plus à rien.
car quand je modifie Serial.begin(9600); -----> Serial.begin(9600_SERIAL); j'ai l'erreur avrdude: stk500_getsync(): not in sync: resp=0x00 et je n'arrive plus à écrire et afficher sur l'écran lcdCode:#include <Wire.h> #include <LiquidCrystal_I2C.h> // Set the LCD address to 0x27 for a 16 chars and 2 line display LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { Serial.begin(9600); //Lancer le mode série // initialize the LCD lcd.begin(); // Turn on the blacklight and print a message. lcd.backlight(); } void loop() { char val; // regarde si quelque chose se trouve dans le buffer if (Serial.available()) { // lit le premier byte dans la pile (valeur entre 0 to 255) val = Serial.read(); lcd.print (val); // par exemple } }
oui pas d'erreur
juste à la fin il écrit quand même
avrdude: stk500_getsync(): not in sync: resp=0x00
Rien de branché sur la arduino ?
si j'ai branché le max rs232 et il y a tj l'écran
Enlève tout pour voir...
non
que j’écrive Serial.begin(9600,SERIAL_6O2); ou Serial.begin(9600);
il y a tj
avrdude: stk500_getsync(): not in sync: resp=0x00
Ahh étrange... Redémarre tout pour voir (pc, branche la carte sur un autre port).
Tu as bien la bonne carte sélectionnée dans le menu (Tool -> Board ?)
Il y a peut être eu un souci... On tentera de reflasher le micro.
par conte quand je ne met que l'écran et Serial.begin(9600,SERIAL_6O2);
quand je tape dans le moniteur série un d sa affiche $ quand je tape p sa affiche un 0 un k sa affiche un + ...
Du point de vue électrique, ça ne pose pas de problème, car les pins du circuit de communication USB sont pourvues de résistances de 1kΩ en série afin de pouvoir réserver les pins #0 et #1 à d'autres usages.
Mais il y a un risque que dans certaines situations particulières, la cacophonie des transmissions sur cette liaison puisse avoir des effets délétères, logiciellement parlant.
D'autre part, le câblage d'une liaison alternative sur ces pins interdit l'émission de messages vers le moniteur série du PC, ce qui est pourtant bien pratique pour le débogage.
Alors, tant qu'il n'est pas impératif de réutiliser cette liaison, autant en utiliser une autre, sur d'autres pins de l'Arduino et avec la librairie adéquate.
Dans le moniteur série du soft arduino, tu as en bas un menu pour régler la vitesse.
Ok pour tes explications, PA5CAL.
oui je peux la changer, il n'y a que 9600 et 14400 qui fonctionnent ( qui affiche qqchose sur le lcd)
Les parités sont les bonnes ?
C'est normal. Conformément à ce que tu demandes avec cette commande, seuls les 6 bits de poids faible sont pris en compte.
Pour info, en binaire les codes des caractères sont :
d = 01100100
$ = 00100100
p = 01110000
0 = 00110000
k = 01101011
+ = 00101011
Au lieu de nous faire partager le comportement de ton système quand tu « fais mumuse » avec, tu ferais mieux de te documenter sur son fonctionnement afin de le comprendre et produire directement le code adéquat. Ce serait beaucoup plus efficace, pour toi comme pour nous.
par contre j'ai mis SERIAL_6O2 au hasard juste pour essayer et voir ce que sa fait.
j'ai débrancher le Maxrs232 et sa fonctionne par contre quand je le branche il y a le message avrdude: stk500_getsync(): not in sync: resp=0x00
quand j’écris SERIAL_6O2
Comme je l'ai expliqué plus haut, la réutilisation de la liaison série vers le PC peut réserver de mauvaises surprises...
(Pour info, « stk500 » est le nom du protocole de transmission utilisé pour la programmation de l'Arduino.)
Tu ferais mieux d'utiliser SoftwareSerial et d'autres pins que #0 et #1.
ok mais que suis je censé faire, je sais que je modifier les paramètres grâce à Serial.begin(9600,SERIAL_...);
mais je vois pas le rapport avec le Max RS232 car il veut que je modifie la fréquence de communication via l'entrée RS.
pour la documentation je vais sur ce lien mais il n'y a pas grand chose sur mon problème.
http://fr.openclassrooms.com/science...resentation-11
Je pense que tu devrais lui demander de t'expliquer ce que signifie « modifier la fréquence de communication via l'entrée RS ».
Les mots utilisés sont peut-être inadéquats, ou alors cela recouvre des éléments dont tu ne nous a pas fait part (et qu'on ne peut pas deviner).
Par exemple, j'aurais pu comprendre qu'on te demande de « modifier, depuis le PC via l'entrée USB, la fréquence de communication pour lire la liaison série mise en observation ».
Soit dit en passant, puisqu'il s'agit juste de lire le flux de données issue d'une interface RS232, la puce MAX232 et son circuit peuvent être avantageusement remplacés par une simple résistance et un programme de lecture adéquat (lecture avec niveaux logiques inversés). Mais je doute qu'on en soit arrivé au point de pouvoir réaliser cette simplification.
On ne sait toujours rien sur ce périphérique mystérieux...
Je pense que je devais juste savoir comment faire pour modifier le nombre de bits de données, la parité pair ou impaire, et le nombre de bits stop.
Après j'avoue que je ne sais pas ce que je dois faire pour modifier la fréquence de communication via l'entrée RS ni même ce à quoi sa sert.
je ne sais pas de quel périphérique vous parlez.
Si tu pouvais déjà reformuler le « modifier la fréquence de communication via l'entrée RS », on pourrait certainement te répondre. Notamment j'aimerais savoir ce que tu appelles « RS ».
Si ça signifie, comme je l'ai supposé ci-dessus, modifier depuis le PC la vitesse de communication de la liaison observée, alors il s'agit de modifier le 9600 qui apparaît dans ton code (premier paramètre de « Serial.begin(...) »), qui règle ici la liaison série pour fonctionner à 9600 bauds.
je ne pense pas car je savais le faire depuis un moment changer le débit, mais maintenant grâce à vous j'ai compris comment changer le nombre de bits de données, la parité,...
Bonjour à tous
j'ai eu des nouvelles de mon tuteur, il m'a dit de faire une liste de ce qu'il me faut pour le max rs232
je vais donc suivre ce schéma elec :
http://www.google.fr/imgres?imgurl=h...ed=0CFsQrQMwAQ
voici ma liste
5 condensateurs de 1 micro F
le max rs232 je l'ai déjà
une platine de test
il me faut aussi des boutons poussoirs, à mon avis pour régler le débit, la parité,... je vais en prendre 10.
des petits fils pour relier le tout avec l'arduino uno.
qu'en pensez vous ? (je pense que je e peux commander qu'une seul fois, je ne pense pas avoir le droit à l'erreur je préfère donc avoir votre avis pour ne rien oublier).
Si c'est du sonnelec, tu peux foncer ! Jette aussi un œil à la datasheet du max pour confirmer.
Platine et fils, indispensable aussi. Vois aussi ce qu'il te faut pour te connecter à ton appareil mystérieux (dont on ne sait toujours rien).
Bouton poussoir ? Pour quoi faire ? Attention, poussoir signifie parfois "maintenir appuyé pour avoir le contact".