logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.
REKLAMA
  • #1 5860889
    mgl
    Poziom 11  
    witam,
    jestem dosc swiezy w temacie;)
    potrzebuje oprogramowac Atmege8 w taki sposob, aby napiecie pobrane z fototranzystora przesylala do komputera po rs232. Dane bede odbierane przez program Labview. Przeczytalem duzo tematow i sklecilem taki program:

    
    $regfile = "m8def.dat" 
    $crystal = 8000000
    $baud = 9600 
    
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 2 , Databits = 8 ,Clockpol = 0 
    
    Dim Wart_ac As Word              'zmienna na wartość odczytaną
         					             'z przetwornika
    Dim V As Single                  'zmienna przechowująca obliczoną
         					             'wartość zmierzonego napięcia 
    
    
    Start Adc                        'uruchamia wbudowany przetwornik
    
    Do                              'początek pętli programu
     Wart_ac = Getadc(1)            'odczytanie wartości z wejścia
          					           'ADC1 mikrokontrolera
     V = Wart_ac * 0.0049           'zamiana odczytanej wartości
         					            'z A/C na napięcie
     Print V
     Waitms 4500                    'opóźnienie 100 ms
    Loop                            'koniec pętli Do...Loop
    End                             'koniec programu


    1.Czy moglby ktos sprawdzic poprawnosc tego kodu?
    2.Czy potrzebuje linijki:
    Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 2 , Databits = 8 ,Clockpol = 0 
    ?
    3.Czy musze zmienias ustawienia fusebitow?
    4.Przy takim kodzie programu w jaki sposob podlaczyc mierzone napiecie do mikrokontrolera?

    Prosze o wyrozumialosc, z gory dziekuje za odpowiedzi:)
  • REKLAMA
  • Pomocny post
    #2 5860906
    wader_669
    Poziom 28  
    ta linijka nie jest potrzebna.
    fusy musisz ustawic na zew. lub wew. oscylator 8mHz.

    i kod wyglada na ok.

    Jak skonczysz projekt to zapodasz kod do labview? ja zaraz sobie sciagne i sie pobawie moze mi sie uda.
  • Pomocny post
    #3 5861024
    Stepel
    Poziom 20  
    w takim przypadku mierzone napięcie podłączasz do nóżki PC1.
  • REKLAMA
  • #4 5865111
    mgl
    Poziom 11  
    Dziekuje za pomoc. Narysowalem schemat mojego "miernika". Czy jest on poprawny? czy pin (Atmegi) AVCC(20) nie powinien byc podlaczany razem z VCC do +5V, a AGND(22) do masy? Czy piny 8 i 7, oraz 4 i 6 we wtyku DB9 powinny byc zwarte?
    Atmega8 rs232 adc
    Na powyzszym schemacie z lewej strony jest MAX232, to z prawej to Atmega8.

    Kod w Labwiev zamieszcze, jak tylko bedzie gotowy.
    Pozdrawiam
  • REKLAMA
  • Pomocny post
    #5 5865125
    Dr.Vee
    VIP Zasłużony dla elektroda
    Emiter fototranzystora do masy, kolektor do PC1 i rezystora...

    Podłącz AVCC i AGND odpowiednio do VCC i GND. Między AREF i GND możesz dać kondensator.

    Z czego zasilasz układ? Tak czy inaczej potrzebujesz 100nF między VCC i GND blisko procesora.

    Części RS-232 nie sprawdzałem :)

    Pozdrawiam,
    Dr.Vee
  • REKLAMA
  • #6 5866993
    luap
    Poziom 12  
    Witam , patrząc na załączony schemat widzę że układ nie ma prawa działać ponieważ wejście ADC jest cały czas umasione ,aby uC miał co mierzyć należy go połączyć z kolektorem fototranzystora (między opornik a kolektor)
    pozdrawiam
  • #7 5867236
    wader_669
    Poziom 28  
    Dr.Vee napisał:
    Emiter fototranzystora do masy, kolektor do PC1 i rezystora...


    a co napisal kolega wczesniej?
  • #8 5867266
    mgl
    Poziom 11  
    Dr.Vee napisał:
    Emiter fototranzystora do masy, kolektor do PC1 i rezystora...


    Jasne, glupi blad, bylo pozno jak rysowalem ten schemat;) Dzieki za pomoc.
  • #9 5876274
    mgl
    Poziom 11  
    witam, mam kolejny problem:) Zbudowalem uklad.
    Chcialem przetestowac, czy dziala max232. Polaczylem wszystko zgodnie z Link (str.17), z tym ze zastosowalem kondensatory 0,1uF zamiast 1uF. Zrobilem zworke na pinie 11 (T1IN) i 12(R1OUT) i podlaczylem do komputera. Skonfigurowalem polaczenie w hyperterminalu (windows XP), wlaczylem local echo, jednak gdy cos pisze nie pojawia sie zadna odpowiedz z ukladu. To samo w programie Termite. Jedynym "sygnalem", ze jest jakas komunikacja, jest to ze w momencie odlaczenia/przypiecia zasialania do ukladu w terminalu pojawiaja sie jakies "krzaczki". Kabel sprawdzilem, po zrobieniu zworki na 2 i 3 pinie dostaje odpowedz. Czy ktos wie czym moze to byc spowodowane? Pozdrawiam
  • #10 5876618
    wader_669
    Poziom 28  
    ja mam w schemacie ze powinny byc uzyte kondensatory 10uF
  • #11 6905875
    copernick
    Poziom 10  
    wader_669 napisał:
    ta linijka nie jest potrzebna.

    Ja bym ją jednak zostawił. Nie ma co przesadnie ufać bascomowi.
  • #12 6906846
    crazy_phisic
    VIP Zasłużony dla elektroda
    Przestawiłem częstotliwość sygnału zegarowego/fuse bity?
    W jakich warunkach i jakie "światło" chcesz mierzyć? W tej konfiguracji fotranzystor będzie się zachowywał jak przełącznik - jest "światł" -> na PC1 potencjał "prawie masy", brak "śwaitła" na PC1 stan wysoki.
  • #13 6907857
    wader_669
    Poziom 28  
    copernick napisał:
    wader_669 napisał:
    ta linijka nie jest potrzebna.

    Ja bym ją jednak zostawił. Nie ma co przesadnie ufać bascomowi.


    Jak nie ustawisz nic to po prostu beda ustawienia domyslne
REKLAMA