Skocz do zawartości

Kurs Arduino II - #3 - syrena alarmowa, MOSFET w praktyce


Komentator

Pomocna odpowiedź

Da się z pewnością, jeśli tylko syrenka którą masz rzeczywiście ładnie ścisza dźwięk przy opadaniu napięcia a nie ucina go jak nożem poniżej pewnego progu albo wyje fałszywie jak kojot do Księżyca. Może w celu wyjaśnienia "co nie wychodzi" zapodaj jakiś schemat tego co próbowałeś? Masz w domu jakieś diody? Obawiam się, że mogą być potrzebne.

  • Lubię! 1
Link do komentarza
Share on other sites

Wszystko będzie zależało od parametrów pracy konkretnego elektrozamka, ale ogólnie tak - jest taka możliwość. W przypadku elektrozamka powinien również dobrze sprawdzić się zwykły przekaźnik.

Link do komentarza
Share on other sites

Na bazie Arduino i tranzystora MOSFET wykombinowałem podświetlenie LED do mojego akwarium. Jest to wersja rozwojowa, pracująca na 12V, która reaguje na natężenie oświetlenia zewnętrznego i zależnie od jego wartości płynnie włącza lub wyłącza pasek LED RGB. Docelowo w planach jest dodanie harmonogramu tygodniowego oraz sterowanie barwą światła, ale na to jeszcze trzeba poczekać 😄

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

@andrzej531 daj również znać z jakich elementów dokładnie korzystasz. Nie widzę, abyś miał zarejestrowany zestaw więc właściwie nie wiemy co i jak masz podłączone. Ciężko o jakąś konkretną poradę. Do tej pory wiele osób wykonywało to ćwiczenie z pozytywnym efektem, więc błąd na 99% musi leżeć gdzieś pod Twojej stronie. Chętnie pomożemy go rozwiązać, ale musisz podać trochę więcej szczegółów 😉

Link do komentarza
Share on other sites

Witam,

jak zrobić żeby ten dźwięk wykonał się raz?

for (czestotliwosc = 31; czestotliwosc < 65535; czestotliwosc++) {

    tone(A5, czestotliwosc); //Wygeneruj sygnał o częstotliwości 1000Hz na pinie A5  

  }

niby w pętli for, ale w tym przypadku nie wychodzi mi. Bardzo zależy mi żeby ten dźwięk wykonał się raz.

Pozdrawiam

Mateusz Łańduch

Link do komentarza
Share on other sites

#define pik 3


#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932
#define NOTE_H5  988
#define NOTE_C6  1047
#define NOTE_CS6 1109
#define NOTE_D6  1175

void setup() {
pinMode(pik, OUTPUT);
Serial.begin(9600);
}

void loop() {

int a, b, c, d, e, p;
a=600;      //pauzy
b=300;
c=1200;
d=100;
e=0;
p=2000;     //pauzy

Serial.print("Sto ");
tone(pik,NOTE_G5);delay(a);Serial.print("lat... ");
tone(pik,NOTE_E5);delay(a);Serial.print("  sto ");
tone(pik,NOTE_G5);delay(a);Serial.print("lat... ");
tone(pik,NOTE_E5);delay(a);Serial.print("\nNiech ");
tone(pik,NOTE_G5);delay(a);Serial.print("zy");
tone(pik,NOTE_A5);delay(b);Serial.print("je, ");
tone(pik,NOTE_G5);delay(b);Serial.print("zy");
tone(pik,NOTE_F5);delay(b);Serial.print("je ");
tone(pik,NOTE_E5);delay(b);Serial.print("nam!");
tone(pik,NOTE_F5);delay(c);Serial.print("\n");
noTone(pik);delay(e);Serial.print("Sto ");
tone(pik,NOTE_F5);delay(a);Serial.print("lat... ");
tone(pik,NOTE_D5);delay(a);Serial.print("  sto ");
tone(pik,NOTE_F5);delay(a);Serial.print("lat... ");
tone(pik,NOTE_D5);delay(a);Serial.print("\nNiech ");
tone(pik,NOTE_F5);delay(a);Serial.print("zy");
tone(pik,NOTE_G5);delay(b);Serial.print("je, ");
tone(pik,NOTE_F5);delay(b);Serial.print("zy");
tone(pik,NOTE_E5);delay(b);Serial.print("je ");
tone(pik,NOTE_D5);delay(b);Serial.print("nam!");
tone(pik,NOTE_E5);delay(c);Serial.print("\n");
noTone(pik);delay(e);
Serial.print("Je");
tone(pik,NOTE_G5);delay(b);Serial.print("szcze ");
noTone(pik);delay(e);
tone(pik,NOTE_G5);delay(b);Serial.print("raz!!!");
tone(pik,NOTE_E5);delay(a);Serial.print("\nJe");
tone(pik,NOTE_G5);delay(b);Serial.print("szcze ");
noTone(pik);delay(e);
tone(pik,NOTE_G5);delay(b);Serial.print("raz!!!");
tone(pik,NOTE_E5);delay(a);Serial.print("\nNiech ");
tone(pik,NOTE_G5);delay(a);Serial.print("zy");
tone(pik,NOTE_C6);delay(b);Serial.print("je, ");
tone(pik,NOTE_H5);delay(b);Serial.print("zy");
tone(pik,NOTE_A5);delay(b);Serial.print("je ");
noTone(pik);delay(e);
tone(pik,NOTE_G5);delay(b);Serial.print("nam!!!");
tone(pik,NOTE_A5);delay(c);Serial.print("\nNiech ");
tone(pik,NOTE_H5);delay(c);Serial.print("zy");
noTone(pik);delay(e);
tone(pik,NOTE_H5);delay(a);Serial.print("je ");
noTone(pik);delay(e);
tone(pik,NOTE_H5);delay(a);Serial.print("nam!!!");
tone(pik,NOTE_C6);delay(c);
noTone(pik);delay(p);Serial.print("\n");Serial.print("\n");
}

Niestety nie wiem, dlaczego nie mogłem zapisać tych dźwięków jako:
tone(pik,NOTE_G5,1000);

Długość trwania dźwięku jakby nie była brana pod uwagę, dlatego użyłem delay-ów.

Może ktoś mi podpowie dlaczego tak jest...?

Edytowano przez argentrol
Umieszczenie kodu w odpowiednim miejscu.
Link do komentarza
Share on other sites

@argentrol witam na forum 🙂 To zupełnie normalne, bo wywołujesz polecenia jedno za drugim - nowy "tone" nadpisuje od razu poprzedni dźwięk. Jeśli chcesz odgrywać melodyjki to musisz dodawać przerwy. Zerknij jak jest to zrobione tutaj (trochę bardziej zawile, ale bardziej elegancko):

https://www.arduino.cc/en/Tutorial/BuiltInExamples/toneMelody

 

Link do komentarza
Share on other sites

Załóżmy że przycisk jest podpięty do masy, przez rezystor podciągający.

if(przycisk == 0)  // jeśli przycisk naciśnięty
{
   syrena(); // włączamy syrenę
}

 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.