Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 31 lip 2025, o 12:16


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 27 ] 
    Autor Wiadomość
    PostNapisane: 25 mar 2013, o 12:30 
    Offline
    Nowy

    Dołączył(a): 25 mar 2013
    Posty: 20
    Pomógł: 0

    Witam, potrzebuje zmierzyć odległość za pomocą czujnika ultradźwiękowego HC-SR04, wiem, że żeby to zrobić trzeba pierw dać impuls o długości 10uS na pin Trig a następnie czujnik poda nam impuls na pinie Echo którego długość po podzieleniu przez 58 daje nam odległość w cm .(nota - http://www.arduino.com.pl/wp-content/up ... C-SR04.pdf)Problemem jest to, że nie wiem jak zmierzyć czas tego impulsu . Znalazłem nawet kod na Arduino, czy mógłby ktoś przetłumaczyć i wytłumaczyć mi go na C do użycia na AVR najlepiej Atmega 8/16 ale jeśli nie będzie to możliwe mogę użyć innego . Z góry dziękuje . Pozdrawiam .


    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Ps: z obsługą LCD sobie poradzę chodzi tylko o fragment zliczający czas impulsu.

    Kody umieszczamy w znacznikach syntax =c -- SunRiver



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 12:44 

    Pomógł: 0

    Zobacz to Zobacz tu https://github.com/arduino/Arduino/blob ... ng_pulse.c :)



    Góra
      
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 12:55 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    nie arduino , a na C by chciał zaraz machnę koda bo akurat mam parę HC-SR04 tylko poczekaj

    ------------------------ [ Dodano po: 50 minutach ]

    nio i masz ....

    mam nadzieję że jasno i klarownie opisałem ....

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Pobaw się ...

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 18:56 
    Offline
    Nowy

    Dołączył(a): 21 sty 2013
    Posty: 14
    Pomógł: 0

    aby uzupełnić podam swój:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 19:02 
    Offline
    Użytkownik

    Dołączył(a): 05 lut 2013
    Posty: 302
    Pomógł: 19

    Moge przy okazji pytanie? Jak dokladnosc tego HC-SR04, bo cena na znanymportaluaukcyjnym.pl calkiem ciekawa?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 19:09 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    może być do mini sumo i takich tam sie nadaje , max wydusiłem ok 230cm z dokładnością do ~1mm
    na małych dystansach jest bardzo dobry czyli tak do 50-60cm

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 19:09 
    Offline
    Nowy

    Dołączył(a): 21 sty 2013
    Posty: 14
    Pomógł: 0

    mi działa do około 3 i pól metra, pewnie da się wycisnąć trochę więcej. Zauważyłem też że pomiar bardzo zależy od kąta pod którym ustawiony jest przedmiot oraz ze względu na dosyć spory kąt pomiarowy dane mogą być niedokładne



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 19:14 
    Offline
    Użytkownik

    Dołączył(a): 05 lut 2013
    Posty: 302
    Pomógł: 19

    Calkiem calkiem jak za swoja cene. A jakbym chcial cos lepszego, to czego szukac?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 19:19 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    dokładnie tak jest , pololu są lepsze , ale cenowo tez wiadomo :)

    na dużych odległościach ważne i może nawet krytyczne są czasy oraz kompensacja "starego" echa , co uwzględniłem w kodzie
    dzięki czemu można bardzo dokładnie (jak na niego) mierzyć odległość -- chodzi o to by przy nowym pomiarze .. czasem stare echo nie wpadło bo zafałszuje wynik :) zresztą masz to w kodzie :)

    ------------------------ [ Dodano po: kilkunastu sekundach ]

    charsz http://www.pololu.com/catalog/product/1605

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 19:22 
    Offline
    Nowy

    Dołączył(a): 25 mar 2013
    Posty: 20
    Pomógł: 0

    Wielkie dzięki niedługo zamówię ten czujnik i przetestuje waszymi programami :) Jeszcze raz dziękuje za poświęcony mi czas . Pozdrawiam .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 19:29 
    Offline
    Nowy

    Dołączył(a): 21 sty 2013
    Posty: 14
    Pomógł: 0

    no faktycznie, może są lepsze, ale 11-13zł to nie to samo co 29,99 $ :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 19:34 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    ot własnie :)

    ale powiem ci swierku że jak odpowiednio zadbasz o kompensację echa , to chodzą tak samo praktycznie tyle , ze w paralaxie
    masz gotowy sygnał a tu musisz zadbać o wszystko

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 19:44 
    Offline
    Nowy

    Dołączył(a): 21 sty 2013
    Posty: 14
    Pomógł: 0

    jak tylko rozkminię Twój kod SunRiver to pewnie zmodyfikuję swój. Moje doświadczenia opieram na prymitywnych w porównaniu do Twoich rozwiązaniach, ale fajnie, bo za bardzo w necie ludzie nie bawią się tym pod C więc ciężko o dobre rozwiązanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 19:49 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    oj tak jakoś wyszło :)
    nic wielkiego

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 19:53 
    Offline
    Użytkownik

    Dołączył(a): 05 lut 2013
    Posty: 302
    Pomógł: 19

    Dzieki Sun!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 20:41 
    Offline
    Użytkownik

    Dołączył(a): 18 paź 2012
    Posty: 244
    Pomógł: 2

    Sun, ja obsługuje ten czujnik tak:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Uruchamiam czujnik co 50ms, i co jakiś czas wyrzuca mi błąd (tj. wyrzuca mi liczbę w ogóle wziętą z kosmosu lub zbyt małą), ja to skompensowałem tym ERR (pętla if...else), no ale nie wiem czy to wina czujnika (zbyt często go uruchamiam) czy wina kodu, jak uważasz?

    Druga sprawa to to, jak Ty kompensujesz echo? Przecież na wyjściu (ECHO) mamy tylko stan wysoki, a uaktywniamy 10uS na TRIG. Więc gdzie tu jest pola do manewrowania do kompensacji? :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 21:15 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    To proste .... czytam rzadziej i czekam ze startem nowego pomiaru aż mam ciszę na Echu :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 21:50 
    Offline
    Użytkownik

    Dołączył(a): 18 paź 2012
    Posty: 244
    Pomógł: 2

    aa no tak, najprostsze rozwiązania zawsze najlepsze :)

    Ogólnie mnie zdenerwowałeś :D Myślałem ze już nawet nawet ogarniam ten C, popatrzyłem się na Twój kod - i stwierdziłem że jeszcze dużo nauki przede mną :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 22:05 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    przepraszam .... obiecuję, że to było przedostatni raz :P

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2013, o 22:20 
    Offline
    Nowy

    Dołączył(a): 21 sty 2013
    Posty: 14
    Pomógł: 0

    kiclaw, miałem to samo, myślałem ze coś tam ogarniam a teraz zwątpiłem w siebie... :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 kwi 2013, o 17:31 
    Offline
    Nowy

    Dołączył(a): 25 mar 2013
    Posty: 20
    Pomógł: 0

    Pojawił się problem z twoim programem SunRiver mianowicie po skompilowaniu w bibliotece lcd z książki Mikrokontrolery AVR język c podstawy programowania w pliku lcd44780.h podkreśla mi 4 linijki na czerwono .
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Jedyne co zmieniłem to linijki :
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Zmieniłem na :
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    przebieg kompilacji:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Z góry dziękuje za pomoc . Pozdrawiam .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 kwi 2013, o 18:23 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    widzisz uzywałem sobie bezszczelnie innej biblioteki :(

    ale możesz spokojnie przepisać do nowego pliku

    jak widzisz kompilator wrzeszczy o braki ")" gdzieś ci musiał może wylecieć ??

    i kilka pomniejszych w main :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 paź 2013, o 10:17 
    Offline
    Użytkownik

    Dołączył(a): 12 paź 2012
    Posty: 207
    Lokalizacja: Rzeszów
    Pomógł: 16

    Witam,
    Mam takie pytanko do kodu Sun'a
    A mianowicie, że w kodzie nigdzie nie jest uważna wartość INSTR_PER_US. Więc wartość
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
    odległości nie uwzględnia w ogóle częstotliwości taktowana - działa tylko dla 1MHz. Mylę się czy mam rację ?:)
    pozdrawiam.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 lut 2014, o 16:37 
    Offline
    Użytkownik

    Dołączył(a): 25 sty 2014
    Posty: 185
    Lokalizacja: Działoszyn
    Zbananowany użytkownik

    Pomógł: 8

    SunRiver napisał(a):
    result = (timerCounter * 256 + TCNT0) / 58;


    mógbyś wytłumaczyc co w tej lini robsz dlaczego * 256 i pozniej jest dodawane tcnto ??



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 lut 2015, o 11:56 
    Offline
    Użytkownik

    Dołączył(a): 29 mar 2012
    Posty: 59
    Lokalizacja: Lubliniec
    Pomógł: 3

    karolek napisał(a):
    SunRiver napisał(a):
    result = (timerCounter * 256 + TCNT0) / 58;


    mógbyś wytłumaczyc co w tej lini robsz dlaczego * 256 i pozniej jest dodawane tcnto ??



    Sun też tego nie łapie jakbyś mógł wytłumaczyć o co chodzi. Może napiszę jak ja to rozumiem bo tutaj okaże się czy dobrze załapałem timery również no więc;)

    1. Procesor masz taktowany Fcpu = 16 Mhz
    2. Timer 0 ustawiasz następująco :
    - brak preskalera
    - wartość początkowa rejestru TCNT0 = 0
    - odblokowanie przerwania od przepełnienia
    3. No więc w momencie wykrycia zbocza narastającego na INT1 rozpoczynamy pomiar poprzez wyzerowanie rejestru TCNT0 oraz licznika programowego timerCounter. NO I TERAZ zasadnicze pytanie czy dobrze myślę, skoro procesor jest taktowany 16MHz -> preskaler 1 -> czyli sygnał wchodzący do timera ma częstotliwość 16Mhz co jest równe T = 1/F = 62,5 us (czas jednego impulsu) -> skoro timer działa w trybie zwykłym to zlicza do 255 co powoduje, że na wyjściu dostajemy sygnał z częstotliwością 16Mhz/256 lub 62,5[us]*256 czyli 62,5kHz lub 16ms
    4. Czyli programowy timer timerCounter zwiększa się o 1 co 16 ms tak?
    5. Jeśli tak to dlaczego taki wzór?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 mar 2015, o 19:10 
    Offline
    Nowy

    Dołączył(a): 21 lut 2015
    Posty: 2
    Pomógł: 0

    Witam.
    Wzorując się na tym temacie napisałem swoją wersję kodu do obsługi tego czujnika. Działa on w miarę dobrze na tym kodzie lecz czasami zdarzają się dosyć spore przekłamania i nie wiem z czego one mogą wynikać. Nie chcę zakładać nowego tematu na forum żeby nie spamować.


    Kod z Eclipsa:

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 mar 2016, o 23:26 
    Offline
    Nowy

    Dołączył(a): 29 lis 2015
    Posty: 15
    Lokalizacja: Lublin
    Pomógł: 0

    Jestem całkowicie początkującym adeptem programowania AVRów. Chcę wykonać drobny projekcik z zastosowaniem czujnika HC-SR04, więc zacząłem przeglądać forum, żeby zobaczyć, co mądrzejsi ode mnie na ten temat wymyślili i trafiłem na post kol. Miodek11. Co prawda jest sprzed roku, ale skoro nikt nie odpowiedział, postanowiłem to zrobić. W końcu kiedyś trzeba zacząć aktywnie uczestniczyć w forumowych dyskusjach. Wydaje mi się, że w kodzie kol. Miodek11 brakuje wyzerowania licznika TCNT1 na początku obsługi przerwania TIMER1_CAPT. Wobec tego pomiar rozpoczyna się przy przypadkowym stanie licznika. Jeśli podczas pomiaru nastąpi przepełnienie licznika, jako wynik otrzymamy całkiem przypadkową liczbę. Stąd te przekłamania.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 27 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO