Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki

Attiny2313 - Program sygnalizacji świetlnej skrzyżowania dwóch ulic.

Orion045 07 Sty 2017 17:44
  • #1 07 Sty 2017 17:44
    Orion045
    Poziom 11  

    Nie wiem czy piszę w dobrym miejscu. Chcę napisać program sygnalizacji świetlnej skrzyżowania dwóch ulic z przejściami dla pieszych z przyciskami na Attiny2313 lub 4313. Jedna droga to 4 sygnalizatory dla ulicy i 4 sygnalizatory dla pieszych. Dobrze ustawiam wyjścia z Attiny2313? Jak napisać instrukcje w pętli działania sygnalizacji?

    Kod: c
    Zaloguj się, aby zobaczyć kod

  • #3 08 Sty 2017 12:53
    Orion045
    Poziom 11  

    Mam Arduino Uno rev. 3 + programator USB ASP + płytka stykowa 840 + 5 Attiny2313. Program sygnalizacji skrzyżowania z przejściami dla pieszych działa mi. Nie wiem jak zrobić by przyciskiem załączać przejście dla pieszych.


    Kod: c
    Zaloguj się, aby zobaczyć kod



    Jak to napisać w pętli żeby powtórzyć pięć razy to:
    Kod: c
    Zaloguj się, aby zobaczyć kod

  • #4 31 Sty 2017 19:34
    Orion045
    Poziom 11  

    Jak to napisać w pętli powtarzanej pięć razy?

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Jak napisac sterowanie przyciskami przejść dla pieszych?
    Kod: c
    Zaloguj się, aby zobaczyć kod

  • #5 01 Lut 2017 20:41
    emarcus
    Poziom 34  

    Orion045 napisał:

    Jak napisac sterowanie przyciskami przejść dla pieszych?

    Wg informacji, które podałeś dotychczas takiej możliwości nie ma!
    1. Pierwsza zasadnicza sprawa to:
    - czy program uznany w poscie #3 że ‘działa mi’ , jest/był testowany na płytce Arduino uno3, czy po wpisaniu do Attiny 2313?
    2. Nawet jeżeli jest pisany i kompilowany dla Attiny2313 (wymagany jest support w arduino dla tego processora), to i tak nie włączysz się do programu w dowolnym jego miejscu.
    Program jest pisany ‘metodą łańcuszkową’, zamiast przyjąc metodę blokową/ strukturalną.

    Jeżeli potrzebujesz aby processor ‘zauważył’ naciśnięcie przycisku na przejsciu, to z pewnoscia nie mozesz stosowac ‘delay’ jako miernika upływu czasu, który blokuje sekwencję petli i krótkie naciśnięcie przycisku może byc , a raczej z pewnością będzie ‘przeoczone’ – chyba że jest to interrupt.
    Stosuj raczej metodę nieblokująca; -na przykład millis.

    Pętla główna programu winna byc możliwie krótka, ograniczona do sprawdzania upływu czasu (nie jego odliczania! – niech timer odlicza czas) i wywołania kolejnych sekwencji zmiany świateł wg wcześniej przygotowanej tabeli, co umożliwi wykrycie naciśnięcia przycisku.
    Posługuj się dodatkowymi zmiennymi pomocniczymi (flagami) od których uzależnisz przeskok do kolejnej sekwencji. Podobnie wykorzystasz tą metodę w zmianie zwykłej sekwencji na specjalną dla przejścia dla pieszych (czyli ‘na rządanie’).

    e marcus

  • #6 01 Lut 2017 21:06
    Orion045
    Poziom 11  

    Na razie piszę i próbuję na Arduino Uno Rev.3. Na płytce 830 stykowej jest 15 Led i dwa przyciski. Rezystory 220 om do katod diod Led są podłączone. Na razie pisałem proste programy. Zrobiłem w ten sposób.

    Kod: c
    Zaloguj się, aby zobaczyć kod

  • #8 01 Lut 2017 23:20
    Orion045
    Poziom 11  

    ditomek napisał:
    a pętle "for" już przerabiałeś?


    Nie. Na razie bawiłem się wyświetlaczem LED 7 segmentowym i wyświetlaczem LCD. Kupiłem gołe Arduino Uno i teraz powoli dokupuje części. Myślę teraz o czujniku ruchu i taśmie led aby zrobić oświetlenie w kuchni. Bo zrobienie makiety skrzyżowania trochę potrwa.

  • #10 02 Lut 2017 11:32
    Orion045
    Poziom 11  

    Najszybciej uczę się na przykładach. Teraz wiem jak zastosować instrukcję for.Przepraszam już poprawiam.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Pętla jest wykonywana(int i=0;i<5; ) od 0 do 4 czyli 5 razy, i++ zwiększa o 1. Tak? W przypadku i=5 od 0 do 5 czyli 6 razy? Mam pytanie czy w dolnym kodzie wszystko dobrze?Uprościłem kod do mijanki aby się nauczyć obsługi przycisków. Jak zrobić żeby diody świeciły się tak czerwona w pierwszym a zielona w drugim przez cały czas a dopiero po naciśnięciu przycisku załączyła się sekwencja zmiany na zielona pierwszy i czerwona drugi sygnalizator?Niby mi działa ale wszystko nie tak.

    Kod: c
    Zaloguj się, aby zobaczyć kod

  Szukaj w 4mln produktów
Przeglądaj produkty