Bonjour,
Je souhaiterais générer un bip ou plutôt des bip avec trois hauteurs de fréquence avec un microcontrôleur (PIC32 en ce moment). Est-ce que le module PWM pourrait servir à cette fin ?
Merci pour vos réponses
Jean-Marie
-----
Bonjour,
Je souhaiterais générer un bip ou plutôt des bip avec trois hauteurs de fréquence avec un microcontrôleur (PIC32 en ce moment). Est-ce que le module PWM pourrait servir à cette fin ?
Merci pour vos réponses
Jean-Marie
Salut,
La PWM est effectivement le moyen le plus simple pour faire cela. De plus en jouant sur le rapport cyclique tu peux changer le volume.
Il faut simplement bien choisir le transducteur derriere la sortie PWM.
A titre d'exemple regarde celui qui est sur le user manual de la carte PICDEM 2 PLUS. Il a un format recangulaire d'environ 10x10.
a+
Moi je me sert de deux sortie du microcontrolleur.
Quand une sortie est à 1 l'autre est à 0 et vice versa en forment une fréquence. Comme cela ça protège le module piezo qui n'aime pas recevoir qu'une seul polarité dans le même sens et le son sera beaucoup plus fort et bien meilleur.
Bonne journée
Bonsoir et merci pour vos réponses.
RISC merci pour le lien !
Je ne suis pas sur de comprendre... je dirais même plus je ne comprends pas !Moi je me sert de deux sortie du microcontrôleur.
Quand une sortie est à 1 l'autre est à 0 et vice versa en forment une fréquence. Comme cela ça protège le module piezo qui n'aime pas recevoir qu'une seul polarité dans le même sens et le son sera beaucoup plus fort et bien meilleur.
Bonne journée
Veux-tu dire que le module piezo est connecté entre deux sorties du microcontrôleur ? Dans ce cas ne faut-il pas inverser leurs sens (entrée/sortie, sortie/entrée) ? Et il y a suffisamment de courant pour activer le module ?
Et cette génération doit pas mal occuper le microcontrôleur, surtout si une fréquence élevée et précise est demandée. Est-ce que je me trompe ?
Jean-Marie
[QUOTE=schneiderj;5025709]Bonsoir et merci pour vos réponses.
RISC merci pour le lien !
Exactement, il veut bien dire que le piezo est entre 2 sorties du µC.
Non, ça reste des sorties. Dans la doc de ton µC, tu as le courant maximum admissible (pas confondre avec le courant fournie!).
Pas forcement, si ton code est bien fait
Bonjour
Intuitivement je dirais que changer le rapport cyclique ne modifiera pas le volume puisque le déplacement de la membrane du piezo reste le même. Je ne suis même pas sur que l'on entende une différence.
Le piézo est une capa : si il est drivé à travers une résistance (ou simplement à cause de la limitation de courant de la pauvre petite porte logique) la tension dessus ressemblera plus à une charge RC amortie, donc si tu diminues le rapport cyclique, les pics seront effectivement moins hauts... Une autre façon de voir est que le piézo est une capa qui forme un passe bas avec l'impédance de sortie du driver ; rapport cyclique plus faible = moins de fondamental et plus d'harmoniques élevées, donc plus d'atténuation. Si c'est un piézo résonant c'est la même chose sauf que c'est un passe bande.
Effectivement je comprend mieux le phénomène ; merci pour ces précisions.
Merci pour ces précisions.Le piézo est une capa : si il est drivé à travers une résistance (ou simplement à cause de la limitation de courant de la pauvre petite porte logique) la tension dessus ressemblera plus à une charge RC amortie, donc si tu diminues le rapport cyclique, les pics seront effectivement moins hauts... Une autre façon de voir est que le piézo est une capa qui forme un passe bas avec l'impédance de sortie du driver ; rapport cyclique plus faible = moins de fondamental et plus d'harmoniques élevées, donc plus d'atténuation. Si c'est un piézo résonant c'est la même chose sauf que c'est un passe bande.
Donc RISC a raison.
Comment fais-tu pour avoir quelque chose d'efficace, car hormis une modification des sorties par polling (et dans ce cas la fréquence peut en souffrir sérieusement), ou par interruption, je ne vois pas...
Jean-Marie
Juste avec un Timer en interruption qui gère très peu de ligne de code. Du genre : PINA.3 = !PINA.3.
Au maximum tu n'as que 20KHz, le µC à le temps de faire plusieurs instruction en attendant. Je ne pense pas que tu dois utilisé des tâches en temps réel strict (entre 5KHz et 5.01KHz on n'entendra pas la différence).
Après, pour avoir des 3 différentes fréquences :
- Soit dans ta boucle principale (ou par interruption) tu modifie la config. du timer
- Soit tu utilise plusieurs timers...