Construisez Votre Propre Clavier Piano Électronique avec Morceaux Intégrés
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino UNO | 1 |
| Écran LCD Adafruit Standard - 16x2 Blanc sur Bleu | 1 |
| Interrupteur poussoir SparkFun 12 mm | 8 |
| Résistance 220 ohms | 4 |
| Résistance 560 ohms | 1 |
| Résistance 1 k ohms | 1 |
| Résistance 4,7 k ohms | 1 |
| Résistance 10 k ohms | 3 |
| Résistance 1 M ohms | 1 |
| Buzzer piézoélectrique | 1 |
| LED (générique) | 1 |
| Potentiomètre mono-tour - 10 k ohms | 1 |
| Fils de câblage (génériques) | 1 |
| Plaque d'essai (breadboard générique) | 1 |
À propos du projet
Introduction
Pour commencer, je dois vous dire que je suis complètement novice dans le monde de l'électronique. J'ai un bon bagage en programmation, ce qui m'aide, mais je reste ouvert à toute idée ou suggestion pour mes projets.
Récemment, j'ai approfondi mes connaissances sur le buzzer piézoélectrique et la programmation associée, et voici ma création basée sur ce que j'ai appris jusqu'à présent. Il y a beaucoup de place pour ajouter de nouvelles fonctionnalités ou interrupteurs, ce que je prévois de faire plus tard, mais pour l'instant, place au prochain défi !
Ci-dessous, une vidéo montre le fonctionnement de l'appareil, y compris le menu des morceaux préenregistrés. J'avoue que techniquement, les morceaux 4 et 5 sont identiques, mais je préfère me concentrer sur des projets plus ambitieux plutôt que d'écrire du code musical pour plus de morceaux ! La structure de base, tant pour les boucles principales que pour les boucles individuelles de chaque morceau, est facile à adapter à vos propres idées. N'hésitez pas à modifier le code comme bon vous semble.
Voyez-le en action !
[Vidéo de démonstration]
Configuration du matériel
Les touches du piano...
Les interrupteurs des touches sont connectés via un pont diviseur de tension (resistor ladder). Les résistances sont placées dans l'ordre séquentiel, reliant chaque interrupteur à l'alimentation. Pour ce projet, j'ai choisi (en ohms) : 1M, 10k, 4,7k, 1k, 560 et 220. Le premier interrupteur (à gauche) est connecté à l'alimentation et au suivant. Le second est connecté à la plus petite résistance, et chaque interrupteur suivant se connecte à la résistance supérieure dans la série. Le dernier interrupteur met la connexion à la masse via une résistance de 10k ohms et relie les 7 interrupteurs à la broche analogique A0 de l'Arduino. Le programme principal définit les fréquences des notes associées à chaque touche. J'ai utilisé Do4, Ré4, Mi4, Fa4, Sol4, La4 et Si4, le Do4 étant l'interrupteur le plus à gauche. Modifiez les valeurs de fréquence ou ajoutez des interrupteurs pour personnaliser entièrement votre projet !
L'écran LCD...
Connectez les broches du LCD selon le schéma ci-dessous. Connectez la broche 3 du LCD au potentiomètre pour le contrôle du contraste. Les broches externes du potentiomètre sont reliées à l'alimentation et à la masse. La broche 15 du LCD est connectée à l'alimentation via une résistance de 220 ohms. Si ces broches changent dans votre projet, mettez à jour le code en conséquence.
L'interrupteur de menu...
Connectez l'interrupteur de menu à l'alimentation, et mettez-le à la masse via une résistance de 10k ohms. Cet interrupteur doit aussi être connecté à la broche 7 de l'Arduino pour être contrôlé par le code.
La LED...
La LED indique le mode menu : elle s'allume quand l'interrupteur de menu est pressé, désactivant les touches du piano. Connectez l'anode (positif) de la LED à la broche 6 de l'Arduino, et mettez la LED à la masse via une résistance de 220 ohms.
Le buzzer piézoélectrique...
Pour intégrer le buzzer, connectez simplement une extrémité à la broche 8 de l'Arduino, et l'autre à la masse via une résistance de 220 ohms. La fonction tone() du code utilisera cette broche pour jouer la note demandée.
Fonctionnement du code
La configuration (setup)...
- Le croquis commence par importer les bibliothèques
LiquidCrystal.hetpitches.hpour y faire référence plus tard. - Ensuite, le code définit un nom pour l'interrupteur de menu, détermine les broches en entrée/sortie, et définit les valeurs de fréquence pour chacune des 7 touches.
- Un onglet distinct a été créé pour chaque morceau afin de garder le code organisé, compréhensible et extensible. Pour ajouter ou supprimer des morceaux, modifiez aussi le code du croquis principal Electronic Keyboard.
La boucle principale (loop)...
- Au démarrage, la LED est éteinte et toutes les touches du piano sont actives.
- Quand la boucle détecte que le bouton de menu a été pressé, elle désactive les touches du piano et allume la LED pour indiquer le mode menu.
Accès au menu...
- Appuyez sur le bouton de menu pour faire défiler les morceaux disponibles, et appuyez sur n'importe quelle touche du piano pour lancer la lecture du morceau affiché sur l'écran LCD.
- L'écran LCD affiche le morceau en cours de lecture, puis revient au même point du menu une fois le morceau terminé. Vous pouvez alors le rejouer ou passer au suivant.
- Un double-clic sur le bouton de menu redémarre le menu depuis le début.
- Pour revenir au mode piano, faites défiler la fin de la liste des morceaux. Lorsque l'écran LCD est vide et la LED éteinte, les touches du piano refonctionnent.
Code
- Electronic Keyboard (programme principal)
- Song1 à Song5 (5 morceaux)
- pitches.h (bibliothèque de notes)
Electronic Keyboard Arduino
Le code principal complet est disponible sur le dépôt GitHub du projet. Points clés :
- Utilisation d'un pont diviseur de tension (resistor ladder) sur l'entrée analogique A0 pour détecter 7 touches avec une seule broche.
- Gestion d'un menu à 5 morceaux via l'interrupteur sur broche 7.
- Affichage sur LCD 16x2 (broches 12, 11, 5, 4, 3, 2).
- Sortie audio sur broche 8 via buzzer piézoélectrique.
- LED d'état sur broche 6.
Song1 Arduino
Thème de Super Mario Bros. (melody[] et noteDurations[] définis).
Song2 Arduino
Thème "Underworld" de Super Mario Bros.
Song3 Arduino
Thème de Jeopardy.
Song4 Arduino
Mélodie générique courte (8 notes).
Song5 Arduino
Mélodie générique courte (8 notes, identique à Song4 par défaut).
pitches.h Arduino
Bibliothèque définissant les fréquences des notes de musique (NOTE_C4 = 262 Hz, NOTE_D4 = 294 Hz, etc., jusqu'à NOTE_DS8 = 4978 Hz). À placer dans le même dossier que les autres croquis.
Schémas
Voir les images de câblage dans la section Configuration du matériel.
Processus de fabrication
- Démarrage avec TJBot : Construire, Configurer et Contrôler par la Voix Votre Propre Robot IA
- Alerte Soif Plante Intelligente – Capteur DIY pour une Hydratation Optimale
- Horloge à Mots Italienne avec Arduino Nano, NeoPixel, LCD et RTC
- Transformer votre Clavier MIDI en Tuteur Piano Intelligent avec Arduino, LED et MuseScore
- Capteur d'obstacle IR simple avec Arduino — LED IR + Photodiode
- Compteur kWh Sigfox fiable avec Arduino MKR Fox 1200
- Moniteur de température Bluetooth avec Arduino Nano
- Mini radio stéréo compacte RDA5807 — Projet Arduino Nano
- Test Précis de Temps de Réaction avec Arduino UNO