Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
J'ai trouvé un petit haut-parleur en démolissant un vieux PC. pour le recyclage et j'ai pensé voir à quoi cela ressemblait en utilisant la fonction Arduino Tone(). J'ai commencé avec un potentiomètre de 10Ω pour contrôler le pitch et j'ai commencé à faire du bruit. La fonction Tone() utilise un modèle d'impulsion simple. Il active et désactive le son à différentes fréquences dans un motif d'onde carrée. J'avais deux autres potentiomètres qui traînaient donc je les ai ajoutés et je les ai utilisés pour contrôler la durée de la tonalité. Un pour contrôler la longueur de la tonalité et un pour contrôler l'espace silencieux entre les tonalités. Il utilise essentiellement un autre motif d'onde carrée mais à une fréquence beaucoup plus basse. Vous pouvez obtenir une bonne variété de bruit avec ce circuit. Cela fonctionne aussi bien avec un buzzer piézo, mais il manque la réponse des basses d'un haut-parleur.
Étape 1: Pièces dont vous aurez besoin
Arduino Uno
Planche à pain et fils de connexion
1 petit haut-parleur ou buzzer Piezo
1 interrupteur à bouton-poussoir
3 potentiomètres 10Ω
1 résistance 22Ω
1 résistance de 10kΩ
Étape 2: Construire le circuit
Connectez la planche à pain à votre broche Arduino 5V et GND. Placez le bouton-poussoir à l'extrême droite ou à gauche de la maquette et connectez-le à 5 V et à la terre à l'aide de la résistance de 10 kΩ. Connectez un fil du circuit de commutation à la broche 2 de votre Arduino.
De l'autre côté de la planche à pain, configurez le circuit haut-parleur/piezo à 5 V et à la terre à l'aide de la résistance de 220 Ω. Cette résistance contrôle le courant contrôlant ainsi le volume; vous pouvez essayer différentes résistances ici pour un volume plus ou moins élevé.
Disposez vos potentiomètres au centre de la planche à pain en laissant suffisamment d'espace pour jouer avec les boutons. Chaque pot devra être connecté à 5V et à la terre et les broches centrales de chacune devront être connectées aux broches analogiques A0, A1 et A2
Étape 3: Le code
Un potentiomètre ou pot est une résistance variable qui, lorsqu'elle est connectée à un Arduino, renverra une valeur comprise entre 0 et 1023. Nous utiliserons la fonction map() pour modifier ces valeurs en fonction de nos propres besoins. La fonction map() prend cinq arguments et dans notre cas, nous devons remapper la plage entre 220 et 2200 pour produire un son audible raisonnable.
La fonction ressemble à ceci:
carte(pot, 0, 1023, 220, 2200);
Vous pouvez jouer avec les deux dernières valeurs pour les tonalités de fréquence plus hautes et plus basses, faites juste attention de ne pas déranger votre chien.
Noise_Machine.ino
/* Machine à bruit utilisant trois potentiomètres connectés aux entrées analogiques |
et un piézo ou un petit haut-parleur. Un bouton poussoir active le bruit, les potentiomètres |
contrôler la hauteur à l'aide de la fonction Arduino tone(), et deux délais |
valeurs qui contrôlent la longueur de chaque ton et la longueur entre |
chaque ton. Les potentiomètres donnent des valeurs analogiques qui sont modifiées |
en utilisant la fonction map() dans des plages plus grandes ou plus petites pour s'adapter à votre |
goûts musicaux. |
Ce code est dans le domaine public. |
Thomas Thomas 2019-04-05 |
*/ |
bouton de constantePin = 2; // Bouton poussoir broche 2 |
locuteur constant = 9; // Haut-parleur ou piezo dans la broche 9 |
int buttonState = 0; // Variables pour le bouton |
int potZero; // et potentiomètres |
int potOne; |
int potDeux; |
void setup() { |
pinMode(9, SORTIE); // Broche de sortie haut-parleur/piezo |
} |
boucle vide() { |
buttonState = digitalRead (boutonPin); // Lecture de l'état du bouton poussoir |
potZero = analogRead(A0); //Variables de lecture des valeurs analogiques |
potOne = analogRead(A1); |
potDeux = lecture analogique(A2); |
int htz = map(potZero, 0, 1023, 0, 8800); // Mapper les lectures analogiques dans |
int high = map(potOne, 0, 1023, 0, 100); // nouvelles plages de numéros et création |
int bas = map(potTwo, 0, 1023, 0, 100); // nouvelles variables |
if (buttonState == HIGH) { // Si le bouton-poussoir est enfoncé… |
tonalité (haut-parleur, htz); // Son activé |
retard (élevé); // Durée du ton |
noTone(haut-parleur); // Son coupé |
retard (faible); // Temps jusqu'à la prochaine tonalité |
} autre { |
noTone(haut-parleur); // Pas de tonalité si le bouton est relâché |
} |
} |
voir rawNoise_Machine.ino hébergé avec ❤ par GitHub
Étape 4: la fin
C'est tout ce qu'il y a à faire. Jouez avec les valeurs du code, ajoutez plus de pots/boutons et voyez ce que vous pouvez contrôler d'autre. Faites-moi savoir si j'ai fait des erreurs et j'espère que vous apprécierez la musique.