Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
wiki:tutoriels:arduino:detecter_un_signal_electrique [2021/10/19 16:21] damien.muti |
wiki:tutoriels:arduino:detecter_un_signal_electrique [2024/05/13 17:49] (Version actuelle) damien.muti [Simulation LTSpice] |
||
---|---|---|---|
Ligne 16: | Ligne 16: | ||
Les logiciels de simulation électronique permettent de schématiser le montage associé. Ici nous avons utilisé le logiciel gratuit [[https:// | Les logiciels de simulation électronique permettent de schématiser le montage associé. Ici nous avons utilisé le logiciel gratuit [[https:// | ||
+ | |||
+ | __**Le schéma N°1**__ correspond à une prise de signal avant le transformateur du haut parleur. Il implique une tension d' | ||
{{ : | {{ : | ||
+ | |||
+ | __**Le schéma N° 2**__ correspond à une prise de signal après le transformateur du haut parleur. Il implique une tension d'une dizaine de volt au maximum. Le transformateur permettant de diviser par 10 la tension porteuse du signal. Le signal utilisé est donc inoffensif. Le schéma du montage est le suivant : | ||
+ | {{ : | ||
Le matériel utilisé ici est le suivant (fournisseur [[https:// | Le matériel utilisé ici est le suivant (fournisseur [[https:// | ||
Ligne 29: | Ligne 34: | ||
===== Principe de fonctionnement ===== | ===== Principe de fonctionnement ===== | ||
+ | |||
+ | |||
+ | ==== Simulation LTSpice (schéma N°2) ==== | ||
+ | === Signal à différents points de mesures === | ||
+ | {{ : | ||
+ | |||
+ | Un agrandissement de la fenêtre à un instant où la tension est bien égale à 5V : | ||
+ | {{ : | ||
==== Signal envoyé par l’amplificateur sonore ==== | ==== Signal envoyé par l’amplificateur sonore ==== | ||
Ligne 42: | Ligne 55: | ||
On remarque que le signal a une durée totale d' | On remarque que le signal a une durée totale d' | ||
+ | |||
+ | |||
==== Masse flottante ==== | ==== Masse flottante ==== | ||
Ligne 342: | Ligne 357: | ||
==== Programme Arduino 2 : Détection analogique ==== | ==== Programme Arduino 2 : Détection analogique ==== | ||
- | Le programme est téléchargeable sur ce lien: [[https://fr.farnell.com/|Sonnerie_Aleatoire_WT2003S_9_Lecture_Analog.ino]] | + | Le programme est téléchargeable sur ce lien: {{ :wiki: |
< | < | ||
+ | |||
+ | ///////// MOdule MP3 /////////////////////////// | ||
#include " | #include " | ||
- | |||
#ifdef __AVR__ | #ifdef __AVR__ | ||
#include < | #include < | ||
- | SoftwareSerial SSerial(5, 6); // RX, TX | + | SoftwareSerial SSerial(5, 6); // 5-RX, 6-TX |
#define COMSerial SSerial | #define COMSerial SSerial | ||
#define ShowSerial Serial | #define ShowSerial Serial | ||
Ligne 389: | Ligne 405: | ||
uint8_t status; | uint8_t status; | ||
boolean etat_entree_signal_ou_bouton = false; | boolean etat_entree_signal_ou_bouton = false; | ||
+ | boolean etat_bouton = false; | ||
// entrée analogique | // entrée analogique | ||
- | #define ENTREE_DETECTEUR_SIGNAL A1 | + | #define ENTREE_DETECTEUR_SIGNAL A1 ////////// Système de mesure du signal venant d |
#define SEUIL_DETECTION 100 // déclenchement du son si l' | #define SEUIL_DETECTION 100 // déclenchement du son si l' | ||
int entreeDetecteur = 0; // variable de mémorisation du signal d' | int entreeDetecteur = 0; // variable de mémorisation du signal d' | ||
Ligne 504: | Ligne 521: | ||
void audio(int cmd) { | void audio(int cmd) { | ||
- | ShowSerial.print("play:"); | + | ShowSerial.println("PLAY"); |
if (workdisk == SD) { | if (workdisk == SD) { | ||
Mp3Player.playSDRootSong(cmd); | Mp3Player.playSDRootSong(cmd); | ||
ShowSerial.print(" | ShowSerial.print(" | ||
+ | ShowSerial.print(" | ||
+ | ShowSerial.print(cmd); | ||
+ | ShowSerial.print(" | ||
ShowSerial.println(SDSong[cmd - ' | ShowSerial.println(SDSong[cmd - ' | ||
} | } | ||
Ligne 555: | Ligne 575: | ||
entreeDetecteur = analogRead(ENTREE_DETECTEUR_SIGNAL); | entreeDetecteur = analogRead(ENTREE_DETECTEUR_SIGNAL); | ||
- | + | etat_bouton | |
- | etat_entree_signal_ou_bouton | + | etat_entree_signal_ou_bouton = (etat_bouton |
// debug | // debug | ||
- | | + | // |
- | // ShowSerial.println(etat_entree_signal_ou_bouton); | + | |
if (etat_entree_signal_ou_bouton == true && (status == STATUS_STOP || status == STATUS_PAUSE) ) { | if (etat_entree_signal_ou_bouton == true && (status == STATUS_STOP || status == STATUS_PAUSE) ) { | ||
Ligne 572: | Ligne 592: | ||
ShowSerial.print(" | ShowSerial.print(" | ||
ShowSerial.println(entreeDetecteur); | ShowSerial.println(entreeDetecteur); | ||
+ | ShowSerial.print(" | ||
+ | ShowSerial.println(etat_bouton); | ||
// si bouton appuyé ET que le son ne joue pas 0x02:stop, 0x03: pause | // si bouton appuyé ET que le son ne joue pas 0x02:stop, 0x03: pause |