Merasuke Napisano Maj 12, 2022 Udostępnij Napisano Maj 12, 2022 #define BUZ A5 int stanBUZ = LOW; unsigned long aktualnyCzas = 0; unsigned long zapamietanyCzasBUZ = 0; void setup(){ Serial.begin(9600); pinMode(BUZ, OUTPUT); } void loop(){ //Pobierz liczbe milisekund od startu aktualnyCzas = millis(); //Jeśli różnica wynosi ponad 1 sekundę if (aktualnyCzas - zapamietanyCzasBUZ >= 1000UL) { //Zapamietaj aktualny czas zapamietanyCzasBUZ = aktualnyCzas; //Zmieniamy stan diody na przeciwny stanBUZ = !stanBUZ; //ustawiamy nowy stan na diodzie digitalWrite(BUZ, stanBUZ); } } Witam, Mam taki problem, iż chce zrobić sygnalizację z buzzera bez generatora ale nie chcę używać funkcji delay(). W tym programie próbowałem użyć funkcji millis() ale nie wiem jak w tą funkcję wstawić funkcje tone() by generować dźwięk. Czy mógłby ktoś podpowiedzieć jak to zrobić? Link do komentarza Share on other sites More sharing options...
farmaceuta Maj 12, 2022 Udostępnij Maj 12, 2022 Jak chcesz uzywac funkcje tone() to uzywasz normalnie...opcjonalnie mozesz dodac czas dzwieku..a jesli chcesz tak jak wyzej to musisz skrocic te czasy...1kHz to tysiac przelaczen na sekunde wiec musi byc np. if (aktualnyCzas - zapamietanyCzasBUZ >= 1UL) { (Tutaj jest 500Hz) lepiej sie przerzucic na micros() bo na millis() guzik zrobisz... 1 Link do komentarza Share on other sites More sharing options...
_LM_ Maj 12, 2022 Udostępnij Maj 12, 2022 Ja bym użył wolnego timera i generował sygnał sprzętowo 1 Link do komentarza Share on other sites More sharing options...
ethanak Maj 12, 2022 Udostępnij Maj 12, 2022 Zamiast digitalWrite wstawiasz wywołanie tone/noTone. Ewentualnie korzystasz z możliwości funkcji tone i ustawiasz czas, wtedy noTone nue jest potrzebny. 1 Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
Merasuke Maj 12, 2022 Autor tematu Udostępnij Maj 12, 2022 Dzięki wiekie, ustawiony czas na funkcji tune() zadziałał. 1 Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »