Taula de continguts:

Arduino - Piezo Piano de tres botons: 4 passos
Arduino - Piezo Piano de tres botons: 4 passos

Vídeo: Arduino - Piezo Piano de tres botons: 4 passos

Vídeo: Arduino - Piezo Piano de tres botons: 4 passos
Vídeo: Amazing arduino project 2024, Juny
Anonim
Image
Image

El piano de tres botons és un projecte per a principiants amb certa experiència amb l’Arduino.

Sense voler, vaig intentar crear-ho mentre jugava per primera vegada amb un zumbador piezoelèctric. Era tan fort! En intentar esbrinar diversos mètodes per fer el zumbador més tranquil i provar diferents freqüències mitjançant la funció tone () i noTone (), em vaig adonar que pot ser divertit provar de barrejar el zumbador piezoelèctric juntament amb els altres components preferits del meu Arduino. kit: botons i el potenciòmetre.

Els materials necessaris inclouen:

  • 1 Arduino
  • 1 tauler de pa
  • 1 cable USB
  • Jumper Wires (diversos colors)
  • Resistència de 1 330 quilos
  • 1 Piezo Buzzer
  • 3 botons de pressió
  • 1 Potenciòmetre

Pas 1: Piezo Buzzer

Piezo Buzzer
Piezo Buzzer

Per començar, configureu el piezo a la pissarra de l’Arduino. Un dels seus costats (el costat més curt de la cama) ha d’anar corrent a terra. L’altre costat (el costat més llarg de la cama) ha de connectar-se a un pin d’entrada digital. Vaig optar per connectar-lo a 8.

Pas 2: premeu els botons

Botons de pressió
Botons de pressió
Botons de pressió
Botons de pressió

A continuació, és hora de configurar els botons. Igual que el piezo, els polsadors han de connectar-se a terra i a un pin d’entrada digital.

Pas 3: Potenciòmetre

Potenciòmetre
Potenciòmetre
Potenciòmetre
Potenciòmetre

L’últim pas en la construcció física és el potenciòmetre. Els potenciòmetres es presenten en algunes formes diferents. Utilitzarem el potenciòmetre com a divisor de tensió, de manera que cal connectar les tres potes.

Cama dreta: barra negativa (terra)

Cama mitjana: Pin analògic 0

Cama esquerra: barra positiva

Pas 4: Codi

Mentre escrivia codi per a aquest projecte, he fet referència a informació sobre alguns tipus específics de funcions:

to ()

noTone () (no he acabat fent servir aquest. En lloc d'això, he establert la freqüència a "0").

mapa ()

Una altra meravellosa referència per a usuaris per primera vegada de Piezo Buzzers es pot trobar aquí. Tot i que la idea de canviar el so del timbre piezo sembla senzilla, al principi pot resultar una mica aclaparadora.

La funció tone () es pot dividir en tres parts:

  1. Pin (el pin al qual està connectat el brunzidor piezoelèctric)
  2. Freqüència (la freqüència del so en Hz)
  3. Durada (la durada del so indicada en mil·lisegons)

Bàsicament, té el següent aspecte: to (pin, freqüència, durada). El tercer component (durada) és opcional, mentre que els altres dos són necessaris perquè el timbre funcioni. El component de "freqüència" de la funció de to és el que es pot considerar com "el so" que produeix el brunzidor.

També notareu que el codi inclou dos altres bits de codi. Hi ha algunes sentències if / else configurades per dir a l'Arduino què fer si es premen diferents botons, així com per configurar-lo amb "freqüència = 0" en situacions en què no es prem cap botó. Dins de les sentències if / else, les funcions map () s’utilitzen per assignar l’escala del potenciòmetre a un conjunt de freqüències. Es poden canviar! Juga amb diferents valors de freqüència per veure quins sons diferents pots obtenir del piezo.

Consulteu el codi que he utilitzat per crear el piano de tres botons aquí o consulteu a continuació.

int piezoPin = 8; // Configura el pin connectat a Piezo.

int sensorPin = 0; // Configureu el pin connectat al sensor (el potenciòmetre). int sensorValue = 0;

botó int1 = 5; // Configureu els pins d'entrada connectats als botons.

botó int2 = 4; botó int3 = 3;

freqüència int = 0;

const int delayTime = 500; // Configureu una constant per a la variable de temps de retard a la funció tone ().

configuració nul·la () {

pinMode (botó1, INPUT_PULLUP); pinMode (botó2, INPUT_PULLUP); pinMode (botó3, INPUT_PULLUP); }

bucle buit () {

sensorValue = analògicRead (sensorPin); // Llegiu el sensor. // Assigneu els diferents valors del potenciòmetre a un conjunt de freqüències per a cadascun dels tres botons. if (digitalRead (button1) == LOW) {freqüència = mapa (sensorValue, 0, 1023, 400, 499); } else if (digitalRead (button2) == LOW) {freqüència = mapa (sensorValue, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) {freqüència = mapa (sensorValue, 0, 1023, 600, 699); } else {freqüència = 0; } to (piezoPin, freqüència, delayTime); // Configureu les funcions tone () amb variables. }

Recomanat: