Objectifs

  1. Introduire la notion de l’intégration numérique
  2. Savoir lire les la sortie Audio de son Smartphone
  3. Savoir gérer des actions en fonction du temps
  4. Savoir commander plusieurs LEDs en fonction de la durée de l’appel entrant
  5. Etc.

Gain et sorties

#define Gain    1

#define   LED1        2

#define   LED2        3

#define   LED3        4

Seuils d’activation des LEDs

#define   Seuil1      10    // Activation LED1

#define   Seuil2      20    // Activation LED2

#define   Seuil3      30    // Activation LED3

#define   SeuilMax    50   // Init

#define   SeuilAudio  2     // Détection appel entrant (A Mesurer)

 Lecture entrées audio  – Signal stéréo

  Audio_left=analogRead(A0);

  Audio_right=analogRead(A1);

Sommation + Gain

  Audio_sig=Gain*(Audio_left+Audio_right);

Remplissage du buffer (intégration numérique)

  if(Audio_sig>SeuilAudio) count+=1;

Activation des sorties

  if (count >Seuil1) digitalWrite(LED1, HIGH);

  else digitalWrite(LED1, LOW);




  if (count >Seuil2) digitalWrite(LED2, HIGH);

  else digitalWrite(LED2, LOW);




  if (count >Seuil3) digitalWrite(LED3, HIGH);

  else digitalWrite(LED3, LOW);

Initialisation

  if (count >SeuilMax)

  {

    count=0;

    digitalWrite(LED1, LOW);

    digitalWrite(LED2, LOW);

    digitalWrite(LED3, LOW);

  }

Affichage dans le port série

  Serial.println(Audio_sig);

Exemple

#define Gain    1




#define   LED1        2

#define   LED2        3

#define   LED3        4




#define   Seuil1      10    // Activation LED1

#define   Seuil2      20    // Activation LED2

#define   Seuil3      30    // Activation LED3

#define   SeuilMax    50   // Init

#define   SeuilAudio  2     // Détection appel entrant (A Mesurer)







unsigned int Audio_left,Audio_right,Audio_sig;

unsigned long count=0;




void setup() {

  // put your setup code here, to run once:

  Serial.begin(115200);

  pinMode(LED1,OUTPUT);

  pinMode(LED2,OUTPUT);

  pinMode(LED3,OUTPUT);




  /*ADMUX  |=0x40;

  ADCSRA |=0xE7;

  ADCSRB |=0x00;*/

}




void loop() {




  // Lecture entrées audio  - Signal stéréo

  Audio_left=analogRead(A0);

  Audio_right=analogRead(A1);




  // Sommation + Gain

  Audio_sig=Gain*(Audio_left+Audio_right);




  // Remplissage (intégration numérique)

  if(Audio_sig>SeuilAudio) count+=1;




  // Activation des sorties

  if (count >Seuil1) digitalWrite(LED1, HIGH);

  else digitalWrite(LED1, LOW);




  if (count >Seuil2) digitalWrite(LED2, HIGH);

  else digitalWrite(LED2, LOW);




  if (count >Seuil3) digitalWrite(LED3, HIGH);

  else digitalWrite(LED3, LOW);




  // Init

  if (count >SeuilMax)

  {

    count=0;

    digitalWrite(LED1, LOW);

    digitalWrite(LED2, LOW);

    digitalWrite(LED3, LOW);

  }




  // Affichage port série

  Serial.println(Audio_sig);

}
Click to rate this post!
[Total: 2 Average: 5]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut

You have successfully subscribed to the newsletter

There was an error while trying to send your request. Please try again.

FPGA | Arduino | Matlab | Cours will use the information you provide on this form to be in touch with you and to provide updates and marketing.