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

ATTiny2313 i czujnik zbliżeniowy

16 Sie 2006 16:33 1661 4
  • Poziom 1  
    Witam wszystkich !

    W trakcie realizacji mojego projektu znowu napotkałem na przeszkodę , ale mam nadzieję, że Użytkownicy forum pomogą mi się z nią uporać

    A więc tak: Mam już płytkę z procesorem ATTiny2313 napisałem program sterujący i teraz mam problem bo program ma się włączać po zadziałaniu czujnika zbliżeniowego - układ tego czujnika sygnalizuje diodą LED pojawienie się przeszkody więc myślałem żeby właśnie to napięcie zasilające diodę jakoś wykorzystać...

    Sam program jest bardzo prosty bo ogranicza się jedynie do podciągania bieguna + na cały port B i 4 wyjścia portu D (w ustalonej sekwencji).
    Pozostają więc do dyspozycji 3 końcówki portu D, i teraz mój problem ...

    jak zmodyfikować poniższy program i jak podpiąć wyjście diody z czujnika aby uruchomić program w procesorze.
    Myślałem tu o wykorzystaniu wolnej końcówki portu D (pozostała D4,5,6) i ustawić jedną z nich jako wejście.
    Po zadziałaniu czujnika dioda poda napięcie na wejście i uruchmi program....tylko właśnie nie wiem jak ta dioda powinna być podłączona i co zmienić w poniższym programie (jakie komendy użyć)...

    Config Portb = Output
    Config Portd = &B0001111
    Portb = &B00000000
    Portd = &B0000000

    :arrow: waitms 400
    :arrow::arrow:Portb = &B10001000
    :arrow::arrow:Portd = &B0000001
    :arrow::arrow:waitms 600
    :arrow::arrow:Portb = &B01000000
    ....itd

    end

    Drugie pytanie - jeżeli to już będę miał to jak zrobić aby część programu którą zaznaczyłem strzałkami była powielona w trochę innej kolejności a program przed uruchomieniem tej cześci wybrałby ją losowo ? Czyli tak jak jest poniżej - program sie uruchamia po wykryciu przeszkody i następnie losowo wybiera 1 z 3 bloków z sekwencjami .....

    Config Portb = Output
    Config Portd = &B0001111
    Portb = &B00000000
    Portd = &B0000000

    to
    ____________________________
    :arrow: waitms 400
    :arrow::arrow:Portb = &B10001000
    :arrow::arrow:Portd = &B0000001
    :arrow::arrow:waitms 600
    :arrow::arrow:Portb = &B01000000
    ....itd
    _____________________________
    lub to
    _____________________________
    :arrow: waitms 400
    :arrow::arrow:Portb = &B10001000
    :arrow::arrow:Portd = &B0000001
    :arrow::arrow:waitms 600
    :arrow::arrow:Portb = &B01000000
    ....itd
    _____________________________
    lub to
    _____________________________
    :arrow: waitms 400
    :arrow::arrow:Portb = &B10001000
    :arrow::arrow:Portd = &B0000001
    :arrow::arrow:waitms 600
    :arrow::arrow:Portb = &B01000000
    ....itd
    _____________________________
    end


    Trochę dużo opisu i pewnie zagmatwałem φ

    Z góry dzięki za rady i wskazówki...szczególnie rozwiązania pierwszego problemu czyli podpięcia diody czujnika pod procesor bo drugi problem wydaje mi się trudniejszy (przynajmniej dla mnie nie do przejścia samemu)....

    Jeżeli ktoś ma wprawę to najlepiej jakby mi pokazał na tym programie co napisałem - wtedy najszybciej zrozumiem o co chodzi ....
  • Poziom 12  
    Musisz zobaczyć w jaki sposób jest włączana dioda,tzn. czy jest cały czas pod napięciem i tylko w chwili włączenia występuje poziom niski, czy też odwrotnie.
    Co do odzekiwania może wystarczyć instrukcja BITWAIT PIN(),SET/RESET.
    Jeżeli chodzi o (pseudo)losowość to RND() i wybieraj za pomocą SELECT CASE.
    Pozdrawiam
  • Poziom 30  
    Witam!

    Ja dopiero rozpoczynam zabawe z ATTINY2313, ale napodkałem przeszkode, niemoge znaleść programu do jego zaprogramowania :(.
    Może ktoś mi podać nazwe lub lepiej podesłać np. na maila (adi-mistrzu@epf.pl) taki program ? BASCOM niema w liscie chip ATTINY2313 i niedziała.
    Prosze o pomoc :(!
  • Poziom 35  
    ADI-mistrzu napisał:
    ....BASCOM niema w liscie chip ATTINY2313 i niedziała....
    Najnowsza wersja już posiada .