Mnożnik częstotliwości sygnału prądowego

Tutaj mozesz poruszać tematy ogólne powiązane z elektroniką, np. dyskusje na temat podzespołów, układów, zasad ich działania. Czyli można pisać o wszystkim czego nie da się przyporządkować do innych działów.
ODPOWIEDZ
najders
-
Posty: 4
Rejestracja: 08 lis 2014, 16:48
Lokalizacja: Łódź

Mnożnik częstotliwości sygnału prądowego

Post autor: najders » 08 lis 2014, 16:55

Witam, potrzebuje stworzyć mnożnik częstotliwości prądowej sygnału z czujnika halla, który pod napięciem 14 V generuje impulsy prądowe o wartościach 7 mA i 14mA , impulsator to koło z wieńcem o 12 wypustach, potrzebuje przemnożyć częstotliwość dokładnie o 1,12 czyli jeśli czujnik poda 1000 impulsów to układ musi je przetworzyć na 1120, da się coś takiego stworzyć małym kosztem?

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 10 lis 2014, 20:05

Najprościej będzie dołożyć przekładnię albo wymienić 'wieniec' na taki mający 13 lub 14 wypustów.

Jeśli ma to być realizowane elektronicznie, to musisz dokładniej określić czego potrzebujesz!
- Jeśli mają to być impulsy idące na licznik impulsów, to wystarczy liczyć te impulsy i co 8 impulsów dołożyć jeden ekstra. W ten sposób pomnożysz wynik przez 1.125, myślę że to dobry wynik. Alternatywa to co 9 impulsów (mnożnik 1.11111) albo (wersja trudniejsza) kolejno ekstra impuls co 8, 8, 9 impulsów. Wtedy wyjdzie mnożnik dokładnie 1.12.
- Jeśli impulsy idą na częstościomierz, prędkościomierz albo cokolwiek reagującego na czas między kolejnymi impulsami, już trzeba pomyśleć nad układem typu PLL albo dwa przetworniki częstotliwość -> napięcie i napięcie -> częstotliwość. Jest to rozwiązanie bardziej skomplikowane, trudniejsze do zestrojenia i mniej dokładne, ale gwarantuje że prędkościomierz/obrotomierz nie zacznie wariować.

Awatar użytkownika
joon
Użytkownik
Posty: 2076
Rejestracja: 30 cze 2007, 22:56
Lokalizacja: Kraków, Przemyśl, Warszawa
Kontakt:

Post autor: joon » 10 lis 2014, 21:26

Albo urządzenie oparte na uC- tak rozrysowałem na papierze algorytm i nie widzę większych trudności z napisaniem odpowiedniego softu ;)

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 10 lis 2014, 22:09

uC będzie mały i tani, ale nie będzie prosty w realizacji. To już kwestia gust, kto co lubi.

najders
-
Posty: 4
Rejestracja: 08 lis 2014, 16:48
Lokalizacja: Łódź

Post autor: najders » 15 lis 2014, 16:31

urządzenie będzie służyło do oszukania sterownika skrzyni, maksymalna częstotliwość to ok 500Hz, układ musi działać od 0 do 500 Hz, jeden obrót kola to 12 impulsów czyli 12Hz, to trzeba przemnożyć przez 1.12 i wynik podać na wejście sterownika skrzyni.

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 16 lis 2014, 12:38

A więc potrzebujesz prostą i względnie szybką (czas reakcji około 1s) pętlę PLL. Zgadzam się z joonem, jedyna słusznoa droga t uC. Niestety do napisania programu potrzeba trochę doświadczenia i czasu.

najders
-
Posty: 4
Rejestracja: 08 lis 2014, 16:48
Lokalizacja: Łódź

Post autor: najders » 17 lis 2014, 18:23

w załączniku dodałem schemat urządzenia, które zaprojektował znajomy, ale w tej chwili coś się w nim popsuło i konwerter wywołuje błąd "za wysokiego sygnału" w sterowniku automatycznej skrzyni, odłączenie go i przerwanie całkowicie wiązki problem eliminuje, więc ten układ zaczął wysyłać jakieś niepotrzebne impulsy na postoju (w ruchu błędu nie ma). Mikrokontroler zastosowany w tym układzie to atmega8, wyprowadzenia ze schematu do procesora są odpowiednio opisane. Kod programu wygląda tak:

Kod: Zaznacz cały

$regfile = "m8def.dat"
$crystal = 16000000
$baud = 9600

 $hwstack = 32                                              ' default use 32 for the hardware stack

$swstack = 10                                               ' default use 10 for the SW stack

$framesize = 40



Config Timer1 = Timer , Prescale = 256 , Noise Cancel = 1 , Clear Timer = 1
Config Aci = On , Compare = Off , Trigger = Rising

Acsr = Acsr And &B01111111                                  'włączenie timer1, bo Bascom sobie z tym nie bardzo radzi
Config Portb.5 = Output
Config Portb.1 = Output
Config Portb.0 = Output




Dim Okresin As Long                                         'zmienna wejściowa z timera1
Dim Okresout As Word                                        ' zmienna wyjściowa sterująca
Dim Out1 As Byte                                            'zmienna sterująca loscią powtórzeń timer0
Dim Out0 As Byte                                            'zmienna wpisywna do timera na koniec
Dim Outpom As Word
Dim A As Byte
Dim C As Word
Dim D As Long
Dim E As Byte
Dim Zadlugo As Byte

Dim Z As Bit
Dim Y As Bit

Dim Okresinh As Byte
Dim Okresinl As Byte
Enable Interrupts
Enable Timer1
      Enable Aci
      On Aci Zapal
      On Ovf1 Wyzeruj

Okresin = 0
C = 0
E = 0

Start Timer1

                                                        'end program
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx




Zapal:
Okresin = Timer1

Timer1 = 0
Reset Watchdog
Zadlugo = 0
Return

Wyzeruj:
E = 1
Return
może Wam uda się doszukać błędu?
Załączniki
schemat.jpg
schemat.jpg (37.43 KiB) Przejrzano 6925 razy

najders
-
Posty: 4
Rejestracja: 08 lis 2014, 16:48
Lokalizacja: Łódź

Post autor: najders » 27 sty 2015, 12:21

Jeśli ktoś się na tym zna to mogę zapłacić za stworzenie programu.

ODPOWIEDZ