Découverte du haut parleur piézoélectrique avec Arduino

De L'abscisse - FabLab et Hackerspace de Dijon
Révision datée du 13 mars 2020 à 07:16 par Dlareg (discussion | contributions) (ajout du code source)
Aller à : navigation, rechercher

Jouer une mélodie.

Présentation

Jouer une mélodie avec un Arduino et un haut parleur piézoélectrique.

Coût

Faible

Niveau de difficulté

Vert.png

Outillage nécessaire

  • Arduino
  • Planche d'essai

Composants nécessaires

  • 1 haut parleur piézoélectrique (récupération possible sur un jouet)

Schémas

Code source

int speakerPin = 9;

int length = 15; // le nombre de notes
char notes[] = "ccggaagffeeddc "; // un espace = un repos
int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };
int tempo = 300;

void playTone(int tone, int duration)
{
  for (long i = 0; i < duration * 1000L; i += tone * 2)
  {
    digitalWrite(speakerPin, HIGH);
    delayMicroseconds(tone);
    digitalWrite(speakerPin, LOW);
    delayMicroseconds(tone);
  }
}

void playNote(char note, int duration)
{
  char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
  int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };

  // jouer la tonalite correspondant au nom de la note
  for (int i = 0; i < 8; i++) {
    if (names[i] == note) {
      playTone(tones[i], duration);
    }
  }
}

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

void loop()
{
  for (int i = 0; i < length; i++)
  {
    if (notes[i] == ' ')
    {
      delay(beats[i] * tempo); // repos
    }
    else
    {
      playNote(notes[i], beats[i] * tempo);
    }

    // pause entre les notes
    delay(tempo / 2); 
  }
}

Liens

http://www.elektronique.fr/article/27-projets-arduino-debutants/

Auteurs

Licence de la page

Attribution - Partage dans les Mêmes Conditions 3.0 non transposé (CC BY-SA 3.0)

Vous êtes libre de :

  • partager — reproduire, distribuer et communiquer l’œuvre
  • remixer — adapter l’œuvre
  • d’utiliser cette œuvre à des fins commerciales

Selon les conditions suivantes :

  • Attribution — Vous devez attribuer l’œuvre de la manière indiquée par l’auteur de l’œuvre ou le titulaire des droits (mais pas d’une manière qui suggérerait qu’ils vous approuvent, vous ou votre utilisation de l’œuvre).
  • Partage dans les Mêmes Conditions — Si vous modifiez, transformez ou adaptez cette œuvre, vous n’avez le droit de distribuer votre création que sous une licence identique ou similaire à celle-ci.

http://creativecommons.org/licenses/by-sa/3.0/deed.fr