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

Przesył informacji pwm-adc

werewolf15 30 Cze 2012 18:42 1235 16
  • #1 30 Cze 2012 18:42
    werewolf15
    Poziom 14  

    Witam!
    Wpadłem na pomysł zrobienia czegoś w stylu przesyłu informacji z pwm do adc.
    Chodzi o to żę pwm steruję prąd (z pinu OC1A) natomiast adc (na pinie ADC0)odbiera podany prąd i zamienia na wartość cyfrową .Np: pwm ustawiam na 1023 czyli 5v. Adc (jako woltomierz) ustawiony że napięcie zasilające procka jest napięciem odniesienia.Komenda ta w programie analizuje że

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod
    .W ten sposób możemy wysyłać i odbierać do 1023 "komend", które procek przetwoży i wykona odpowiednio jakąś funkcję.

    Ułożyłem taki program testowy:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Niewiem tylko dla czego jak wciskam micro switch od zmniejszania/zwiększania pwm na lcd pokazuje tylko wartości:13,14,36,997,998 olbo 999.
    Proszę o podpowiedź gdzie robię źle

    0 16
  • #2 30 Cze 2012 19:24
    drzasiek
    Specjalista - Mikrokontrolery

    Nie znam bascomowego, ale po pierwsze to ADC nie odbiera żadnego prądu.
    A po drugie jak masz zamiar odebrać 1023 komendy? (mniejsza z tym, że jest 1024 wartości a nie 1023)
    A szum? A błędy kwantyzacji? A tętnienia napięcie z PWM? Nie ma szans na taką rozdzielczość.

    0
  • #3 30 Cze 2012 20:07
    werewolf15
    Poziom 14  

    No może faktycznie przesadziłem z tą liczbą ale układ działa(wykrywa poszczególne stany i pokazuje liczby) tylko gdzieś jest niewielka wada bo nie działa dokładnie i proszę o pomoc w jej odkryciu.A tak po za tym to przecież doświadczalnie można określić liczbę komend tak jak ja to próbuję.Nawet jak by było ich 50 to i tak dobrze :)

    0
  • #4 30 Cze 2012 20:20
    drzasiek
    Specjalista - Mikrokontrolery

    Na krótką odległość i w celach czysto akademickich, czemu nie.
    Praktycznego zastosowania nie widzę.
    Sygnały analogowe zamienia się na cyfrowe i przesyła cyfrowo, a Ty chcesz robić na odwrót :)

    0
  • #5 30 Cze 2012 20:31
    arktik1
    Poziom 27  

    Poza tym ustaw sobie PWM np na 30 i zmierz napięcie , potem przestaw na 255 i tez zmierz.

    Cytat:
    pwm steruję prąd (z pinu OC1A) natomiast adc (na pinie ADC0)odbiera podany prąd i zamienia na wartość cyfrową .Np: pwm ustawiam na 1023 czyli 5v. Adc (jako woltomierz)

    Wiesz jaka jest różnica między Prądem a Napięciem?.

    0
  • #6 30 Cze 2012 21:06
    gaskoin
    Poziom 38  

    drzasiek napisał:
    Sygnały analogowe zamienia się na cyfrowe i przesyła cyfrowo, a Ty chcesz robić na odwrót :)


    Nie we wszystkich przypadkach, może kolega buduje np radar :)

    0
  • #7 30 Cze 2012 21:16
    drzasiek
    Specjalista - Mikrokontrolery

    arktik1 napisał:

    Wiesz jaka jest różnica między Prądem a Napięciem?.

    Ale to akurat dobrze napisał. PWM steruje prądem. (wartość średnia)
    Natomiast pomylił, twierdząc, że ADC "odbiera" mu prąd.

    0
  • #8 30 Cze 2012 21:20
    werewolf15
    Poziom 14  

    Przepraszam.Faktycznie chodzi o napięcie (rośnie i maleje) .

    Do swojego programu dodałem debounce - może to coś da.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Zmieniłem również wartość prescalera z 1024 na 1.
    Teraz działa w taki sposób że na lcd pokazuje albo 1023 albo 13
    Dodam że ten program jest przeróbką woltomierza i działał na 100%

    0
  • #9 30 Cze 2012 22:21
    arktik1
    Poziom 27  

    Cytat:

    Dodam że ten program jest przeróbką woltomierza i działał na 100%

    Woltomierzem, takim zwykłym ,mierzysz napięcie liniowe.
    Inaczej ma się sprawa, gdy chodzi o PWM.
    Jeśli chcesz zmierzyć PWM przetwornikiem, analogowo-cyfrowym, to musisz mu podać najlepiej napięcie liniowe.
    Dołóż do swojego układu, przy wejściu ADC, jakiś kondensator np 1uF i zwykły LED lub opornik np.1 Kohm.
    Zobaczysz że sytuacja się zmieni.
    Poza tym jeśli to ma być przesył danych, to trzeba wziąć pod uwagę oporność przewodu.

    0
  • #10 30 Cze 2012 22:24
    drzasiek
    Specjalista - Mikrokontrolery
  • #11 30 Cze 2012 23:09
    30402
    Użytkownik usunął konto  
  • #12 30 Cze 2012 23:28
    arktik1
    Poziom 27  

    Cytat:
    A to co probujesz zrobić to już się stosuje ale w cywilizowany sposób

    A może on nie chce w cywilizowany. :D

    0
  • #13 30 Cze 2012 23:48
    werewolf15
    Poziom 14  

    Ale do tego żeby przesyłać przez uart trzeba znać jakieś dzikie komendy typu

    Open "comd.0:19200,8,n,1" For Input As #1
    Open "comd.1:19200,8,n,1" For Output As #2
    Print #channel , "at+cpin={034}xxxx{034}";chr(13);

    jakieś bufory,$baud = 115200

    a ja dopiero się uczę i takowych funkcji nieznam.

    0
  • #14 30 Cze 2012 23:52
    gaskoin
    Poziom 38  

    werewolf15 napisał:
    a ja dopiero się uczę i takowych funkcji nieznam.


    Skoro się uczysz to się ich naucz. To, że jesteś początkujący nie zwalnia Cię z myślenia, ani nie daje przyzwolenia do robienia rzeczy, które są bez sensu. Złe nawyki bardzo ciężko wykorzenić. UART to jest najprostsze z możliwych peryferiów za wyjątkiem IO...

    0
  • #15 01 Lip 2012 10:39
    30402
    Użytkownik usunął konto  
  • #16 01 Lip 2012 11:47
    arktik1
    Poziom 27  

    Cytat:
    a ja dopiero się uczę i takowych funkcji nieznam.

    To poczytaj HELPa BASCOMA.
    Jeśli na prawdę chodziło ci o komunikację między Uc, to pomysł faktycznie jest trudny do wykonania.
    Poza tym, jeśli nawet by ci się udało to nie prześlesz więcej niż 255 komend.
    To bez sensu, komendy muszą być z góry ustalone, ponieważ musiały by być przypisane do wartości odczytywanych przez ADC.
    UART sprzętowy doskonale się do tego nadaje.
    I do tego jeszcze, będzie mniej pisania.

    Dodano po 2 [minuty]:

    https://www.elektroda.pl/rtvforum/topic1913555-0.html

    0
  • #17 01 Lip 2012 13:52
    werewolf15
    Poziom 14  

    No dobra.Kończę z adc i biorę się za naukę obsługi uart. Dzięki wszystkim za pomoc! Zamykam posta.

    0