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

[Attiny2313][BASCOM] Sterowanie czasowe mostkiem H.

marijuz 13 Lip 2008 13:18 5646 62
REKLAMA
  • #1 5338226
    marijuz
    Poziom 18  
    Napisałem program do sterowania mostkiem H zrobionym z tranzystorów BC 327 i BC 337 , całość działa w porządku, ale jest jeden problem. Nie mogę napisać programu, który kręciłby silnikiem w lewo przez 5 sekund, a potem w prawo;/. Zawsze kręci silnik tylko w tę stronę, w którą ma kręcić na początku, po 5 sekundach nic się nie dzieje ;/.

    Mostek jest podpięty do procesora attiny 2313 pinami pd.4 i pd.6

    oto kod napisany przeze mnie , niedziałający ;/
    
    Config pind.6 = output
    Config pind.4 = output
    
    portd.4 = 0
    portd.6 = 1
    wait 5 
    portd.4 = 1
    portd.6 = 0
    

    program jest wykonywany tylko do słowa wait , czyli kręci silnikiem w jedną stronę , po 5 sekundach nic się nie dzieje ;/
  • REKLAMA
  • Pomocny post
    #2 5338259
    K_o_n_r_a_d
    Poziom 23  
    Jaką częstotliwość zegara masz podaną w ustawieniach Bascoma, tak samo jaki uK masz podany? Zawsze lepiej użyć dyrektyw REGFILE i CRYSTAL.
    Czy poprawnie masz ustawione źródło sygnału zegarowego w bitach konfiguracyjnych?
    Poprawiony kod:
    $regfile = "attiny2313.dat"
    $crystal = 1000000
    
    Config pind.6 = output
    Config pind.4 = output
    
    portd.4 = 0
    portd.6 = 1
    wait 5
    portd.4 = 1
    Portd.6 = 0
    Do : Loop : End 
  • REKLAMA
  • #3 5338372
    Mariusz Ch.
    VIP Zasłużony dla elektroda
    Przenoszę z "Początkujący Nauka".
  • #4 5338395
    marijuz
    Poziom 18  
    niestety , ten kod mi nie pomógł
  • Pomocny post
    #5 5338432
    crazy_phisic
    VIP Zasłużony dla elektroda
    Niestety myślenia nie nauczymy ;)

    zacznij (do)
    - zrób coś (ustaw wartości na liniach)
    - poczekaj
    - zrób coś innego (z tymi samymi liniami)
    - znów poczekaj
    i od początku (loop)
  • #6 5338452
    marijuz
    Poziom 18  
    $regfile = "attiny2313.dat"
    $crystal = 1000000
    
    Config pind.6 = output
    Config pind.4 = output
    
    Do
    Portd.6 = 1
    Portd.4 = 0
    Wait 5
    Portd.6 = 0
    Portd.4 = 0
    Wait 5
    Loop

    no niestety można długo czekać a silniczek się nie wyłącza...
  • #8 5338471
    crazy_phisic
    VIP Zasłużony dla elektroda
    ;) Uciesz nasze oczy schematem. Zapewniam Cię że to na pewno pomoże ulży Twoim cierpieniom.
  • #9 5338485
    marijuz
    Poziom 18  
    bez wyjmowania procka mogę wam powiedzieć że działa bo jak wpisze w programie samo w lewo , albo samo w prawo to działa ;]. Sam nie wiem dlaczego nie działa , robiłem kiedyś diodę migającą na identycznej zasadzie...
    [Attiny2313][BASCOM] Sterowanie czasowe mostkiem H.
  • Pomocny post
    #10 5338488
    Balu
    Poziom 38  
    Za przeproszeniem Qżwa ale schemat... niech Cię pies kopnie;>

    jAKI MASZ KWARC / FOSC? Grzebałęś w fuseach?

    PS Schemat -> schemat procka z podłączonymi bridgeami...
  • REKLAMA
  • #11 5338513
    marijuz
    Poziom 18  
    kwarcu nie używam

    [Attiny2313][BASCOM] Sterowanie czasowe mostkiem H.
  • Pomocny post
    #12 5338520
    don diego
    Poziom 32  
    Ale masz podłączone PB.6 i PD.4:) A w programie?
  • Pomocny post
    #13 5338526
    K_o_n_r_a_d
    Poziom 23  
    Na schemacie masz PD4 i PB6 a w programie co innego.
  • #15 5338543
    marijuz
    Poziom 18  
    na szybko robiłem,
    w układzie mam do pD6 ;]
  • REKLAMA
  • #17 5338624
    marijuz
    Poziom 18  
    w programie na końcu mam 2 zera bo chciałem sprawdzić czy się zatrzyma na moje żądanie ;]
  • #18 5338656
    don diego
    Poziom 32  
    A co się dzieje, jeśli zmienisz kolejność, czyli najpierw dasz same zera i po 5 sekundach sygnał do startu? Silnik grzecznie czeka 5 sekund?
  • #19 5338661
    marijuz
    Poziom 18  
    Przy takim kodzie:
    $regfile = "attiny2313.dat"
    $crystal = 1000000
    
    Config pind.6 = output
    Config pind.4 = output
    
    Do
    Wait 5
    Portd.6 = 0
    Portd.4 = 1
    Wait 5
    Portd.6 = 0
    Portd.4 = 0
    Loop

    silnik drga równo co 5 sekund ;/. Sygnał jest odbierany przez sylnik tylko przez krótki moment. To tak jakbt wykonywał 3 pierwsze linijki komendy , omijał wait 5 i praktycznie odrazu się wyłączał...

    $regfile = "attiny2313.dat"
    $crystal = 1000000
    
    Config pind.6 = output
    Config pind.4 = output
    
    Do
    Wait 5
    Portd.6 = 0
    Portd.4 = 1
    Wait 5
    Portd.6 = 1
    Portd.4 = 0
    Loop


    pomimo tej zmiany (po drugim wait jest "obracaj sie w lewo" ) silnik wykonuje dokładnie taką sama pracę...
  • #21 5338674
    don diego
    Poziom 32  
    Daj 100nF, jak radzi Balu. Masz zasilanie o wystarczającej wydajności? Może ten silnik jest jakiś specjalny (krokowy?) :)
  • #22 5338675
    marijuz
    Poziom 18  
    hmmm nie wiem , jestem początkującym elektronikiem ;] aaaa chodzi ci o te rezystorki?? mam tylko trochę większe, ale gościu z elektronicznego powiedział że to prawie niczym się nie różni ;]
  • #23 5338678
    don diego
    Poziom 32  
    marijuz napisał:
    hmmm nie wiem , jestem początkującym elektronikiem ;]

    To nie jest wytłumaczenie ;) Jak to nie wiesz, czy dałeś kondensator??
  • #24 5338682
    Balu
    Poziom 38  
    PO CO CZYTAĆ PRZYKLEJONE TEMATY!!!
    Wrrrr!!!!!@!!!!!

    I zaczniesz te zdania z dużej litery pisać?

    Dodano po 31 [sekundy]:

    marijuz napisał:
    hmmm nie wiem , jestem początkującym elektronikiem ;] aaaa chodzi ci o te rezystorki?? mam tylko trochę większe, ale gościu z elektronicznego powiedział że to prawie niczym się nie różni ;]


    Teraz to już chyba do nawesoło...
  • #25 5338686
    marijuz
    Poziom 18  
    Hmmm Na schemacie nie było kondensatora?? Gdzie go trzeba wrzucić??
  • #27 5338695
    marijuz
    Poziom 18  
    A czemu ten kondensator ma służyć?? Naprawde sądzicie że to tego wina??
  • #29 5338706
    drakon3
    Poziom 15  
    A mi się w tym programie nie podoba konfiguracja portu. Z tego co wiem to składni "pinD/B" używa się gdy końcówka pracuje jako wejście. Według mnie powinno być "config portd.4=1". Rejestr PinD może być tylko odczytywany, może przez to program sie głubi.

    Moderowany przez crazy_phisic:

    Jeśli Ci się tylko wydaje to przed napisaniem postu sprawdź. Zapis "config portd.4=1" to czyste masło-maślana.

  • #30 5338707
    marijuz
    Poziom 18  
    Chyba macie racje(z tym kondensatorem) bo on faktycznie zachowuje się jakby po odliczaniu 5 sekund i odpaleniu silnika się resetował. A kiedy odliczanie miał po odpaleniu silników to resetował się na okrągło , co było prawie niezauważalne 9faktycznie silnik dziwnie pracował...) :) Dobra teoria??

    p.s ta zmiana z pind na portd nic nie dała..
REKLAMA