Zaloguje się
or
Tel +48 698 615 740

MODUŁ ODTWARZACZ MUZYKI MINI – MP3 – BLUETOOTH HW-770

30 grudnia, 2021

W tym artykule pokaże jak możemy zrobić własny odtwarzacz muzyki Bluetooth. Wyposażony on będzie w wyświetlacz informujący nas o obecnym stanie urządzenia. Natomiast za zmianę jego stanu będzie odpowiadał enkoder.

Spis treści

  • Krótki opis
  • Specyfikacja
  • Przykład
  • Pliki do pobrania

Krótki opis

Moduł wyposażony jest w wejście typu JACK oraz micro USB. Zapewnia on możliwość komunikacji telefonicznej przez Bluetooth-a oraz odtwarzanie muzyki dzięki Bluetooth.

Specyfikacja

  • Napięcie zasilania: 3,7 – 5V
  • Złącze zasilania w formie micro USB lub pady lutownicze
  • Zasięg: max 15 m
  • Wymiary płytki: 30 x 30 x 7 mm

Przykład

Elementy

  • MODUŁ ODTWARZACZ MUZYKI MINI – MP3 – BLUETOOTH HW-770
  • Arduino Mega/Uno/Nano
  • Moduł enkodera obrotowego KY-040
  • Wyświetlacz graficzny OLED 128×64 pikseli 0,96`
  • * Płytka stykowa (jeżeli korzystamy z płytek Uno lub Nano)

Połączenie

Arduino – Moduł

pin 2 – “+”

GND/ *(wpinamy do płytki stykowej w wejście z “- ” i podłączamy wszystkie urządzenia z wejściem GND równolegle) – “-”

Arduino – Oled

SDA/A4 – SDA

SCL/A5 – SCL

GND – GND

5V(wpinamy w płytkę do pinu z “+” i podłączamy wszystkie urządzenia z wejściem VCC równolegle) – VCC

Arduino – Enkoder

pin 11 – CLK

pin 10 – DT

pin 9 – SW

GND – GND

5 V – VCC

Program

Na początku nazwę 2 piny (9 i 2) jako BTN (skrót button) i Blt (skrót Bluetooth)

#define BTN 9
#define BlT 2

Potem musimy załączyć wszystkie biblioteki oraz zmienne które będziemy wykorzystywać w przykładzie. Musimy stworzyć również obiekt biblioteki enkodera ( nazwałem go rotary) i przypisać do niego 2 piny (DT, CLK).

Potem tworzę 2 zmienne count odpowiadającą za ilość wciśnięcia przycisku oraz verify której na ten moment wartość jest równa false.

#include <Wire.h>
#include <SPI.h>
#include <SoftwareSerial.h>
#include <TEA5767.h>
#include <Encoder.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels


#define OLED_RESET     4 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
Encoder rotary(10,11);
int count = 0;
bool verify = false;

Kolejno w funkcji void setup(). Aktywujemy komunikację na porcie szeregowym. Potem ustawiamy stany na 2 pin-ach OUTPUT – stan wyjściowy dla Bluetooth-a oraz INPUT_PULL – wewnętrznej rezystancji dla buttona. Ostatnim krokiem w funkcji jest podstawowa procedura dla Oled-u w razie niepoprawnego działania i wyczyszczenie wyświetlacza.

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(BTN, INPUT_PULLUP);
  pinMode(BlT, OUTPUT);
  if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }
  display.clearDisplay();
}

Na koniec została nam funkcji void loop(). Zaczynamy od if który będzie sczytywał ile razy wcisnęliśmy przycisk. Potem jeżeli został on wciśnięty 2 razy aktywuje się tryb Bluetooth. Póki zmienna verify będzie równa true pętla będzie się wykonywać i sprawdzać czy nasz moduł jest włączony czy wyłączony. Jego stan możemy zmienić dzięki obróceniu enkodera. Po ponownym wciśnięciu przycisku na enkoderze wychodzimy z trybu Bluetooth. Zapomniałem wcześniej dodać że wszystkie informacje dotyczące stanu Bluetooth-a będą wyświetlane na oled-zie.

void loop() {
  // put your main code here, to run repeatedly:
  if(digitalRead(BTN) == LOW) {
    Serial.print("Count +1");
    count = count + 1;
    delay(1000);
    Serial.print(count);
  }
    if(count == 2) {
      Serial.println(enc);
      display.clearDisplay();
      display.setTextSize(2);
      display.setTextColor(WHITE);
      display.setCursor(5,5);
      display.print("WEJSCIE");
      display.print("TRYB BLUETOOTH");
      display.display();
      verify = true;
      delay(2000);
    }
    while(verify == true) {
      int enc = rotary.read();
      Serial.println(enc);
        if(enc >= 0){
          enc = 0;
          rotary.write(enc);
          digitalWrite(BlT, HIGH);
          display.clearDisplay();
          display.setTextSize(2);
          display.setTextColor(WHITE);
          display.setCursor(8,16);
          display.print("BLUETOOTH ON");
          display.display();
        }
        
        if(enc < 0){
          enc = -1;
          rotary.write(enc);
          display.clearDisplay();
          display.setTextSize(2);
          display.setTextColor(WHITE);
          display.setCursor(8,16);
          display.print("BLUETOOTH OFF");
          display.display();
          digitalWrite(BlT, LOW);
        }
        if(digitalRead(BTN) == LOW){
          display.clearDisplay();
          count = 0;
          verify = false;
          digitalWrite(BlT, LOW);      
        }
    }
}

Pliki do pobrania

Jak pobrać bibliotekę dla oled – WYŚWIETLACZE OLED 0.91, 0.96 – AJmaker

Sticky
Możliwość komentowania MODUŁ ODTWARZACZ MUZYKI MINI – MP3 – BLUETOOTH HW-770 została wyłączona
Dadas Bartosz

Dadas Bartosz

Jest Uczniem Technikum Budowlano-Elektronicznego w Świdnicy na kierunku Technik Informatyk. Na co dzień oprócz projektów z ardunio uczy się programować aplikacje mobile. W przyszłości chcę zostać programistą.

Comments are closed.

Strona korzysta z plików cookies w celu realizacji usługi i zgodnie z Polityką Plików Cookies. Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce.