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 7 cze 2025, o 16:01


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
    Autor Wiadomość
    PostNapisane: 28 maja 2017, o 20:38 
    Offline
    Nowy

    Dołączył(a): 23 lut 2013
    Posty: 17
    Pomógł: 0

    Witam wszystkich!

    Mam problem z przerwaniami PCINT. Używam ich do zliczania impulsów ( do wyświetlania obrotów wentylatora komputerowego). Problem że wynik który otrzymuje jest oo ok 20% inny niż rzeczywiste obroty. Tak samo obroty bardzo skaczą przy ok 1.5k skoki są rzędu 200+/- wciągu 1 sekundy, gdzie wentylator kręci się praktycznie tak samo +/- 10rpm.

    Prosiłbym o weryfikacje kodu i pomoc w znalezieniu błędu....

    Przerwania PCINT realizowalem na podstawie poradników z blogu Mirka.



    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.


    Skracałem czas kiedy przerwania są wyłączone po przez wyrzucenie wyswietlanie w serial monitorze, poza obszar kodu gdzie przerwania są zablokowane, ale nie na wiele się to zdało.

    Dziwne jest także coś takiego, że jak np nie podłacze nic pod pin PD3 (PCINT19) to i tak wyświetlają się jakieś wartości. Zatrzymanie wentylatora na PD2 skutkuje, że dopiero wtedy nie ma żadnych przerwań na tych pinach.

    Z góry bardzo dziękuje



    Ostatnio edytowano 29 maja 2017, o 03:35 przez thcmaniac, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 maja 2017, o 20:54 
    Offline
    Moderator zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 18 lip 2012
    Posty: 3229
    Lokalizacja: Kraków - obok FAB5 ATMEL'a
    Pomógł: 91

    topic7402.html

    _________________
    http://www.jaglarz.info



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 maja 2017, o 17:02 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2014
    Posty: 1036
    Lokalizacja: Trójmiasto
    Pomógł: 190

    A jak kolega podpina wyjście impulsatora do procka/arduino? Jak dobrze pamiętam impulsator (czyli żółty przewód z wentyla) jest wyjściem typu otwarty kolektor czyli do prawidłowego działania trzeba ten pin podciągnąć do zasilania rezystorkiem, i tu wewnętrzny rezystorek podciągający w uC może być za mały...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 maja 2017, o 18:42 
    Offline
    Nowy

    Dołączył(a): 23 lut 2013
    Posty: 17
    Pomógł: 0

    Dokładnie jest to otwarty kolektor. Podpinam ten przewód rezystorem podciągającym 10k do lini 5V ( testowałem różne rezystory od 1k do 50k i co się okazuje że obroty w zależności od rezystora mogą różnić się o ok 70%...)


    Zrobiłem taki test że: pomiar tylko dla 1 went i jak wywalę detekcje który pin zakomunikował przerwanie to obroty skaczą o ok 10% w górę (wygląda na to że kilka lini kodu/prostych obliczeń wprowadza znaczne zaburzenia). Po wywaleniu wykrywania pinu wprowadziłem detekcje zbocza opadającego/narastającego by sygnał nie był zliczany 2 razy (np: if(!(PIND & (1<<PD2))) ). Różnica rpm zależności od detekcji zbocza (narastające/opadające) sięga ok 50%... i nie potrafię zrozumieć dlaczego tak się dzieje, przecież liczba zboczy powinna być identyczna +/-2



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 maja 2017, o 20:35 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1978
    Lokalizacja: Lipsko
    Pomógł: 125

    Masz możliwość podejrzeć sygnał z wentylatora na oscyloskopie? Myślę, że to by wiele wyjaśniło...

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 maja 2017, o 20:39 
    Offline
    Nowy

    Dołączył(a): 23 lut 2013
    Posty: 17
    Pomógł: 0

    Możliwość mam postaram się to zrobić jutro dla np 3 went i 3 różnych napięć.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 30 maja 2017, o 05:45 
    Offline
    Użytkownik

    Dołączył(a): 05 lis 2013
    Posty: 353
    Lokalizacja: Kraków
    Pomógł: 6

    obroty sie mogą różnić ponieważ wyłączasz przerwanie i wtedy obrotów nie zlicza tak mi się wydaje. zacznij od wyrzucenia mniejszej ilości na serial i sprawdź czy wtedy obroty są prawidłowe czy nie.


    Wysłane z iPad za pomocą Tapatalk



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 30 maja 2017, o 18:31 
    Offline
    Nowy

    Dołączył(a): 23 lut 2013
    Posty: 17
    Pomógł: 0

    Zrobiłem dziś test tak wygląda przebieg z tacho wentylatora:
    Obrazek
    Przebieg widać jaki jest.. więc nie dziwne że są różne wartości dla zbocza narastającego i opadającego.

    a tak wygląda przebieg po wpięciu między masę a tacho kondesator 100nF:
    Obrazek

    Takie sama zależność występuje dla różnych wentylatorów (czy to went za 10zł czy za 80zł) i dla róznych napięć.

    Po dodaniu kondensatora obroty przypominają rzeczywistość, teraz zostało zminimalizować czas kiedy przerwania są wyłączone i prawdopodobnei w celu poprawienia dokłądności nie będe zliczał impulsów ale obliczał czas między nimi.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 30 maja 2017, o 18:43 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1978
    Lokalizacja: Lipsko
    Pomógł: 125

    Przerzutnik shmitta powinien sporo poprawić. Wstaw do tesu bramkę, np. z CD4093 ( będziesz miał zanegowany sygnał) i zobacz czy jest poprawa.

    ------------------------ [ Dodano po: 26 minutach ]

    O, teraz dopiero zauważyłem, że napięcie jest w granicach 300mV. Warto by było go podciągnąć jakimś tranzystorkiem i dopiero badać to może nawet shmitt by nie był potrzebny, bo piny uC też mają lekką histerezę.

    _________________
    http://www.sylwekkuna.com



    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: 9 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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


    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:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO