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.

Jak napisać program włączający diodę na Atmega8-Pu?

daniel6620 12 Mar 2015 11:21 1392 15
  • #1 12 Mar 2015 11:21
    daniel6620
    Poziom 6  

    Witam,
    Chciałbym zaprogramował Atmega8-Pu tak aby gdy nacisnę micro switch lub włączę przełącznik dioda led zaświeciła się na kilka sekund np. 10 sekund i zgasła. A jak puszcze lub wyłączę przełącznik to żeby znów się zapaliła na kilka sekund.
    Jak to napisać?

    Dziękuje wszystkim jakąkolwiek pomoc :)
    Pzdr

    0 15
  • #3 12 Mar 2015 14:46
    emarcus
    Poziom 35  

    kindlar napisał:
    Kolego jest wiele gotowców na sieci. Nie wiadomo czy chcesz to w bascomie robić czy w C. Zrób raczej coś sam i daj do sprawdzenia.
    https://www.elektroda.pl/rtvforum/topic2112358.html#10036044


    Podesłałeś mu address z błędnie napisanym przykładem, a także z błędnym wyjaśnieniem źródła odchylenia wyniku (+2%) od spodziewanej wartości.

    e marcus

    0
  • #4 12 Mar 2015 15:30
    daniel6620
    Poziom 6  

    Chciałbym to zrobić np. w Arduino 1.6.2 :)
    Pomożecie??

    0
  • #5 12 Mar 2015 20:22
    emarcus
    Poziom 35  

    daniel6620 napisał:
    Chciałbym to zrobić np. w Arduino 1.6.2 :)
    Pomożecie??


    Szukasz pomocy na to co masz w zasięgu ręki....
    Masz gotowy przykład w Arduino:
    Otwórz Arduino IDE; w menu na górze wybierz \:
    File=> Examples> 02.Digital> Button

    Masz tam wiele innych przykładów jako podkład dydaktyczny do nauki.

    e marcus

    0
  • #6 12 Mar 2015 23:36
    daniel6620
    Poziom 6  

    Dzięki za podpowiedź. A czy da się jakoś sprawdzić tą atmege czy jest sprawna?

    0
  • #7 13 Mar 2015 00:29
    pimpuk
    Poziom 22  

    Nie no, tak się nie da, jak jest napisane w tym przykładzie.
    Danielowi chodzi o zapalenie diody, jako reakcja na zmianę statusu buttona.
    Jak wciśnie i zostawi wciśnięty, to dioda ma się zaświecić na kilka sekund, a gdy puści przycisk, to też ma się zaświecić na kilka sekund.
    Taki problem najłatwiej rozwiązać na przerwaniach.

    0
  • #8 13 Mar 2015 22:29
    daniel6620
    Poziom 6  

    pimpuk widzę że mnie rozumiesz pomógłbyś?

    I mam jeszcze problem z Atmegą 8 ponieważ niby jak programuje to wszystko jest dobrze a nie działa to co napisałem. Np.:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    I zastanawiam się nad kupnem nowej tylko moje pytanie jest takie czy kupić znów 8 czy może 168 czy 328?? Która ma większe możliwości?? Którą się łatwiej programuje??

    0
  • #9 14 Mar 2015 13:29
    pimpuk
    Poziom 22  

    To jest program, który spełnia twoje warunki z pierwszego postu.

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Tylko musisz oczywiście jeszcze obsługę odbijania przycisków napisać.


    A co się tyczy problemu powyżej, to pokaż schemat.

    0
  • #11 15 Mar 2015 01:32
    pimpuk
    Poziom 22  

    Rozumiem, że program kompilujesz w Arduino IDE. Atmega8 siedzi w Arduino NG i dla takiej płytki powinien być kompilowany program.
    Jeżeli układ złożyłeś wg tego schematu, to diody podłączone masz fizycznie pod porty PB1 i PB2, a w programie podałeś wyjście cyfrowe 8, co dla Atmega8 odpowiada PB0. Nie może więc żadna z tych diod zaświecić.
    Zmień na:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    i powinno zadziałać.

    0
  • #12 15 Mar 2015 13:15
    daniel6620
    Poziom 6  

    Nie jestem pewien ale możliwe że ją zablokowałem. Jak można ją odblokować??
    Czytałem o układzie 555 astabilnym który na wyjściu daje przebieg prostokątny.

    Zbudowałem ten układ wegług schematu :Jak napisać program włączający diodę na Atmega8-Pu?
    R1 to 5 Om R2 3,3Om oraz C 1uF.

    Jest on poprawny i emituje przebieg prostokątny?

    Trzeba to podłączyć do XTAL1 ale nvm czy podczas programowania czy kiedy? I na jaki czas?

    0
  • #13 15 Mar 2015 20:14
    pimpuk
    Poziom 22  

    A skąd wiesz, że procesor jest zablokowany? Przecież nie możesz namieszać w fusach samym Arduino IDE. Możesz konkretnie opisać problem? W jaki sposób wgrywasz program do procesora? Czy, tak jak na schemacie, procesor jest poganiany 20MHz?

    0
  • #14 18 Mar 2015 06:48
    daniel6620
    Poziom 6  

    Wgrywam program na mrugającą diodę i nic się nie dzieje. Dioda nie mryga. Mam podpięty 16MHz, może lepiej bez kwarcu? I zrobić na wewnętrznym?

    0
  • #15 18 Mar 2015 08:43
    gaskoin
    Poziom 38  

    Jakby był zablokowany to byś nic do niego nie wgrał

    0
  • #16 18 Mar 2015 09:22
    pimpuk
    Poziom 22  

    Nie ustosunkowałeś się do tego:

    pimpuk napisał:
    Jeżeli układ złożyłeś wg tego schematu, to diody podłączone masz fizycznie pod porty PB1 i PB2, a w programie podałeś wyjście cyfrowe 8, co dla Atmega8 odpowiada PB0. Nie może więc żadna z tych diod zaświecić.
    Zmień na:
    [syntax=cpp] pinMode(9, OUTPUT);
    i powinno zadziałać.

    Ani nie odpowiedziałeś na pytania, m.in.:
    pimpuk napisał:
    W jaki sposób wgrywasz program do procesora?

    0