Przeszukaj forum
Pokazywanie wyników dla tagów 'głośniki'.
Znaleziono 5 wyników
-
Sprawdzenie schematu urządzenia gaszącego ogień dźwiękiem
Wejmon opublikował temat w Zupełnie zieloni
Cześć wszystkim, Ostatnio zainteresowałem się pewnym zjawiskiem fizycznym, polegającym na możliwości wykorzystania dźwięku do gaszenia ognia [link] [link]. Postanowiłem samemu zbudować podobne urządzenie, jednak podczas doboru elementów natrafiłem na pewne problemy, których niestety sam nie potrafię rozwiązać. 1. Schemat urządzenia 2. Zasada działania urządzenia Chciałbym, aby zaprojektowane urządzenie, za pomocą głośnika (generowanej fali akustycznej) było w stanie zgasić np. płomień zapalonej świeczki typu tealight [link] czy ogień z podpalonego denaturatu, wypełniającego pojemnik po wyżej wspomnianej świeczce. Z tego względu podstawą takiego urządzenia musi być odpowiedni głośnik. Uważam, że dobrym wyborem okaże się głośnik o impedancji 8 Ω, głośności 91 dB i mocy maksymalnej 200 W. Dzięki temu będę miał zapas na wykonywanie coraz to bardziej skomplikowanych eksperymentów, z możliwością podnoszenia poprzeczki. Owszem zapaloną świeczkę można po prostu zdmuchnąć ale trzeba od czegoś zacząć 😉 [link]. Również zdaję sobie sprawę, że do uzyskania takiego zjawiska potrzebuję odpowiedniej częstotliwości fali akustycznej oraz poziomu natężenia dźwięku. Precyzyjną częstotliwość fali akustycznej mogę wygenerować dzięki Arduino Uno oraz funkcji tone() [link], zaś kontrolę nad poziom natężenia dźwięku uzyskam dzięki wzmacniaczowi z wbudowanym potencjometrem [link]. Idąc dalej wzmacniacz potrzebuje zasilania od 6 V do 12 V. Większe napięcie przy stałej impedancji zapewnia większe natężenie. Większe natężenie to większa moc głośnika. Rozwiązaniem okaże się tutaj moduł z tranzystorem [link] pozwalający na włączanie urządzeń wymagających zasilania od 5 V do 15 V. Co więcej uchronię Arduino Uno przed natężeniem większym niż 20 mA. Wybrałem taki moduł z serii Grove, ponieważ posiadam nakładkę Grove Base Shield v2 [link] rozszerzającą możliwości pinów Arduino Uno oraz dysponuję wyświetlaczem LCD 2 x 16 [link] tej samej firmy, na którym wyświetlałbym daną częstotliwość fali akustycznej oraz poziom natężenia dźwięku. Co więcej planuję dokupić 2 przyciski, dzięki którym sterowałbym częstotliwością fali akustycznej generowanej przez Arduino (zmniejszenie częstotliwości / zwiększenie częstotliwości) [link]. Całość planuję zasilić akumulatorem 12 V ; 1,2 Ah, w połączeniu z przełącznikiem ON/OFF i stabilizatorem LM7805 [link] odpowiadającym za dostarczenie bezpiecznego napięcia 5 V do Arduino wraz z dwoma kondensatorami 1000 μF ; 25 V, których zadaniem jest eliminacja zakłóceń i zapewnienie prawidłowej pracy układu. Zasilanie do Arduino zapewnię poprzez wtyk DC [link]. 3. Problem do rozwiązania Mam nadzieję, że udało mi się zrozumiale wytłumaczyć planowany sposób działania urządzenia. Poniżej zapisałem pytania, na które niestety sam nie potrafię odpowiedzieć, a są według mnie kluczowe do poprawnego zadziałania prototypu: Czy mój tok rozumowania jest prawidłowy? Czy może coś mi umknęło? Czy przedstawiony schemat zakłada poprawne połączenia wejść / wyjść komponentów urządzenia? Czy zasilanie 12 V w połączeniu ze stabilizatorem okaże się wystarczające do uruchomienia głośnika, nie uszkadzając przy tym Arduino? Czy głośnik w połączeniu ze wzmacniaczem będzie generował dźwięk? Czy może czegoś brakuje? Z góry dziękuję za poświęcony czas i pomoc! 😊- 15 odpowiedzi
-
- 1
-
- Elektronika
- Arduino
-
(i 3 więcej)
Tagi:
-
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)