Go Down

Topic: aide programmation arduino (Read 13604 times) previous topic - next topic

matthieu59

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.
Code: [Select]
#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
}
}


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 lcd

B@tto

Le moniteur série de l'IDE sera effectivement inopérant car il communique en 8N1

Mais ton erreur n'a pas de rapport, elle indique que la programmation ne marche pas car il n'y a pas de liaison avec la carte. Tu as cette erreur à l'upload ou à l'ouverture du moniteur série ?

Sinon Serial.begin(9600_SERIAL); c'est faux
Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

matthieu59

j'ai compris mon erreur

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 + ...

mais je pense que c'est normal car seuls les 6 bits de poids faible sont pris en compte

d = 01100100
$ = 00100100

p = 01110000
0 = 00110000

k = 01101011
+ = 00101011

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.

B@tto

Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

matthieu59

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=http%3A%2F%2Fwww.sonelec-musique.com%2Fimages%2Fmax232_001.gif&imgrefurl=http%3A%2F%2Fwww.sonelec-musique.com%2Felectronique_realisations_espion_rs232.html&h=660&w=880&tbnid=dtiLp83p1nPn5M%3A&zoom=1&docid=-5DTIDtYI2YxjM&ei=FYdLU9jEL4aH0AXMhYHICA&tbm=isch&client=firefox-a&iact=rc&dur=184&page=1&start=0&ndsp=28&ved=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).


XavierMiller

Ton lien est inutilisable, car dépend de ta session de recherche google. Donne le lien final, et pas "via google".

Christian_R

#37
Apr 14, 2014, 10:19 am Last Edit: Apr 14, 2014, 10:22 am by Christian_R Reason: 1

il me faut aussi des boutons poussoirs, à mon avis pour régler le débit, la parité,... je vais en prendre 10.

Un bouton poussoir n'est actif qu'appuyé.
Prends des dip switches pour régler des valeurs fixes
Christian

john_lenfr


Ton lien est inutilisable, car dépend de ta session de recherche google. Donne le lien final, et pas "via google".


http://www.sonelec-musique.com/electronique_realisations_espion_rs232.html



matthieu59

bonjour

je sais ce que je dois faire, j'ai besoin de boutons poussoirs pour changer la parité, le nombre de bit stop et le nombre de bits de données au lieu d'utiliser la programmation.

soit les BP à la place de Serial.begin(9600,SERIAL_.......);

matthieu59

bonjour à tous

j'ai enfin tous ce qu'il me faut.

j'ai les 5 condensateurs polarisés de 1 uF, les 3 boutons poussoirs,  mon MAX232 l'écran lcd et l'arduino uno et le pc. j'ai aussi un microcontrôleur qui remplacera la arduino uno à la fin.

mon objectif est d'afficher sur l'écran lcd le code que l'on tape sur le pc. la ligne du haut du lcd est pour régler la ligne de transmission et la ligne du bas le code que l'on tape.

mes boutons poussoirs me servent à régler la parité, la vitesse et le 3éme le nombre de bits stop.
mon tuteur m'a dis de commencer par choisir un boitier qui contiendra le tout à la fin soit les composants, l'écran, les boutons poussoirs, une prise femelle DB9 et l'alim.

j'ai choisi : http://www.electronique-diffusion.fr/product_info.php?products_id=16313

en ce qui concerne l'alim je ne sais pas quoi utiliser et je sais que la arduino à besoin de 5 Volts

matthieu59

mon objectif est d'afficher sur l'écran lcd le code que l'on tape sur le pc. la ligne du haut du lcd est pour régler la ligne de transmission et la ligne du bas le code que l'on tape.

voici mon matos :

5 condensateurs polarisés de 1 uF, les 3 boutons poussoirs, mon MAX232 l'écran lcd et l'arduino uno et le pc. j'ai aussi une  Arduino Pro Mini qui remplacera la arduino uno à la fin.


mes boutons poussoirs me servent à régler la parité, la vitesse et le 3éme le nombre de bits stop.
mon tuteur m'a dis de commencer par choisir un boitier qui contiendra le tout à la fin soit les composants, l'écran, les boutons poussoirs, une prise femelle DB9 et l'alim.

j'ai choisi : http://www.electronique-diffusion.fr...ducts_id=16313

Pour l'alimentation plus tard de la mini carte  je sais que :

La petite carte à µC est un Arduino Pro Mini, c'est-à-dire l'un des rares modèles d'Arduino n'intégrant pas d'interface vers un PC.

Cette carte est disponible en plusieurs versions, en 5V ou 3,3V, et à des fréquences de quartz différentes (8, 10, 16 ou 20 MHz).

La version 3,3V peut être alimentée par une tension comprise entre 3,35V et 12V sur l'entrée RAW.
La version 5V peut être alimentée par une tension comprise entre 5V et 12V sur l'entrée RAW.

L'entrée RAW est reliée à un régulateur intégré qui fournit au µC la tension VCC nécessaire.

Il est également possible d'alimenter directement le µC, sans passer par le régulateur, par l'entrée VCC. La tension à appliquer est alors beaucoup plus stricte. Elle ne doit en aucun cas dépasser 6,0 V, et sa valeur minimale dépend de la fréquence du quartz :

2,4 V < VCC < 6,0V pour 8 MHz
2,7 V < VCC < 6,0V pour 10 MHz
3,8 V < VCC < 6,0V pour 16 MHz
4,5 V < VCC < 6,0V pour 20 MHz

Moi j'ai une 5V mais derrière cette mini carte il y a 4 cases mais aucunes n'est cochées, j'ai 8 MHz 16MHz 3V3 et 5V je suis sûr que c'est 5 V car il est écrit sur l'emballage.

en supposant que se soit 16 MHz, le modèle 5V/16MHz pourrait ainsi être directement alimenté par une batterie de quatre éléments Ni-MH ou Ni-Cd (4×1,2V) sur l'entrée VCC.

enfin cela peut attendre

je vais écrire le code pour afficher sur la ligne du haut la vitesse, la parité O, E ou N et le nombre de bit stop et me servir des boutons pour les changer.

Pour plus de clarté dans les futurs codes, je déclare une variable globale nommée "bouton1" "bouton2" "bouton3" et ayant la valeur 2 , 4 et 7 qui correspondent au numéro des entrées de la carte et j'utilise les pullup intégrés pour les BP

Comme ceci :
Code: [Select]
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);
// Set the LCD address to 0x27 for a 16 chars and 2 line display


const int bouton1 = 2; //le bouton1 est connecté à la broche 2 de la carte Adruino
  const int bouton2 = 4; //le bouton2 est connecté à la broche 4 de la carte Adruino
  const int bouton3 = 7; //le bouton3 est connecté à la broche 7 de la carte Adruino

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();

    pinMode(bouton1, INPUT);
    digitalWrite(bouton1, HIGH); //on active la résistance de pull-up en mettant la broche à l'état haut
    pinMode(bouton2, INPUT);
    digitalWrite(bouton2, HIGH); //on active la résistance de pull-up en mettant la broche à l'état haut
    pinMode(bouton3, INPUT);
    digitalWrite(bouton3, HIGH); //on active la résistance de pull-up en mettant la broche à l'état haut
}

void loop()
{
}
 


Je vais avoir besoin d'aide pour afficher sur la ligne du haut les paramètres et comment on les changent avec les BP car je sais le faire en programme mais pas avec les BP

matthieu59

Bonjour

Avant de continuer la programmation j'aurais une petite question.

pouvez vous me dire si c'est correcte.

Le MAX232 sert d'interface entre une liaison série TTL (0-5V) et une liaison série RS232 (+12 -12V) et ce avec une simple alimentation 5V.

La liaison série asynchrone (TTL) est un moyen de communication entre deux systèmes électroniques facile à mettre en œuvre. La plupart des microcontrôleurs modernes disposent d'un circuit spécialisé (UART) leur permettant d'échanger des données avec l'extérieur. Sur cette liaison, une tension de 0V correspond à un 0 logique. Une tension de 3.3V ou 5V selon la tension nominale du circuit correspond à un 1 logique.
Cette liaison s'apparente à la liaison RS-232 dont certains PC sont encore équipés, mais elle s'en différencie par les tensions utilisées.
En RS-232, un 1 logique correspond à une tension entre -3V et -25V et un 0 logique à une tension entre +3 et +25V.

Par conséquent, si on veut connecter une sortie série utilisant les niveaux TTL soit la mini Arduino à son ordinateur, il faut un adaptateur spécialisé. Ici se sera mon MAX232 qui est l'adaptateur pour connecter la mini Arduino avec le PC parce qu'elle n'a pas de port USB mais un UART matériel qui est le composant utilisé pour faire la liaison entre l'ordinateur et le port série (synonyme de RS232).

Pour connecter le max232 à la mini arduino j'utilise le shéma suivant :

http://www.google.fr/imgres?imgurl=http%3A%2F%2F1.bp.blogspot.com%2F-W9ctV1v4aKM%2FTf-pbg5JfWI%2FAAAAAAAAAAQ%2FQhyBQq6csls%2Fs1600%2FPRO%25252BMINI%25252B328%25252BARDUINO%25252BRS232%25252BSERIAL.jpg&imgrefurl=http%3A%2F%2Fandertecsystem.blogspot.com%2F2011%2F06%2Farduino-pro-mini-328-rs232.html&h=565&w=1154&tbnid=OKqmXFZG9pE_IM%3A&zoom=1&docid=GOz2SaWGQMgK6M&ei=CBpuU4WsBIGO0AWo_IGICg&tbm=isch&client=firefox-a&iact=rc&uact=3&dur=451&page=1&start=0&ndsp=38&ved=0CF4QrQMwAg

voila mais je ne sais pas comment connecter le pc à l'arduino car j'ai le composant qui permet de faire l'interface mais il me faudra quand même un USB pour tout connecter à l'ordi et envoyer le programme dans le microcontrôleur nn ?

matthieu59

Serai-ce ma prise SUB-D9 femelle qui va me permettre de tout connecter au PC pour envoyer le programme au microcontrôleur de la mini arduino ?

Go Up