Skocz do zawartości

BHBmacieg

Użytkownicy
  • Zawartość

    43
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

BHBmacieg zajął 1. miejsce w rankingu.
Data osiągnięcia: 24 marca 2020.

Treści użytkownika BHBmacieg zdobyły tego dnia najwięcej polubień!

Reputacja

26 Bardzo dobra

O BHBmacieg

  • Ranga
    3/10

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. While tak, ale if już nie. Dzieje się tak, że miga i piszczy na zmianę? Spróbuj najpierw zamienić funkcję z instrukcja warunkową na funkcję z pętlą. Wgrałem u siebie te funkcje i działa to tak jak myślałem, że buzzer piszczy raz, potem dioda miga 3 razy (bo jest w pętli while) a potem buzzer piszczy jeszcze 2 razy, ponieważ warunek dla pętli while już jest spełniony więc dwa razy z rzędu wykonuje funkcję start(). Zmień ten if w funkcji start() na pętle - dowolnie czy while czy for i wszystko będzie ok. W tej chwili powinno działać u Ciebie mniej więcej tak:
  2. Tak, dokładnie. For spowoduje zatrzymanie programu w pętli dopóki warunek zadany w pętli (na przykład i < 3) nie zostanie spełniony.
  3. Prawdopodobnie dzieje się tak, ponieważ korzystasz z funkcji warunkowej "if" zamiast z pętli "for". Teraz program działa tak, wchodzi do funkcji start, włącza, wyłącza buzzer, zwiększa wartość zmiennej bip i wychodzi z funkcji. Chodzi o to, że warunek sprawdzany jest tylko raz, jeśli jest prawdziwy wykonuje się sekwencja zapisana w funkcji "if" i program idzie dalej do kolejnych instrukcji. Napisz te funkcje z wykorzystaniem pętli "for" i sprawdź wtedy :).
  4. Jeśli chcesz dorobić sobie "system kalibracji" - ustawiania minimalnego i natężenia światła, na które reaguje układ to ja coś na podobę robiłem tu: Może się przyda
  5. Dobra, jednak źle zrozumiałem pytanie. Proszę o usunięcia posta.
  6. Oj, jakieś dziwne rzeczy się podziały. Koledze @Gieneq raczej chodziło pewnie o dodawanie stringów w funkcji print, aby ograniczyć ich ilość. Zamiast pisać: Serial.print(" Fotorezystor: " );//Drukuj tekst Serial.print(fRezystor ); Serial.print(", potencjometr: "); Serial.print(potencjometr ); Serial.print(", przycisk wcisnieto "); Serial.print(Przycisk ); Serial.print(" razy "); Możesz napisać: Serial.print("Fotorezystor: " + String(fRezystor)); Serial.print(" potencjometr: " + String(potencjometr)); Serial.println(" przycis wciśnięto: " + String(Przycisk) + " razy"); J
  7. Część, ominąłem póki co line followera bo chciałem połączyć zdalne sterowanie ze światłolubem oraz omijaniem przeszkód. Obecnie robot może być sterowany zdalnie, z możliwością płynnej regulacji prędkości jazdy. Osiągnięcie zarówno wartości maksymalnej jak i minimalnej sygnalizowane jest BUZZERem. Odpowiadają za to przyciski "vol up" oraz "vol down" na pilocie. Przycisk source natomiast powoduje zmianę trybu jazdy. W drugim trybie jazdy robot jeździ autonomicznie omijając przeszkody. Z przodu, jak poprzednio, przeszkody wykrywa za pomocą "czułek". Z tyłu posiada również czujnik ultradźwiękowy,
  8. Kolejna część kursu zakończona. Podobnie jak kolega @leepa79 również wykorzystałem krańcówki oraz czujnik HC-SR04. Z tym, że u mnie krańcówki wykrywają przeszkody przed robotem, a HC-SR04 pomaga nie wjechał w przeszkody tyłem. Tutaj kod: #define R_LIGHT_SENSOR A0 #define L_LIGHT_SENSOR A1 #define L_SIDE_SENSOR A2 #define R_SIDE_SENSOR 12 #define L_PWM 5 #define L_DIR 4 #define R_PWM 6 #define R_DIR 9 #define PWM_MAX 165 #define BUZZER 10 #define DIODA 13 #define ROZNICA_MIN -400 #define ROZNICA_MAX 400 #define trigPin 8 #define echoPin 7 bool START = false; //zmienna dla procedury s
  9. A może i lepiej ale teraz te kwarantanny i inne straszne rzeczy. Działam na tym co mam w domu. Ale uwaga słuszna, przy najbliższej wizycie w sklepie z elektroniką poszukam. A raczej na pewno taki moduł będzie dostępny więc dorzucę do koszyka.
  10. Napisałem swój własny kod do multipleksowania wyświetlacza. Zanim zacząłem korzystać z gotowej biblioteki. W tym przypadku zdecydowałem się na użycie gotowej biblioteki, żeby po prostu sprawdzić jak ona funkcjonuje. Jak będzie chwila czasu to wrócę do tego pomysłu, spróbuję użyć własnego kodu odpowiedzialnego na multipleksowanie ekranu. W jaki sposób mogę zmierzyć czas dokonania pomiaru? Koniecznie muszę się zagłębić w ten przykład z biblioteki, który powoduje, że pomiar jest nieblokujący. W zasadzie to w całą zawartość tej biblioteki bo wydaję się niezwykle ciekawa. Nie ukrywam, że
  11. W takim razie mea culpa. Źle zrozumiałem wpis na blogu. Dziękuję za uwagę. przeczytałem wpis na blogu raz jeszcze i teraz rozumiem. Na podstawie tego co napisałeś wynika, że kod @catalyst powinien działać, a mimo to nie działa. Bo przecież wskazuje przerwanie numer 0, a ono w przypadku UNO przypisane jest do pinu 2. Popraw mnie jeśli nie mam racji? Ja korzystam z funkcji digitalPinToInterrupt i za każdym razem przerwania działają u mnie jak należy.
  12. @Gieneq już sprawdziłem instrukcję obsługi mojego pieca. Jest tam przygotowana specjalna zworka, w którą należy się wpiąć i po prostu w momencie gdy temperatura spadnie później zadanej zamknąć obwód. To samo dzieje się gdy włączam go ręcznie za pomocą pokrętła umieszczonego na obudowie pieca. W ciągu kolejnych dni na pewno do układu dołożę jeszcze czujnik poziomu wilgotności, bo w zimie zdarza mi się mieć z nią problemy przez zbyt szczelne okna i chciałbym to też mieć pod kontrolą. A komentarzy tyle wstawiam również dla siebie. Wciąż jestem na etapie intensywnej nauki i symulataniczn
  13. @catalyst jeśli przycisk podłączony jest na Pinie 2 to czemu w kodzie usiłujesz wskazac PIN 0 jako ten odpowiedzialny za przerwanie? Zmień linijkę: attachInterrupt(0,alarm, FALLING); Na attachInterrupt(digitalPinToInterrupt(2), alarm, FALLING) Czemu nie korzystasz z funkcji digitalPinToInterrupt? Odpowiada ona za dobranie odpowiedniego pinu przerwań zależnie od płytki. Wtedy taki kod zadziała na każdym rodzaju płytki.
  14. Cześć, Wrzucam swoje rozwiązanie, tj termometr pokojowy z wyświetlaczem LCD oraz wskaźnikiem LED bazujący na cyfrowym czujniku temperatury. Wskazuje aktualną temperaturę, opcję pokazania najniższej i najwyżej odnotowanej temperatury oraz opcję włączenia/wyłączenia wskaźnika RGB LED - tak aby móc zostawić cały układ włączony na noc. Oczywiście w układzie są też dwa potencjometry - jeden do sterowania jasnością LCD (lub całkowitym wyłączeniem podświetlenia na noc) oraz drugi do manipulacji kontrastem. Docelowo chciałbym czegoś takiego użyć wraz z jakimś protokołem komunikacji bezprzewodowe
  15. a ja trochę z innej parafii. Nie wrzucam prac domowych, bo jest ich sporo Uparłem się, że zrobię sobie wpisywanie cyfr z komputera i mam. W tym celu skorzystałem z przerwania realizowanego przez przycisk. Podczas przerwania, realizowana jest funkcja restartująca software'owo całą płytkę. Jeśli chodzi o funkcję resetującą arduino to dopiero staram się zgłębić jej działanie. Póki co wiem, że działa. Teoretycznie mógłbym korzystać z przycisku wbudowanego w płytkę ale jak rozumiem to jest pełny restart hardware'owy. Trwa on sporo dłużej no i dodatkowo chciałem sprawdzić działanie funkcji restart
×
×
  • 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.