Przeszukaj forum
Pokazywanie wyników dla tagów 'głośniki'.
Znaleziono 4 wyniki
-
Witajcie. Kolejne pytanie 🙂. Czy ten brzęczyk (https://botland.com.pl/buzzery-generatory-dzwieku/2090-buzzer-z-generatorem-fy248-23mm-3-18v-w-obudowie-5904422349011.html) bez obaw mogę podłączyć do GPIO RPi 4B (4GB RAM)? Chciałbym zrealizować ten projekt (https://projects.raspberrypi.org/en/projects/leds-buzzers-scratch-games/0), a później może jakieś własne projekty. Więc czy powyższy brzęczyk mogę bez obaw mogę podłączyć do GPIO RPi 4B (4GB RAM)? Będę wdzięczny za odpowiedź. 🙂
- 12 odpowiedzi
-
- Raspberry Pi
- głośniki
-
(i 1 więcej)
Tagi:
-
Witajcie. Mam głośniczek piezoelektryczny z zestawu Mikronik. Chciałbym go podłączyć do baterii 9V. Czy muszę użyć dzielnika napięcia, czy może czegoś innego? A jeśli tak, to jakiego dzielnika? Przesyłam zdjęcie głośniczka.
-
Muzyka z "Piratów z Karaibów" po otworzeniu drzwi - Arduino
zuuzka opublikował temat w Artykuły użytkowników
Arduino i dźwięki? Nic prostszego! Ten projekt jest idealny dla osób, które dopiero rozpoczynają swoją przygodę z Arduino. Nie pomoże on raczej w życiu i nie jest rzeczą bez której nie można się obejść, ale z pewnością pomoże zrozumieć działanie czujnika odległości oraz dźwięków w tej popularnej płytce. Będziemy potrzebować: Arduino UNO Rev3 Płytka prototypowa Czujnik odległości Kable połączeniowe Potencjometr obrotowy 1kΩ (do regulowania głośności) Głośnik lub buzzer (lepiej działa na głośniku) Ten artykuł bierze udział w naszym konkursie! 🔥 Na zwycięzców czekają karty podarunkowe Allegro, m.in.: 2000 zł, 1000 zł i 500 zł. Potrafisz napisać podobny poradnik? Opublikuj go na forum i zgłoś się do konkursu! Czekamy na ciekawe teksty związane z elektroniką i programowaniem. Sprawdź szczegóły » UWAGA! Jeżeli program nie działa ci prawidłowo skopiuj cały kod do Worda, a następnie sprawdź czy nie ma jakiś np. twardych spacji. Czujnik-------------------------------------------------------------------------------------------------------------------------- Zacznijmy od najważniejszej rzeczy czyli zamontowania czujnika odległości na płytkę prototypową. Tak powinno to wyglądać. Większej filozofii w tym nie ma podłączamy masę czujnika (GND) do masy na płytce (GND), Vcc do +5V, trig do pinu nr. 12, ,a echo do pinu nr. 11. Teraz zaprogramujmy odczytywanie odległości, będziemy ją wyświetlać na monitorze portu szeregowego. Najpierw musimy zdefiniować numery pinów które połączone są z trig i echo na czujniku. #define trigPin 12 #define echoPin 11 Można to zrobić tak lub tak: const int trigPin= 12; const int echoPin= 11; Ja wybiorę pierwszą opcję zapisu. Kolejna rzeczą jaka powinniśmy zrobić jest zdefiniowanie trigPin i echoPin jako wyjście i wejście w funkcji setup(). void setup() { Serial.begin(9600); //rozpoczęcie wyświetlania na porcie szeregowym pinMode(trigPin, OUTPUT); //wyjście pinMode(echoPin, INPUT); //wejście } Okej, mamy już wszystko zdefiniowane więc nie ma co przedłużać i czas zabrać się za nasz czujnik. Stwórzmy więc funkcję która będzie obsługiwać czujnik. Nazwiemy ją odleglosc(). Co powinna ta funkcja zawierać? Przede wszystkim odczyt odległości w cm, na pewno przyda też się wypisywanie na port szeregowy już zamienionej na cm odległości. Coś jeszcze? Na razie to tyle. A więc zabierzmy się do pracy! Pierwsze co musimy zrobić- stworzyć funkcję odleglosc(), w której będziemy sprawdzać odległość od najbliższego obiektu który jest w zasięgu czujnika: int odleglosc() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); } W taki prosty sposób możemy odczytać odległość z naszego czujnika. Teraz czas zamienić nasze wyniki na cm, na razie nigdzie ich nie widzimy ale wkrótce to zrobimy. Aby zamienić wynik naszego pomiaru na cm musimy podzielić ten wynik przez pewną liczbę, nie musimy teraz zagłębiać się jak ta liczba dokładnie działa ani co to za liczba, wystarczy, że zapiszemy poniższy kod w funkcji odleglosc(). czas = pulseIn(echoPin, HIGH); dystans = czas / 58; Teoretycznie nasz program działa, ale nie widzimy wyników, nie możemy być pewni, że działa, a więc dopiszmy do naszej funkcji fragment programu, dzięki któremu nasze pomiary wypiszemy na monitorze portu szeregowego. Serial.print(dystans); Serial.println(" cm"); Cała funkcja powinna prezentować się tak: int odleglosc() { long czas, dystans; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); czas = pulseIn(echoPin, HIGH); dystans = czas / 58; Serial.print(dystans); Serial.println(" cm"); } No i już ostatni krok przy czujniku, czyli w funkcji loop wywołanie naszej funkcji odleglosc(): void loop() { odleglosc(); delay(500); } Muzyka-------------------------------------------------------------------------------------------------------------------------- No to tak jak ostatnio zacznijmy od połączenia wszystkiego na płytce stykowej. Najpierw na płytkę dodam potencjometr, ja mam już w obudowie, ale można użyć też takiego zwykłego tag wygląda po podłączeniu: Teraz przylutujmy przewody połączeniowe do przejściówki od głośnika. Jeśli nie masz umiejętności lutowania najlepiej użyj buzzera. Niebieski kabel to masa (GND) czyli jak już się pewnie domyślacie wpinamy go do GND na płytce Arduino nad pinem 13, biały kabel natomiast podłączamy do pomarańczowego kabla odprowadzonego od buzzera. Kolejny kabel łączymy z drugim kablem od buzzera i pinu numer 9. No to czas napisać funkcję która będzie puszczać muzykę piratów z Karaibów. Nuty oczywiście wzięłam ze strony Arduino, ale muzykę napisałam sama, co jest w zasadzie bardzo proste jeśli kiedykolwiek grało się na jakimś instrumencie, a nawet jeśli nie to na internecine znajdziecie masę piosenek z nutami literowymi które wystarczy odpowiednio zapisać w programie. Napiszmy więc funkcję muzyka() która będzie przyjmowała argument odleglosc czyli zapiszemy to następująco: void muzyka(int odleglosc){ } Okej, co dalej, przypomnijmy sobie co ma robić ta funkcja- puszczać muzykę. Żeby to zrobić musimy najpierw zrozumieć działanie biblioteki pitches.h której będziemy używać. A więc biblioteka ta działa następująco- definiujemy każdą nutę (a raczej mamy już zdefiniowaną) poprzez numer np. #define NOTE_E6 1319. Przejdźmy teraz do najważniejszej rzeczy czyli jak jej używać. Pod ikonką monitora portu szeregowego w Arduino IDE widzimy trójkąt zwrócony w dół, klikamy w niego, a następnie wypieramy 'nowa zakładka' i nadajemy jej nazwę pitches.h. Teraz jak już utworzy nam się nowa zakładka, wchodzimy na stronę: https://gist.github.com/mikeputnam/2820675 i kopiujemy to, co znajduje się w programie pitches.h. Wklejamy to do naszej nowej zakładki, teraz wystarczy na górze naszego głównego programu napisać #include "pitches.h". Teraz zdefiniujmy sobie kilka ważnych zmiennych czyli nuty a, c, d, e, f, g. int a = 440; int c = 262; int d = 294; int e = 330; int f = 349; int g = 392; Dźwięki mogą być krótkie lub dugite więc zdefiniujmy także zmienne k- krótkie i dl- długie. int k = 125; int dl = 250; Okej, przejdźmy do pisania muzyki. Będziemy potrzebować funkcji tone(). Wydaje ona dźwięk na pinie którego numer zapiszemy na pierwszym miejscu za nawiasem, żeby jednak wydał jakiś dźwięk, na drugim, miejscu za nawiasem musi być zapisana nuta którą zdefiniowaliśmy np. tone(9,a). Najpierw jednak, chcemy, żeby muzyka grała tylko wtedy kiedy drzwi są w odległości 18cm od czujnika, czyli są otwarte, potrzebujemy więc operatora if. void muzyka(int odleglosc){ if (odleglosc > 1 && odleglosc < 18) { //tu będzie muzyka } noTone(9); // zatrzymanie muzyki } Jeśli odległość będzie większa od 1 i mniejsza od 15 to puść muzykę, jeśli nie, nie graj nic lub jeśli muzyka właśnie była grana przestań ją grać. Teraz wystarczy wkleić w w miejsce gdzie będzie muzyka, właśnie muzykę. Ja już to zrobiłam, i nie ma co tego tłumaczyć ponieważ wystarczy tak jak już wcześniej pisałam używać funkcji tone() i delay()- w delay wpisujemy trwanie krótkie lub długie czyli k lub dl. void muzyka(int odleglosc){ if (odleglosc > 1 && odleglosc < 18) { tone(9, a); delay(k); tone(9, c); delay(k); tone(9, d); delay(dl); tone(9, d); delay(dl); tone(9, d); delay(k); tone(9, e); delay(k); tone(9, f); delay(d); tone(9, f); delay(k); tone(9, f); delay(k); tone(9, g); delay(k); tone(9, e); delay(dl); tone(9, e); delay(dl); tone(9, d); delay(dl); tone(9, c); delay(k - 25); tone(9, c); delay(k - 25); tone(9, d); delay(dl); tone(9, a); delay(k); tone(9, c); delay(k); tone(9, d); delay(dl); tone(9, d); delay(dl); tone(9, d); delay(k); tone(9, f); delay(k); tone(9, g); delay(dl); tone(9, g); delay(dl); tone(9, g); delay(k); tone(9, a); delay(k); tone(9, 466); delay(dl); tone(9, 466); delay(dl); tone(9, a); delay(k); tone(9, g); delay(k); tone(9, a); delay(k); tone(9, d); delay(dl); tone(9, d); delay(k); tone(9, e); delay(k); tone(9, f); delay(dl); tone(9, f); delay(dl); tone(9, g); delay(dl); tone(9, a); delay(k); tone(9, d); delay(k); tone(9, f); delay(k); tone(9, e); delay(dl); tone(9, e); delay(dl); tone(9, f); delay(k); tone(9, d); delay(k); tone(9, e); delay(dl); } noTone(9); } Już końcówka, wystarczy, że do funkcji setup() dodamy fragment kodu ustawiający pin numer 9 (ten do którego podpięliśmy głośnik) jako wyjście: void setup() { pinMode(trigPin, OUTPUT); //Pin, do którego podłączymy trig jako wyjście pinMode(echoPin, INPUT); //a echo, jako wejście pinMode(9, OUTPUT);//<====== } Ostatnia rzecz, czyli wywołanie funkcji muzyka w funkcji odleglosc() muzyka(dystans); Tak prezentuje się wykonany projekt: #define trigPin 12 #define echoPin 11 #include "pitches.h"; int a = 440; int c = 262; int d = 294; int e = 330; int f = 349; int g = 392; int k = 125; int dl = 250; void setup() { pinMode(trigPin, OUTPUT); //Pin, do którego podłączymy trig jako wyjście pinMode(echoPin, INPUT); //a echo, jako wejście pinMode(9, OUTPUT); } int odleglosc() { long czas, dystans; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); czas = pulseIn(echoPin, HIGH); dystans = czas / 58; Serial.print(dystans); Serial.println(" cm"); muzyka(dystans); } void muzyka(int odleglosc){ if (odleglosc > 1 && odleglosc < 18) { tone(9, a); delay(k); tone(9, c); delay(k); tone(9, d); delay(dl); tone(9, d); delay(dl); tone(9, d); delay(k); tone(9, e); delay(k); tone(9, f); delay(d); tone(9, f); delay(k); tone(9, f); delay(k); tone(9, g); delay(k); tone(9, e); delay(dl); tone(9, e); delay(dl); tone(9, d); delay(dl); tone(9, c); delay(k - 25); tone(9, c); delay(k - 25); tone(9, d); delay(dl); tone(9, a); delay(k); tone(9, c); delay(k); tone(9, d); delay(dl); tone(9, d); delay(dl); tone(9, d); delay(k); tone(9, f); delay(k); tone(9, g); delay(dl); tone(9, g); delay(dl); tone(9, g); delay(k); tone(9, a); delay(k); tone(9, 466); delay(dl); tone(9, 466); delay(dl); tone(9, a); delay(k); tone(9, g); delay(k); tone(9, a); delay(k); tone(9, d); delay(dl); tone(9, d); delay(k); tone(9, e); delay(k); tone(9, f); delay(dl); tone(9, f); delay(dl); tone(9, g); delay(dl); tone(9, a); delay(k); tone(9, d); delay(k); tone(9, f); delay(k); tone(9, e); delay(dl); tone(9, e); delay(dl); tone(9, f); delay(k); tone(9, d); delay(k); tone(9, e); delay(dl); } noTone(9); } void loop() { odleglosc(); delay(100); } Program gotowy, wszystko gotowe, no prawie wszystko zostało tylko podłączenie głośnika: i zrobione! przetestuj najpierw z ręką, a potem połóż przy drzwiach. Ja podłączam Arduino do telefonu, przez przejściówkę, ale wy możecie użyć czegoś innego. Tak powinien działać gotowy projekt: Mam nadzieję, że poradnik się przydał!- 3 odpowiedzi
-
- 5
-
-
- konkurs2021
- Arduino
-
(i 3 więcej)
Tagi:
-
Jak powszechnie wiadomo, zdecydowana większość samochodów (nawet matizy) posiadają głośniki dość dobrej jakości. Oczywiście, kiedy mój znajomy pozbywał się samochodu na złom, musiałem coś z niego podebrać 😉 A oto prezentuję wam sterowniczek do głośników samochodowych DIY. Mogę też wspomnieć, że jest to mój pierwszy projekt nieoparty na mikrokontrolerze (więc dość tani). Funkcjonalność Urządzenie świetnie się nadaje na imprezy - potrzebuje dość dużo prądu, podpinamy się bezprzewodowo za pomocą bluetootha, no i wzmacniacz generuje dobre basy 😉 Całość zamyka się w małej obudowie Z23, z wyprowadzonymi złączami głośnikowymi i zasilaniem. Nie chciałem dodawać przycisków, gdyż na chwilę obecną wydawało mi się to zbędne. Urządzenie niestety wymaga aż 2 zasilaczy - 12v i 5v (obniżone do 3,3v za pomocą AMS1117), z powodu tzw. pętli mas, która zakłócała działanie układu BT, BK8000L. Sygnał audio wzmacnia PAM8610, wzmacniacz 2x15W przy impedancji 4ohm. Do wzmacniacza podłączyłem też niezależny, programowy przełącznik mute. Jak wyżej wspomniałem, do urządzenia łączymy się np. telefonem, i możemy bez problemu puścić muzykę z youtuba. Budowa Stabilizator wraz z modułem BT umieściłem na dwustronnej płytce prototypowej, zasilacz wlutowałem na stałe. Wyprowadziłem sygnały L, P i GND a resztę owinąłem taśmą kaptonową. Do wzmacniacza podłączyłem 12V bezpośrednio z zasilacza, przycisk mute do specjalnych wyprowadzeń na płytce, wyjścia podłączyłem do gniazd. Oczywiście całość w kaptonie - ochrona przed zwarciem. Później nożykiem wyrzeźbiłem w obudowie otwory na złącza, wkręciłem wszystko i zamknąłem. Efekty Na zdjęciu podłączyłem głośniki z koreańskiego samochodu Ssang Yong, o dość niskiej impedancji oraz 3 membranami. Całość połączyłem calkiem grubym kablem głośnikowym 1,5mm2. Dźwięk - czysty, basy - mocne, czyli zadanie zaliczone 😉 W przyszłości, kiedy znajdę czas (szkoła... ) na pewno pobawię się komendami AT, wydrukuję nową obudowę i dodam przyciski. Postaram się też zasilić całość 1 zasilaczem - jeżeli coś jeszcze będę modyfikował, dam znać. Na specjalną prośbę mogę wysłać filmik prezentujący działanie głośników. Pozdrawiam, Leoneq :3
- 2 odpowiedzi
-
- 1
-
-
- elektronika
- diy
- (i 3 więcej)