Catégories
Projets électroniques

Projet commander une carte Arduino avec Smartphone (sans Modem)

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);

}

Laisser un commentaire