logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ATMEGA 8 porownywanie napiec na wejscach PD6 PD7

Leonor 16 Lut 2010 19:31 1949 15
REKLAMA
  • #1 7704408
    Leonor
    Poziom 10  
    Czesc wszystkim
    potrzebuje pomocy .
    Chce na wejsciu komparatora ATMega 8 PD6 i PD7 miezyc napiecia, na kazdym z nich jest zamontowany potenciometr 10 kohm, jednym z nich ustawiam napiecie a ten drugi jest zamontowany na osi malego silnika . jezeli napiecie ustawione jest mniejsze niz napiecie na osi silnika to na wyjsciu Port b.1 pojawia stan Hi wysoki, jezeli napiecie ustawione jest wieksze niz na osi silnika to Port b.1 zostaje wylaczone LOW a na Porcie B.2 pojawia sie stan Hi .jezeli napiecia ustawione i to na osi sa identyczne to na Portach B1 i B2 znajdoje sie w stanie beznapieciowym LOW.
  • REKLAMA
  • #2 7704453
    Konto nie istnieje
    Poziom 1  
  • #3 7704518
    Leonor
    Poziom 10  
    atom1477 napisał:
    No ok. Czyli tak to działa.
    A pomiar Ci do czego? Bo nie napisałeś. Może zapięcie zmierz multimetrem?


    pomiar to nie jest wazny tylko wazne jest zeby wyjscia tak dzialaly jak opisalem
  • #4 7704563
    mirekk36
    Poziom 42  
    Z tego co piszesz to można tylko wywnioskować, że ty masz generalnie problem z obsługą ADC i odczytem i analizą mierzonych napięć .... więc może zacznij bez tych silniczków itp ....
  • REKLAMA
  • #5 7704591
    Leonor
    Poziom 10  
    masz racje ja bawie sie wiecej elektronika analogowa a ten silnik to tylko przyklad zeby to jakos opisac w programowaniu ATMega jestem an zero

    Proszę poprawić treść swoich postów - regulamin p.15
    [zumek]
  • #6 7704695
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #7 7704696
    mirekk36
    Poziom 42  
    Leonor napisał:
    masz racje ja bawie sie wiecej elektronika analogowa a ten silnik to tylko przyklad zeby to jakos opisac w programowaniu ATMega jestem an zero


    Dlatego piszę, żeby porobić sobie najpierw testy do bólu ze zwykłymi potencjometrami i odczytywać napięcia w rozdzielczości 10bitów z różnymi wartościami preskalera, w różnych trybach. Zrobić sobie po prostu taki Voltomierz i wyświetlać napięcie np z 2 miesjscami po przecinku na LCD. Żeby zobaczyć dokładnie co się z tym wiąże, jak się to przelicza, jak się dobiera napięcie odniesienia, żeby zobaczyć jak ważne jest wtedy filtrowanie napięcia na AVCC itd itd itd

    to potem będzie ci łatwiej - gdy już wszystko w powyższych testach powychodzi ci wg założeń i poznasz zasady pracy z ADC.
  • #8 7704755
    Leonor
    Poziom 10  
    napisalem cos takiega w bascom ale nie dziala tak jak bym chcial jak opisalem nie mam pojecia jak to dokladnie zrobic chodzi o wyjscia zalezne sa napiecia wejsciowego

    $regfile = "m8def.dat"

    $crystal = 8000000
    Led1 Alias Portb.0
    Config Led1 = Output

    Led2 Alias Portb.1
    Config Led2 = Output


    Config Aci = On , Trigger = Toggle
    On Aci On_aci
    Enable Aci


    Enable Interrupts


    Do
    Led1 = ACSR.ACO
    Loop

    End


    On_aci:
    Led2 = Not ACSR.ACO
    Return
  • REKLAMA
  • #9 7704794
    Konto nie istnieje
    Poziom 1  
  • #10 7704836
    Leonor
    Poziom 10  
    program ma servo mechanizm to ja juz mam glownie chodzi o to zeby dzialalo jak servo ale bez tych czasowych zmian 1,5 ns do 2ns przebiegow serva .tylko w zakresie normalnego napiecia 5Volt
  • #11 7704854
    Konto nie istnieje
    Poziom 1  
  • #12 7704896
    Leonor
    Poziom 10  
    Na razie dziekuje. Zaraz to zgram na Mega 8 i wyprobuje - mam duzo nadzieji, ze to jest to, czego szukam.
  • #13 7704926
    Konto nie istnieje
    Poziom 1  
  • #14 7705220
    Leonor
    Poziom 10  
    atom1477
    Czy to juz wszystko czy sa tutaj jakies bledy
    myslales o czyms takim
    
    $crystal = 8000000
    $regfile "m8def.dat"
    
    Config Portd.6 = Output
    Config Portd.7 = Output
    Config Pinc.0 = Input
    Config Pinc.1 = Input
    Dim Adc0 As Integer
    Dim Adc1 As Integer
    
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Start Adc
    Do
        Adc0 = Getadc(0)
        Adc1 = Getadc(1)
    
        Adc1 = Adc1 + 10
        If Adc0 > Adc1 Then
            Portd.7 = 0
            Waitms 1                                            'zeby nie spalic sterownika silniczka
            Portd.6 = 1
        Else
            Adc1 = Adc1 - 20
            If Adc0 < Adc1 Then
                Portd.6 = 0
                Waitms 1                                        'zeby nie spalic sterownika silniczka
                Portd.7 = 1
            Else
                Portd.6 = 0
                Portd.7 = 0
            End If
        End If
    Loop
  • Pomocny post
    #15 7705395
    Konto nie istnieje
    Poziom 1  
  • #16 7705444
    Leonor
    Poziom 10  
    Dzieki. Widze ze sie znasz super na tych sprawach i jezeli masz gadu gadu albo skype, to napisz leo987(_at_)gmx.de

    Regulamin p.10.2
    [zumek]
REKLAMA