Question de debutant : comment programmer l'eeprom de l'arduino

Bonjour,

Pardon pour le caractere tres elementaire de ma question.
Apres avoir recu un arduino mega, j'ai fait l'exercice consistant a faire clignoter la led actinnee par la sortie 13.
J'ai procede a partir du logiciel arduino qu'on implante sur le Mac systeme osx par la prise usb.
Detail important pour moi une fois debranche la prise usb et branche sur une alimentaton la led continuait a clignoter.

J'ai alors remis l'arduino (avec un clavier une matrice de diode et un circuit integre et une sortrie midi par prise din 5 broches) sur la prise USB, a l'aide de la commande upload charge un programme encodeur de clavier midi 32 touches. Tout semblait bien marcher, quand j'enfoncais une touche j'avais bien 2 fois 8 bits et quand je relachais on envoyait bien 3 fois 8 bits sur la prise din 5 broches midi.

Quand j'ai debranche l'arduino et le hardware associe, et que j'ai branche sur une alimentation en vue de faire un montage autonome (non alimente par la prise USB) je me suis rendu compte que le montage ne marchait plus.

J'ai l'habitude de programmer des PicBasics et je me suis alors dit que le programme encodeur de clavier n'avait pas ete mis en memoire non volatile l'eeprom.
Mais alors pourquoi le programme de clignotement de la led continue t il de marcher en autonome.

Qu'est ce qui distingue ces deux programmes ; un semble etre charge en eeprom (le programme blink) et l'autre rester en memoire vive ?

J'ai voulu vous poser cette question avant de continuer : Pour continuer je pense qu'il faut que je programme le boot loader (je voudrais eviter d'avoir un programmeur, un bidule en plus a avoir) puis que je fasse un upload ensuite pour que le bootloader "entre" les instructions dans l'eeprom.

Ai compris la methode pour entrer le programme par le bootloader ?

Merci de vos reponses et pardon pour le caractere tres tres basic de ma question.

J-P Moulin

bonjour,
quand on upload un code dans l'arduino, il y reste jusqu'au prochain upload.

maintenant, peut être une alim pas suffissante qui fait que ca ne tourne pas ou commence a tourner puis l'alim s'écroule

n clavier une matrice de diode et un circuit integre et une sortrie midi par prise din 5 broches

Qu'est ce qui distingue ces deux programmes ; un semble etre charge en eeprom (le programme blink) et l'autre rester en memoire vive ?

(il s'agit de mémoire flash, la mémoire EEPROM des arduino c'est pour autre chose - cf cet article par exemple)

Mais sur le fond, non quand vous téléchargez depuis votre Mac un programme dans votre Arduino, il y reste - pas besoin de rester connecté à votre PC.

la piste alimentation est possible, mais vu que l'USB est assez faible, je suppose que l'adaptateur de courant que vous avez branché est plus puissant

Vous savez ce que fait le programme arduino? serait-il en attente de l'ouverture de la console Série (que vous aviez j'imagine quand vous avez effectué le branchement sur votre Mac).

--> si vous pouviez poster le code ou un lien vers le code ça aiderait (ainsi que le type d'Arduino que vous avez et la carte Midi)

Merci de toutes ces reponses.
Non je ne pense pas que l'alimentation soit en cause, c'est une alimentation maison, avec un lm317 dont je regle la tension de sortie avec un potentiometre dix tours et petit voltmetre de controle, j'ai regle la tension d'alimentation sur 12 volts ;
Je viens de verifier si le probleme ne venait pas d'un effondrement d'alimentation lors du chargement du programme, la reponse est non j'ai connecte la prise alimentation de l'arduino sur une alimentation de laboratoire qui peut fournir jusqu'a 3 amperes et helas le trouble perdure.
Code et schema se trouvent sur :

J'ai ouvert la console serie bien apres avoir programme l'arduino, car je ne voulais pas me contenter du clignotement de la led Tx, le trouble a l'air independnat du fait que j'ouvre ou non la console.

programme arduino 1.8.0
systeme osx Maverick

J'ajoute que j'ai fait les memes essais avec un arduino uno et que j'ai le meme trouble.

je vais ajouter un detail quand j'ai programme l'arduino (en fait les deux arduinos uno et mega) avec la prise usb, ca marche bien, je debranche la prise usb et mets sur l'alimentation autonome, je n'ai plus de clignotement de la led Tx quand j'enfonce les touches du clavier, mais si je coupe cette alimentation et que je remette l'arduino sur prise usb cela remarche.

J'espere vous avoir comp-letement renseigne

Je trouve que cette panne n'est pas consistante.

merci

J-P Moulin

j'ai regle la tension d'alimentation sur 12 volts ;

12 Volts c'est trop, pas la peine vraiment de générer de la chaleur, réglez à 9 par exemple.

J'ajoute que j'ai fait les memes essais avec un arduino uno et que j'ai le meme trouble.

C'est quoi l'Arduino que vous utilisez si ce n'est pas un UNO?

vous avez effectué ce genre de montage?

la pin 1 de votre arduino est la pin Tx du port Série. Quand vous branchez l'USB, surtout si la console est ouverte ça va être un pb.

le code simplement balance à 31250 bauds (MIDI) l'info en appellant

void noteOn(int cmd, int pitch, int velocity) {
  	Serial.write(cmd);
	Serial.write(pitch);
	Serial.write(velocity);
}

à noter que 31250 n'est pas une vitesse classique supportée dans la console série (28800 ou 38400 au plus proche) de l'IDE

Bonjour,

Est ce que les gnd sont bien reliés?
Quand on connecte l'usb elles peuvent être reliés par la masse du PC, ce qui n'est plus le cas avec une alim autonome.

Merci enocre de toute ces reponses.

Le schema que j'ai soude sur une carte est bien celui montre par J-M-L
J'ai realise le montage avec un arduino uno et un arduino mega.
Je pense comme vous que le probleme est un probleme de hardware.

Hier soir, j'ai mis le montage avec une alimetation autonome, alimentation de laoratoire reglee sur 9 volts, donc j'ai la panne : quand j'appuie sur les touches, je n'ai pas de signal Tx allumant la led Tx et je n'ai pas d'apparition de dartcaracteres curieux sur la console (du au fait que 31250 bits/sec est la vitesse standart MIDI et midi seulement) et j'ai regarde les signaux sur les broches de l'arduino avec un oscilloscope : Quand on enfonce les touches on a les "bons" signaux sur les broches 3 broches de sortie 9,10,11 de l'ardiuno envoyees au 74HC595 et on recoit bien des signaux du clavier sur les 4 fils d'entrees 5, 6,7 8 (de memoire), par contre evidemment pas de signal sur Tx broche 1.

Donc j'ai avance : la panne est probablement due a un probleme electrique ou electronique, je vais verifier point par point cette realisation qui par est pourtant super simple, j'ai peut etre fait un erreur grossiere de cablage, ce serait etonnant car j'avais fait ce petit clavier pour mes essais quand je faisais un piano MIDI avec un clavier de 86 notes avec un pic 116F877 ce petit clavier me servant a faire des essais avant d'equiper le clavier 85 touches et cela marchait bien.

Je vais faire fonctionner l'arduino avec un montage a une seule touche, une fourche optique dont la diode est occultee par un carton puis je vais verifier, cablage et potentiels et vous tiendrai au courant quand j'aurais trouve

merci encore
J-P Moulin

quand j'appuie sur les touches, je n'ai pas de signal Tx allumant la led Tx et je n'ai pas d'apparition de dartcaracteres curieux sur la console

si vous ouvrez la console vous créez un "court circuit" sur Tx qui est relié à la fois à votre ordinateur par le câble USB et à votre device MIDI.

Bonjour.

Je viens de trouver la panne.
Il n'y avait pas de panne ! J'ai déjà eu deux fois ce cas de figure et c'est encore plus difficile a trouver qu'une panne intermittente.

Pour qu'une sortie série fonctionne (ou toute autre sortie d'ailleurs en électronique), il faut que la sortie soit chargée par une résistance comme on dit en électronique.

Des que j'ai connecte la sortie Tx a la masse par l'intermédiaire d'une led et d'une résistance 330 ohms, tout s'est mis a bien fonctionner. J'avais fait les essais en demandant au port série de se mettre en 300 bauds afin de pouvoir voir la led clignoter en cas de fonctionnement.Si la vitesse est de 31250 bauds on croit que la led est allumee de façon permanente, les bits sont si courts qu'on n'a pas l'impression que la led s'éteint.

Pourquoi cela fonctionnait t il juste après la programmation ? parce que comme le dit J-M-L, a ce moment la, Tx est reliee a la prise USB et charge cette sortie Tx, ce qui n'est plus le cas quand on met l'arduino sur une alimentation autonome.

Merci de votre aide.

J-P Moulin

Bravo pour l'approche intelligente dans le debug. c'est tout à fait sensé (je pensais que vous aviez votre appareil midi connecté à votre prise DIN, donc effectivement je pensais que Tx n'était pas flottant)