Spisu treści:

Arduino - pianino piezoelektryczne z trzema przyciskami: 4 kroki
Arduino - pianino piezoelektryczne z trzema przyciskami: 4 kroki

Wideo: Arduino - pianino piezoelektryczne z trzema przyciskami: 4 kroki

Wideo: Arduino - pianino piezoelektryczne z trzema przyciskami: 4 kroki
Wideo: Rumba - REPRAP DISCOUNT FULL GRAPHIC SMART CONTROLLER 2024, Czerwiec
Anonim
Image
Image

Pianino z trzema przyciskami to projekt dla początkujących z pewnym doświadczeniem w korzystaniu z Arduino.

Nieumyślnie pochłonęła mnie próba stworzenia tego, bawiąc się po raz pierwszy z brzęczykiem piezoelektrycznym. Było tak głośno! Próbując wymyślić różne metody wyciszenia brzęczyka i wypróbowania różnych częstotliwości za pomocą funkcji tone() i noTone(), zdałem sobie sprawę, że fajnie byłoby spróbować zmieszać brzęczyk piezo z innymi ulubionymi komponentami mojego Arduino zestaw: przyciski i potencjometr.

Potrzebne materiały obejmują:

  • 1 Arduino
  • 1 deska do krojenia chleba
  • 1 kabel USB
  • Przewody połączeniowe (różne kolory)
  • Rezystor 1 330 kiloomów
  • 1 piezoelektryczny brzęczyk
  • 3 przyciski
  • 1 potencjometr

Krok 1: Brzęczyk piezoelektryczny

Brzęczyk piezoelektryczny
Brzęczyk piezoelektryczny

Na początek ustaw piezo na płytce stykowej Arduino. Jedna strona (krótsza strona nogi) musi zejść na ziemię. Druga strona (strona dłuższej nogi) musi być podłączona do pinu wejścia cyfrowego. Zdecydowałem się podłączyć do 8.

Krok 2: Przyciski

Wciskać przyciski
Wciskać przyciski
Wciskać przyciski
Wciskać przyciski

Następnie nadszedł czas na ustawienie przycisków. Podobnie jak w przypadku piezo, przyciski muszą być podłączone do masy i do pinu wejścia cyfrowego.

Krok 3: Potencjometr

Potencjometr
Potencjometr
Potencjometr
Potencjometr

Ostatnim krokiem w fizycznej budowie jest potencjometr. Potencjometry występują w kilku różnych formach. Użyjemy potencjometru jako dzielnika napięcia, więc wszystkie trzy jego nogi muszą być połączone.

Prawa noga: pasek ujemny (ziemia)

Środkowa noga: analogowy pin 0

Lewa noga: pasek dodatni

Krok 4: Kod

Pisząc kod do tego projektu, odwoływałem się do informacji o kilku konkretnych typach funkcji:

ton()

noTone() (nie użyłem tego. Zamiast tego ustawiłem częstotliwość na "0".)

mapa()

Kolejną wspaniałą referencję dla początkujących użytkowników Piezo Buzzers można znaleźć tutaj. Choć pomysł na zmianę dźwięku brzęczyka piezoelektrycznego wydaje się prosty, na początku może być nieco przytłaczający!

Funkcję tone() można podzielić na trzy części:

  1. Pin (pin, do którego podłączony jest brzęczyk piezoelektryczny)
  2. Częstotliwość (częstotliwość dźwięku w hercach)
  3. Czas trwania (czas trwania dźwięku podany w milisekundach)

Zasadniczo wygląda to tak: ton(pin, częstotliwość, czas trwania). Trzeci składnik (czas trwania) jest opcjonalny, podczas gdy pozostałe dwa są niezbędne do działania brzęczyka. Składnik „częstotliwości” funkcji tonu to coś, co można uznać za „dźwięk”, który jest wytwarzany przez brzęczyk.

Zauważysz również, że kod zawiera dwa inne fragmenty kodu. Istnieje kilka instrukcji if/else, które informują Arduino, co ma zrobić, jeśli zostaną naciśnięte różne przyciski, a także ustawić je z „częstotliwością = 0” w sytuacjach, gdy żaden z przycisków nie jest naciśnięty. W instrukcjach if/else funkcje map() są używane do mapowania skali potencjometru na zbiór częstotliwości. Można je zmienić! Pobaw się różnymi wartościami częstotliwości, aby zobaczyć, jakie różne dźwięki można uzyskać z piezo.

Sprawdź kod, którego użyłem do stworzenia pianina z trzema przyciskami tutaj lub sprawdź poniżej.

int piezopin = 8; //Ustaw pin podłączony do Piezo.

wew czujnikaPin = 0; //Ustaw pin podłączony do czujnika (potencjometru). int sensorValue = 0;

wewn przycisk1 = 5; //Ustaw piny wejściowe podłączone do przycisków.

wewn przycisk2 = 4; wewn przycisk3 = 3;

częstotliwość int = 0;

const int opóźnienieCzas = 500; //Ustaw stałą dla zmiennej czasu opóźnienia w funkcji tone().

pusta konfiguracja () {

pinMode(przycisk1, INPUT_PULLUP); pinMode(przycisk2, INPUT_PULLUP); pinMode(button3, INPUT_PULLUP); }

pusta pętla () {

sensorValue = analogRead(sensorPin); //Odczytaj czujnik. //Przypisz różne wartości potencjometru do zestawu częstotliwości dla każdego z trzech przycisków. if (digitalRead(przycisk1) == LOW) { frequency = map(sensorValue, 0, 1023, 400, 499); } else if (digitalRead(button2) == LOW) { frequency = map(sensorValue, 0, 1023, 500, 599); } else if (digitalRead(button3) == LOW) { frequency = map(sensorValue, 0, 1023, 600, 699); } inaczej { częstotliwość = 0; } ton(piezoPin, częstotliwość, opóźnienieCzas); //Ustaw funkcje tone() ze zmiennymi. }

Zalecana: