Skocz do zawartości

Krawi92

Użytkownicy
  • Zawartość

    151
  • Rejestracja

  • Ostatnio

Reputacja

30 Bardzo dobra

O Krawi92

  • Ranga
    5/10

Ostatnio na profilu byli

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

  1. Krawi92

    Funkcja Input Capture w Arduino

    Nie, o inicjalizacje prescalera dla timera tj tccr1b |= (1 << cs11) prescaler 8.. 8000000/8=1000000 1/1000000 =1 us
  2. Krawi92

    Funkcja Input Capture w Arduino

    Wrzucam lekko poprawioną wersje. Niestety nie ogarnąłem na razie jak to zrobić uniwersalnie dla każdego taktowania. Gdyby ktoś chciał inne taktowanie niż 8Mhz to musi ustawić prescaler tak, żeby miał czas impulsu 1uS Jedynie co to porty Trig i Echo można w pliku nagłówkowym sobie zmienić. hcsr04.c #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include "hcsr04.h" volatile uint16_t result; // zmienna przechowywująca wynik volatile uint8_t start_meas=0; // zmienna pomocnicza volatile uint8_t timer; // timer programowy void hc_Init(void){ //
  3. No bo musi przez te wszystkie elementy przepłynąć jakiś prąd. Prąd płynie umownie od + do - więc musisz tak to podłączyć. Przepływ prądu spowoduje jakiś spadek napięcia na rezystorach w zależności od ich wartości wg prawa Ohma. No i równolegle łączymy to z wejściami komparatora,ktory porównuję tę napięcia i wystawia na wyjściu odpowiedni stan
  4. Krawi92

    Pirometr na AVR

    Głupie pytanko nie na temat. czy zapis PORTB |= (1<<CY1_KEY|1<<CY3_KEY|1<<CY4_KEY); jest poprawny ? Czy powinno być PORTB |= (1<<CY1_KEY)|(1<<CY3_KEY)|(1<<CY4_KEY); Jest w tym jakaś różnica ? definy wygladaja tak #define CY1_KEY PB2 #define CY2_KEY PC4 #define CY3_KEY PB0 #define CY4_KEY PB1
  5. Krawi92

    Funkcja Input Capture w Arduino

    Ok, na razie wrzucę co mam, liczę na podpowiedzi co by tu ulepszyć. Jeszcze nie zabrałem się za obsługę przepełnień i muszę pomyśleć jak rozwiązać w jakiś uniwersalny sposób przeliczanie na cm. Jest to uzależnione od prescalera i taktowania. Tutaj na sztywno zrobiłem dla 8Mhz i prescalera 64. Użyłem timera programowego, żeby sobie HC tykał. Proszę wytknąć ew błędy. hcsr04.c #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include "hcsr04.h" volatile uint16_t result; // zmienna przechowywująca wynik volatile uint8_t start_meas; // zmienna pomo
  6. Krawi92

    Funkcja Input Capture w Arduino

    Czy przepełnienie nastąpi to zależy od prescalera. Mnie przy większej odległości się przepełniał, sygnalizowała to dioda, dlatego żeby nie nastąpiło to zwiększyłem prescaler do np: 64. Ja akurat jade na oscylatorze 8mhz bo mam tylko 1 kwarc na chacie już zajęty Przy prescalerze 8 lekko migotał LCD, wiadomo, zmniejszyła sie niby precyzja, ale dla takiego czujnika to akurat mała różnica. Akurat wrzuciłem fajna możliwość zmiany portu i pinu w 1 miejscu dla pinow trig i echo. Postaram się jak najbardziej uniwersalnie to zrobić.
  7. Krawi92

    Funkcja Input Capture w Arduino

    Przespałem się z tym wszystkim i zakumałem. Teraz piszę jakby troche uporządkowaną bibliotekę, może nie po swojemu, na wzór tego co tu było ale postaram się pare rzeczy dodać, postaram się uwzględnić też ilość przepełnień, gdybym chciał mierzyć większą odległość, choć nie wiem czy dla tego czujnika to ma sens. Jak skończe to wrzuce gotowe pliki, może się komuś przyda jako gotowiec pod HC-SR04
  8. Krawi92

    Pirometr na AVR

    Nieduża odległość, ok 10-15cm
  9. Krawi92

    Funkcja Input Capture w Arduino

    jesli chodzi o dokladnosc to nie ma tragedii... miarką mierzyłem do 50cm i się zgadza. Na razie próbuje się wczytać w sam tryb input capture i skumać jak to działa, żeby samemu z głowy napisać obsługe.
  10. Krawi92

    Funkcja Input Capture w Arduino

    heh to nie jest tak, że nic nie rozumiem, ale tylko niektórych rzeczy. I nie do konca kumam zasade jak się zlicza ten czas impulsu.
  11. Krawi92

    Funkcja Input Capture w Arduino

    Trochę odkopię temat, bo od jakiegoś czasu właśnie próbowałem obsłużyć HC-SR04 w C, ale nie mogłem zrozumieć, jak zmierzyć czas impulsu, jak to zaimplementować w kodzie. Teraz też jeszcze nie wszystko do końca rozumiem, ale częściowo skopiowałem twój kod @_LM_ i w sumie zadziałało. Tylko usunąłem procedure obsługi od przepełnienia, bo gdy wywalało błąd, czujnik już nie mierzył odległości, musialem resetować uC. Ale bez tego też działa ok, pamiętam, że na arduino jak uruchamiałem go to przy maksymalnym zbliżeniu do ściany też walił jakieś błędy, trzeba było min. 1cm utrzymać. Teraz wkleje kilka
  12. Krawi92

    Pirometr na AVR

    Nie i też nie musi być super dokładne. Wystarczy wyświetlenie w postaci liczb całkowitych. Generalnie bardziej chodzi nie tyle co o dokładną temperaturę, a żeby zauważalna była jej zmiana. Bo powiedzmy proces przebiega ok gdy temp gumy to 60-80 stopni, ale gdy będzie powyżej 90+ lub poniżej 50 to już się kłopoty zaczynają i wtedy można by zrobić jakieś ostrzeżenie w postaci alarmu itp.
  13. Krawi92

    Pirometr na AVR

    heh myślałem że to będzie trochę prostsze. No nic poczekam, może ktoś coś doradzi
  14. Krawi92

    Pirometr na AVR

    Zakres od 30 do 120.. Średnia temp to 60-80 stopni. A o co chodzi z optyka?
×
×
  • 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.