Elektroda.pl
Elektroda.pl
X
CControls
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Licznik Geigera-Mullera zliczanie impulsów na PIC16F

OnlyTrueAnfoman 25 Mar 2011 01:58 8175 44
  • #1 25 Mar 2011 01:58
    OnlyTrueAnfoman
    Poziom 10  

    Witam,
    Chcę zbudować licznik Geigera-Mullera w oparciu o lampę SBM-20. Lampa jest tak skalibrowana, że liczba zliczeń w przedziale 40 sekund odpowiada energii uSv/h. Chciałbym też wykorzystać w tym projekcie lampy Nixie.
    Szukałem na google odpowiedniego projektu. Szukając natrafiłem na coś takiego: Geiger digital meter adapter. niestety nie znalazłem schematu tego układu.
    Wiem jak podłączyć do PIC lampy Nixie, nie wiem tylko jak zrobić część zliczającą.
    Pozdrawiam]Link[/url]

    0 29
  • CControls
  • #2 25 Mar 2011 09:12
    dondu
    Moderator Mikrokontrolery Projektowanie

    Witaj,
    Skoro wiesz jak podłączyć, a zasada działania polega tylko na zliczaniu impulsów (jak rozumie w określonym czasie), to narysuj schemat, a oprogramowanie będziesz z naszą pomocą w stanie napisać.

    0
  • Pomocny post
    #3 25 Mar 2011 09:37
    Urgon
    Poziom 36  

    AVE...

    Jakiego PICa konkretnie chcesz użyć?

    Zasada pomiaru jest dość prosta: najpierw ustawia się któryś z timerów, by odmierzał 40 sekund i po odmierzeniu wywołał przerwanie. Potem tworzy się pętlę, która w nieskończoność sprawdza stan wybranego przez Ciebie pinu. Gdy jest tam logiczna jedynka, to dodajesz 1 do zmiennej. Gdy timer skończy zliczać czas, przerwanie zakończy pętlę, a Ty będziesz mógł odczytać wartość zmiennej.

    Jeśli posiadasz moduł Capture/Compare/PWM, to proces można zautomatyzować. Moduł ten będzie zliczać impulsy ze swojego wejścia dopóki licznik timera nie przepełni się. Czas znów ustala się zmieniając ustawienia preskalera timera i jego stan początkowy. Gdy timer zliczy swoje, to odczytujesz, ile impulsów zliczył moduł. Dzięki użyciu tego modułu program staje się o tyle prostszy, że nie blokuje mikrokontrolera w pętli, więc w tym samym czasie możesz przeliczać i wyświetlać wartość poprzedniego pomiaru...

    0
  • CControls
  • #4 25 Mar 2011 09:38
    OnlyTrueAnfoman
    Poziom 10  

    dondu napisał:
    Witaj,
    Skoro wiesz jak podłączyć

    No właśnie nie do końca mnie zrozumiałeś.
    Wiem jak podłączyć lampy Nixie, ale nie mam pojęcia jak zrealizować część zliczającą impulsy, tzn. jak podlączyć PIC'a do licznika.
    Pozdrawiam

    0
  • #5 25 Mar 2011 09:45
    dondu
    Moderator Mikrokontrolery Projektowanie

    OnlyTrueAnfoman napisał:
    Wiem jak podłączyć do PIC lampy Nixie, nie wiem tylko jak zrobić część zliczającą.

    Wybacz, ale to zdanie jest jednoznaczne.

    Jeżeli nie wiesz jaki PIC wybrać to musisz dokładnie opisać sygnał wejściowy pochodzący z lampy. Na tej podstawie możemy dobrać odpowiedni PIC.
    No chyba, że od razu chcesz jakiegoś olbrzyma?

    0
  • #6 25 Mar 2011 12:00
    OnlyTrueAnfoman
    Poziom 10  

    1.

    dondu napisał:
    OnlyTrueAnfoman napisał:
    Wiem jak podłączyć do PIC lampy Nixie, nie wiem tylko jak zrobić część zliczającą.

    Wybacz, ale to zdanie jest jednoznaczne.


    No właśnie, nie wiem jak podać sygnał z miernika do PIC'a (który pin, jakie elementy dyskretne). Znalazłem takie rozwiązanie: Geiger Counter part 2. I coś takiego właśnie chciałbym zrobić z tym, że na PIC'u

    2.
    dondu napisał:
    Jeżeli nie wiesz jaki PIC wybrać to musisz dokładnie opisać sygnał wejściowy pochodzący z lampy. Na tej podstawie możemy dobrać odpowiedni PIC.
    No chyba, że od razu chcesz jakiegoś olbrzyma?


    W większości układów, na które natrafiłem wykorzystywano PIC16F84A. Myślę więc, że nie ma sensu wywarzać otwarte drzwi.
    Do wyświetlacza Nixie (4 lampy) będę potrzebować 8 pinów (4 do sterowania anodami, 4 do sterownika 74141).

    BTW: Mam wrażenie, że rozwiązanie to może być zbliżone do tych wykorzystanych w tym mierniku częśtotliwości. W przypadku miernika Geigera-Mullera będę miał do czynienai z częśtotliwościami od 0,35Hz do 3,6kHz. Zastanawiam się, które rozwiązanie było by prostrze:
    1. zliczanie w przedziale 40s i podanie wyniku w zliczeniach/s oraz uSv;
    2. w Hz (zliczeń/s) a następnie przeliczać go na jednostkę uSv (mnożąc Hz*40).
    To drugie rozwiązanie wydaje mi się na tyle lepsze, że wynik byłby "od razu", nie trzeba było by czekać 40s.
    Z góry przepraszam za moje niezorientowanie i może banalne pytania.

    0
  • Pomocny post
    #7 25 Mar 2011 12:31
    dondu
    Moderator Mikrokontrolery Projektowanie

    No to po kolei:


    OnlyTrueAnfoman napisał:
    No właśnie, nie wiem jak podać sygnał z miernika do PIC'a (który pin, jakie elementy dyskretne).

    Aby opracować układ trzeba znać charakterystykę sygnałów wyjściowych z lampy. Masz jej dokumentację?
    Jeżeli nie masz to musisz ją "rozpracować".


    OnlyTrueAnfoman napisał:
    Znalazłem takie rozwiązanie: Geiger Counter part 2. I coś takiego właśnie chciałbym zrobić z tym, że na PIC'u

    OK, ale schematu tam nie znalazłem - a Ty?


    OnlyTrueAnfoman napisał:
    W większości układów, na które natrafiłem wykorzystywano PIC16F84A. Myślę więc, że nie ma sensu wywarzać otwarte drzwi.

    Jeżeli wystarczy to oczywiście, że tak.
    A co do wywarzania drzwi, jeżeli inni będą rzucać się pod tramwaj, Ty także to zrobisz?
    W sieci jest wiele bezsensownie nieoptymalnych projektów.


    OnlyTrueAnfoman napisał:
    Do wyświetlacza Nixie (4 lampy) będę potrzebować 8 pinów (4 do sterowania anodami, 4 do sterownika 74141).

    Narysuj poglądowy (blokowy) schemat jak to widzisz.


    OnlyTrueAnfoman napisał:
    BTW: Mam wrażenie, że rozwiązanie to może być zbliżone do tych wykorzystanych w tym mierniku częśtotliwości. W przypadku miernika Geigera-Mullera będę miał do czynienai z częśtotliwościami od 0,35Hz do 3,6kHz. Zastanawiam się, które rozwiązanie było by prostrze:
    ....

    To wszystko zależy od procesora jaki wybierzesz i dostępnych w nim peryferii oraz dokładności jaką chcesz osiągnąć.

    Skup się na razie na pierwszych problemach ze schematem, a dopiero później na części programowej, bo tą na pewno da się zrobić prosto i dokładnie.

    Dodano po 4 [minuty]:

    a na początek to:

    Licznik Geigera-Mullera zliczanie impulsów na PIC16F

    i schemat w Eagle: http://dl.dropbox.com/u/3572198/Geiger%20Counter%20Eagle.zip

    0
  • #8 25 Mar 2011 12:53
    OnlyTrueAnfoman
    Poziom 10  

    dondu napisał:
    OK, ale schematu tam nie znalazłem - a Ty?


    Ja znalazłem, nie wiem czy wystarczający. ale jest.

    dondu napisał:


    Właśnie na tym schemacie opracowałem swój licznik (przerobiłem pcb na jednostronną). Niestety w projekcie tym autor nic nie mówi o charakterystyce sygnału na wyjsciu *int, a ja czekam na paczkę z lampą i póki co nie mam jak sprawdzić tego samemu.

    0
  • #9 25 Mar 2011 13:03
    dondu
    Moderator Mikrokontrolery Projektowanie

    Coś kombinujesz: Nie pisałeś wcześniej, że masz schemat i opracowaną płytkę.
    Wręcz przeciwnie, że nie masz schematu. W ten sposób komplikujesz tylko dochodzenie do rozwiązania.
    Albo pisz konkrety albo szukaj kogoś innego kto będzie się z Tobą męczył.

    OnlyTrueAnfoman napisał:
    Właśnie na tym schemacie opracowałem swój licznik (przerobiłem pcb na jednostronną). Niestety w projekcie tym autor nic nie mówi o charakterystyce sygnału na wyjsciu *int, a ja czekam na paczkę z lampą i póki co nie mam jak sprawdzić tego samemu.

    OK, no to już coś.
    Po lewej stronie widać, że zasilanie może być z przedziału 4 do 9V.
    Napięcie na emiterze tranzystora Q4 zależy właśnie od źródła zasilania.

    Stąd pierwsze konkretne pytanie: jakim napięciem chcesz zasilać ten układ?

    Dodatkowo:
    - czy piezo buzzer także realizujesz?
    - czy twój układ jest dokładnie taki sam jak na schemacie?

    0
  • #10 25 Mar 2011 13:05
    OnlyTrueAnfoman
    Poziom 10  

    dondu napisał:
    Coś kombinujesz: Nie pisałeś wcześniej, że masz schemat i opracowaną płytkę.
    Wręcz przeciwnie, że nie masz schematu. W ten sposób komplikujesz tylko dochodzenie do rozwiązania.
    Albo pisz konkrety albo szukaj kogoś innego kto będzie się z Tobą męczył.


    Mam opracowany sam detektor, nie mam części zliczającej.

    Co do twoich pytań. Chcę go zasilacz 4*1,5V akumulatorki.
    Jest dokładnie taki sam.
    Chce buzzer zostawić.

    PS. Poniżej mój projekt pcb, czerwona ścieżka (top) to zworka.

    0
  • #11 25 Mar 2011 13:14
    dondu
    Moderator Mikrokontrolery Projektowanie

    No to jeżeli jest tak jak piszesz, a procesor będziesz zasilał napięciem np.5V to jedynie pomiędzy wejście procesora a wyjście *INT dasz w szereg (na wszelki wypadek) rezystor np. 470R i powinno śmigać bez problemu.

    0
  • #12 25 Mar 2011 13:25
    OnlyTrueAnfoman
    Poziom 10  

    Aha, czyli jak dobrze rozumiem:
    1. puszczam sygnał przez rezystor na jeden pin
    2. podpinam do PIC'a (osc1, osc2) rezonator.
    3. ewentualne switche do zmiany parametrów.

    Plus oczywiście część związana z wyświetlaczem, którą opracowałem na podstawie tego zegarka Nixie.

    To teraz posiedzę nad tym kierując się Twoimi uwagami zrobię schemat. Mam nadzieję, że dobrze to zrozumiałem.

    0
  • Pomocny post
    #13 25 Mar 2011 13:31
    dondu
    Moderator Mikrokontrolery Projektowanie

    1. tak
    2. namawiam Cię, abyś narysował schemat PICa bo czasami brak kondensatora lub nie podłączony jakiś pin będzie skutkował problemami.

    Jako przykład takiego minimalnego schematu:

    Licznik Geigera-Mullera zliczanie impulsów na PIC16F

    0
  • #14 25 Mar 2011 15:32
    OnlyTrueAnfoman
    Poziom 10  

    Jeszcze raz bardzo dziękuję za cierpliwość i chęć pomocy,
    Pozdrawiam

    Dodano po 1 [godziny] 57 [minuty]:

    dondu napisał:
    1. tak
    2. namawiam Cię, abyś narysował schemat PICa bo czasami brak kondensatora lub nie podłączony jakiś pin będzie skutkował problemami.


    Witam ponownie, wykorzystując twoje podpowiedzi wysmarowałem taki schemacik:

    Licznik Geigera-Mullera zliczanie impulsów na PIC16F

    Wysłałem nową wersję w *.jpg

    0
  • Pomocny post
    #15 25 Mar 2011 16:24
    dondu
    Moderator Mikrokontrolery Projektowanie

    Będę wieczorem około 23:00
    Na Twoim wykresie są liczne błędy konwersji do PNG (tak przypuszczam) - zobacz po lewej i prawej stronie procesora.

    0
  • #16 25 Mar 2011 23:15
    dondu
    Moderator Mikrokontrolery Projektowanie

    ok, jesteś aktualnie przy kompie, czy nie?

    0
  • #17 25 Mar 2011 23:28
    OnlyTrueAnfoman
    Poziom 10  

    Owszem juz jestem

    0
  • #18 25 Mar 2011 23:36
    dondu
    Moderator Mikrokontrolery Projektowanie

    Będę pisał na raty:

    1. N1,N2,N3 i N4 to wyświetlacze podłączone do IC2?
    2. Gdzie jest SBM-20 i układ z wyjściem *INT ?

    0
  • #19 25 Mar 2011 23:41
    OnlyTrueAnfoman
    Poziom 10  

    Witam,
    Pozwoliłem sobie traktować część detekcyjną odzielnie od części zliczającej, dlatego też ten schemat odnosi się jedynie do części zliczającej.
    N1, N2, N3, N4 to są lampy nixie są one podpięte do IC2, numery od 0 do 9 w IC2 odpowiadają numerom w lampach Nixie (pin 16 = 0, pin 15 = 1, etc).
    PS. Tam jest błąd na PWM zasilanie ma być +6 a nie +9V.

    0
  • #20 25 Mar 2011 23:50
    dondu
    Moderator Mikrokontrolery Projektowanie

    1. OK, w takim układzie tę część dot lamp NIXIE musisz poprosić kogoś innego o ocenę bo ja nie mam doświadczenia a tam jest 130V :)
    To co w tym zakresie od razu rzuca mi się w oczy, to brak co najmniej rezystorów na bazach tranzystorów przy lampach. Na pewno nie mogą być tak podłączone do procesora.


    2. Jeśli chodzi o przyciski to rozumie, że chcesz eliminować drgania sprzętowo włączając programowo Pull-up?

    3. W jakim celu zwarłeś R2 i R3?

    Dodano po 3 [minuty]:

    4. Czy jesteś pewien, że zakres 0,35Hz do 3,6kHz jest właściwy?
    Od tego zależy jak zrealizujemy pomiar tej częstotliwości.

    Witaj ... sorki nie zauważyłem :)

    0
  • #21 25 Mar 2011 23:59
    OnlyTrueAnfoman
    Poziom 10  

    dondu napisał:
    1. OK, w takim układzie tę część dot lamp NIXIE musisz poprosić kogoś innego o ocenę bo ja nie mam doświadczenia a tam jest 130V :)
    To co w tym zakresie od razu rzuca mi się w oczy, to brak co najmniej rezystorów na bazach tranzystorów przy lampach. Na pewno nie mogą być tak podłączone do procesora.


    Tak masz rację zapomniałem o rezystorach 33kOhm. Co do reszty sprawdzone jest, raz już robiłem taki wyświetlacz.


    dondu napisał:
    2. Jeśli chodzi o przyciski to rozumie, że chcesz eliminować drgania sprzętowo włączając programowo Pull-up?


    Nie wiem o co chodzi z tym Pull-up, pomysł mój jest taki, że jeden przycisk resetuje pomiar, drugi przełącza skale z uSv na zliczeń/s.

    dondu napisał:
    3. W jakim celu zwarłeś R2 i R3?


    W sumie nie wiem, widziałem takie rozwiązanie w kilku miernikach częstotliwości.
    Dodano po 3 [minuty]:

    4. Czy jesteś pewien, że zakres 0,35Hz do 3,6kHz jest właściwy?
    Od tego zależy jak zrealizujemy pomiar tej częstotliwości.[/quote]

    0
  • Pomocny post
    #22 26 Mar 2011 00:00
    Urgon
    Poziom 36  

    AVE...

    Na bazach tranzystorów sterujących powinny być rezystory, 10-33k starczą z nawiązką. Poza tym ta część jest dobra...
    Zakres częstotliwości zgadza się dla tych tub Geigera. Można go odrobinę poszerzyć na wszelki wypadek: 0,3Hz-4kHz...

    0
  • #23 26 Mar 2011 00:07
    dondu
    Moderator Mikrokontrolery Projektowanie

    Na razie przyjmiemy pomiar według zaproponowanego przez Urgon, a gdy otrzymasz tubę zobaczysz co będzie w dokumentacji.

    NIXIE - skoro masz praktykę to OK.

    Pull-up to nic innego jak rezystor podciągający pin do VCC i można go włączyć programowo w procesorze. Ale tutaj mój błąd bo ty ich nie potrzebujesz, gdyż przyciski łączysz do VDD.

    RA2 i RA3 - wystarczy jeden z nich - wybierz który.

    0
  • #24 26 Mar 2011 00:10
    OnlyTrueAnfoman
    Poziom 10  

    Czyli można uznać, że po dodaniu tych rezystorów układ jest gotowy do ekperymentalnego montażu, a w dalszej perspektywie programowania?

    0
  • Pomocny post
    #25 26 Mar 2011 00:16
    dondu
    Moderator Mikrokontrolery Projektowanie

    Uważam, że tak, pod warunkeim że jesteś pewien prawidłowego podłączenia NIXIE :)

    0
  • #26 26 Mar 2011 00:17
    OnlyTrueAnfoman
    Poziom 10  

    OK. Dziekuje i życze miłego wieczoru.

    0
  • #27 26 Mar 2011 00:18
    dondu
    Moderator Mikrokontrolery Projektowanie

    Jeszcze drobna uwaga, jesteś świadomy tego, że PICe mają rozkazy cztero taktowe więc MIPS będzie = kwarc/4 ?

    Od strony programowej zadałeś na początku pytanie , jaką metodę pomiarową wybrać.
    Niestety w tym PICu nie masz modułu umożliwiającego pracę w Capture Mode, czyli pomiaru długości impulsów.

    Jedyne co masz to 8-bitowy Timer0:

    Licznik Geigera-Mullera zliczanie impulsów na PIC16F

    Ponieważ masz multipleksowany wyświetlacz, trzeba będzie także podjąć decyzję, czym będziesz odmierzał czas do wyświetlenia kolejnej cyfry.

    Ale zanim zadecydujemy jak te dwa zadania pogodzić, chciałbym abyś odpowiedział na pytanie:
    Czy zależy Ci na oszczędzaniu akumulatorów przez procesor?
    Jeżeli tak, to inaczej będziemy pisać kod, niż gdyby Ci na tym nie zależało.

    Drugim tematem do decyzji będzie sama metoda pomiarowa, a właściwie czas zliczania impulsów z sondy, o czym także już pisałeś.
    I tutaj pytanie: Skąd się bierze owe 40sek?

    Jak sądzę problem tkwi w tym, iż producent sondy znając dokładność urządzenia zwiększa precyzję poprzez wydłużenie czasu pomiaru, co jest bardzo istotne przy dolnej częstotliwości impulsów z sondy czyli 0,3Hz. Innymi słowy skrócenie pomiaru tak jak proponujesz, może znacząco zmniejszyć jego dokładność.

    Ale ponieważ nie masz jeszcze sondy i dokumentacji to najwyżej dopracuje się to później.

    0
  • #28 26 Mar 2011 08:55
    Urgon
    Poziom 36  

    AVE...

    Pomiar przez 40s daje nominalną wartość promieniowania w mikrosiwertach na godzinę dla tej konkretnej lampy. Jeśli robi się pomiar co sekundę, to wynik trza pomnożyć przez 40, przy czym dla najmniejszych wartości będzie błąd, bo albo poda 0, albo 40uSv/h. Dlatego bym proponował zliczanie w odstępach pięciosekundowych...

    Sugerowałbym zmianę mikrokontrolera na przykładowo PIC16F1936, jako że posiada dość rozbudowane moduły Capture/Compare. Dokładniej rzecz biorąc posiada trzy o rozszerzonej funkcjonalności i dwa normalne. Przy czym jeszcze kosztuje o połowę mniej niż PIC16F84...

    0
  • #29 26 Mar 2011 09:18
    dondu
    Moderator Mikrokontrolery Projektowanie

    Urgon napisał:
    Pomiar przez 40s daje nominalną wartość promieniowania w mikrosiwertach na godzinę dla tej konkretnej lampy.

    Jeśli robi się pomiar co sekundę, to wynik trza pomnożyć przez 40, przy czym dla najmniejszych wartości będzie błąd, bo albo poda 0, albo 40uSv/h. Dlatego bym proponował zliczanie w odstępach pięciosekundowych...

    Jak sądzę miałeś już styczność z tą sondą. Czy masz do niej jakąś dokumentację?

    Pytam ponieważ gdybanie jakie są błędy pomiarowe przy krótkich czasach i wnioskowanie na tej podstawie czasu pomiaru, jest wróżeniem z fusów, ponieważ (jak sądzę) nie jest to sonda, która dostarcza powtarzalny równomierny sygnał o określonej częstotliwości, gdzie wystarczy dokładnie zmierzyć 1 okres by mieć dość dokładny pomiar.
    Sądzę raczej, że sygnał nie jest równomierny i dlatego wymagany jest pomiar w tak długim okresie.

    Wnioskuję to na podstawie dostępnych w sieci filmików z odgłosami generowanymi przez taki miernik, które są dość nierównomierne w czasie.
    Patrząc także na doniesienia telewizyjne z Japonii widać na nich, że sonda przystawiana jest do badanej osoby, na znacząco dłuższe okresy niż 5 sekund.

    Oczywiście nic nie stoi na przeszkodzie, by zrobić programowo tryby pracy na krótkich i długich czasach pomiaru, co zwiększy uniwersalność miernika pozostawiając mu możliwość pracy z największą dokładnością.

    Ale ponieważ moje rozważania są czysto teoretyczne i nie mam doświadczenia w tym zakresie, dlatego pytam o dokumentację.

    Urgon napisał:
    Sugerowałbym zmianę mikrokontrolera na przykładowo PIC16F1936,

    Próbowałem to zasugerować autorowi, ale jeżeli chce stosować PIC16F84A to także da radę. Twoja sugestia jest właściwa. A może także dobrać sobie PIC tutaj:
    http://www.microchip.com/productselector/MCUProductSelector.html

    0
  • #30 26 Mar 2011 09:31
    Urgon
    Poziom 36  

    AVE...

    Z tą sondą nie pracowałem. Dokumentacja ogranicza się zaś tylko do zakresu pomiaru. Sondy Geigera-Mullera zliczają pojedyncze cząstki beta i gamma w nie wpadające. Dlatego dźwięk jest nierównomierny i dlatego też stosuje się długie czasy pomiarowe dla małych dawek. Z powodu budowy i składu gazów wewnątrz (sonda jest formą gazowanej fotodiody) ten konkretny model zlicza w czterdzieści sekund równoważnik w mikrosiwertach na godzinę. Zmiany długości pomiaru wymagają tylko działań matematycznych. A dokładność maleje wraz ze skracaniem się czasu pomiaru...

    Moja sugestia to pomiar progresywny: naliczanie sekundowe i aktualizacja wyniku co sekundę, ale pamiętanie pomiarów z ostatnich czterdziestu sekund celem zwiększenia dokładności. Wrzucać wyniki do kolejki FILO i je sumować celem uzyskania dokładnego wyniku w uSv/h...
    Jeśli Anfomanowi zależałoby na energooszczędności układu, to wywalić by trzeba lampy Nixie, dać wyświetlacz LCD i użyć właśnie 16F1936 ze względu na funkcjonalność XLP (extreme low power)...

    0