Connecter un composant à un microcontrôleur autre que la carte Arduino Uno

Bonjour à tous,

Merci de m'accueillir sur ce forum.
J'ai découvert Arduino il y a peu de temps en utilisant SimulIde. J'ai commencé comme tout le monde par allumer une LED ! Je peux maintenant reproduire des schémas en utilisant la carte Arduino Uno et charger le programme (fichier .hex) généré par le code (fichier .ino).

J'essaie de refaire le circuit en remplaçant la carte Arduino par un microcontrôleur possédant des sorties analogiques choisi un peu au hasard mais je bute sur les branchements car aucun son ne sort (schéma 2).
Voici les schémas.

Essai avec Arduino - ça fonctionne

Essai avec un microcontrôleur - aucun son

Dans le code, j'ai modifié

> pinMode(A6, OUTPUT);

pour le test avec le microcontrôleur car je n'avais pas de "pin 11".

> const byte COUNT_NOTES = 39;
> 
> int frequences[COUNT_NOTES] = {
>   392, 392, 392, 311, 466, 392, 311, 466, 392,
>   587, 587, 587, 622, 466, 369, 311, 466, 392,
>   784, 392, 392, 784, 739, 698, 659, 622, 659,
>   415, 554, 523, 493, 466, 440, 466,
>   311, 369, 311, 466, 392
> };
> 
> int durations[COUNT_NOTES] = {
>   350, 350, 350, 250, 100, 350, 250, 100, 700,
>   350, 350, 350, 250, 100, 350, 250, 100, 700,
>   350, 250, 100, 350, 250, 100, 100, 100, 450,
>   150, 350, 250, 100, 100, 100, 450,
>   150, 350, 250, 100, 750
> };
> 
> void setup() {
>    pinMode(A6, OUTPUT);
> }
> 
> void loop() {
>    for (int i = 0; i <= COUNT_NOTES; i++) {
>       tone(11, frequences[i], durations[i] * 2);
>       delay(durations[i] * 2);
>       noTone(11);
>    }

Merci pour vos réponses.

Je ne connais pas ton microcontrôleur, mais tu es sûre que la broche A6 et 11 sont les mêmes ?

Bonjour j'irais plus loin s'il y a juste le micro controleur sans rien autour ca risque pas de marcher ...

Cette opération est déjà réalisée par la fonction tone().
Mais encore faudrait-il que la fonction tone() reçoive A6, et non pas 11.

En considérant que le schéma est largement incomplet, il manque tellement de choses :

  • correspondance entre ports physiques (PB, PC, PD) et broches de la carte (D0-D7, A0-A7, etc.)
  • présence d'un oscillateur ou pas
  • bootloader, fuses
  • librairie core utilisée : MightyCore ?

Ma réponse peut surprendre mais je n'en sais rien...

Merci pour ta réponse. Comme je le précise, je découvre Arduino et ce que j'ai lu n'aborde pas le cas d'un circuit qui n'utilise pas Arduino. C'est logique. D'où ma question très triviale.

Voici le code utilisé avec Arduino. "pinMode(11, OUTPUT) est bien utilisé pour la connexion. (cf image plus haut). Par contre, je n'ai pas retrouvé cette entrée sur le microcontrôleur. Je sais que je me lance dans un domaine que je découvre malgré toutes mes lectures.

 const byte COUNT_NOTES = 39;

int frequences[COUNT_NOTES] = {
  392, 392, 392, 311, 466, 392, 311, 466, 392,
  587, 587, 587, 622, 466, 369, 311, 466, 392,
  784, 392, 392, 784, 739, 698, 659, 622, 659,
  415, 554, 523, 493, 466, 440, 466,
  311, 369, 311, 466, 392
};

int durations[COUNT_NOTES] = {
  350, 350, 350, 250, 100, 350, 250, 100, 700,
  350, 350, 350, 250, 100, 350, 250, 100, 700,
  350, 250, 100, 350, 250, 100, 100, 100, 450,
  150, 350, 250, 100, 100, 100, 450,
  150, 350, 250, 100, 750
};

void setup() {
   pinMode(11, OUTPUT);
}

void loop() {
   for (int i = 0; i <= COUNT_NOTES; i++) {
      tone(11, frequences[i], durations[i] * 2);
      delay(durations[i] * 2);
      noTone(11);
   }
}ode ici

Cette numérotation correspond à celle arbitrairement choisie par les concepteurs des cartes Arduino.
Pour la UNO par exemple 11 c'est Port B bit 3 c'est-à-dire B3 qui correspond à la broche physique 17 de l'ATmega328 en boitier DIP28.

De plus une fois que tu auras la bonne broche pour ton buzzer, le son dépendra aussi de la plateforme que tu as sélectionnée pour compiler ton code et de la configuration des fusibles de ton CPU.

Sur le schéma de la simulation avec Arduino, tu relié le "-" du HP àla broche "GND" de Arduino.

Sur le second schéma, tu relié "-" HP à un symbole que tu crois être "GND" du microcontrôleur, mais est_ce que c'est le cas?

Dans le second schéma, je relie le "-" du HP au symbole de la masse dans SimulIde [SimulIde]. J'ignore par contre à quelle broche relier le "+" du HP. J'ai choisi la A6 par hasard.
Je peux compiler le code et charger le fichier .hex. La simulation se met en marche mais aucun son ne sort, ce qui ne m'étonne pas.

Le lien n'est pas passé SimulIde

Il faut je pense que tu relie aussi le "GND" de l'arduino au symbole de la masse, ton logiciel n'a pas forcément l'inteligence de savoir que broche GND et symbole EARTH sont reliés.

As tu essayé les recommandations de @fdufnews ?
Visiblement c'est comme si tu essaye d'allumer la lumière de la cuisine avec l'interrupteur de la salle à manger :slight_smile:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.