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

Program w Bascom dla mikrokontrolera Atmega8 + HC05

Zbibi92 04 Wrz 2018 16:00 168 7
  • #1 04 Wrz 2018 16:00
    Zbibi92
    Poziom 3  

    Czy ktoś pomoże w temacie programu na Atmega8 do zapalania i gaszenia led . Dwa bliźniacze układy powiązane HC-05.

    Jeden z trzema przyciskami a drugim trzema led.

    Resztę sobie rozbuduję. Nie ma pojęcia jak zacząć konfigurację. Na pętlach trochę już się bawiłem. Jeśli wiesz jak pomóc proszę o kontakt.

    0 7
  • Arrow Multisolution Day
  • #2 04 Wrz 2018 16:19
    Kuniarz
    Moderator Projektowanie

    W telegraficznym skrócie:

    - nadajnik po wciśnięciu danego przycisku wysyła po BT jeden znak : A, B lub C.
    - odbiornik po otrzymaniu po BT danego znaku załącza odpowiednią diodę.
    - dla mikrokontrolerów BT to tak naprawdę UART, więc na jednym urządzeniu "piszesz na terminal" a na drugim czekasz na znak z terminala.

    Pozostaje do doczytania jak sparować ze sobą dwa HC-05, bo dotychczas używałem tego tylko w konfiguracji BT - smartfon.

    Wklej kody w Bascom, które już masz, narysuj schemat.

    0
  • #3 04 Wrz 2018 22:22
    Zbibi92
    Poziom 3  

    Dziękuję i przesyłam schemat i program który napisałem.

    Program działa w następujący sposób:

    Po wciśnięciu i poszczeniu PL zaczyna mrugać kierunkowskaz, kolejna przyciśnięcie wyłącza. PR uruchamia kolejny kierunkowskaz. Oba kierunkowskazy eliminują się na wzajem. Czyli jeśli włączymy prawy, lewy automatycznie się wyłączy. Ph jest przyciskiem światło STOP (Sh). Jest to wyjście astabilne. Wraz z kierunkowskazami lewym i prawym załącza się sygnał dźwiękowy. Przy dłuższym wciśnięciu PL i PR zapala się światło pozycyjne w kowerze . Na krótko załącza się sygnał dźwiękowy. ponowne przytrzymanie obu powoduje wyłączenie światła pozycyjnego i dłuższy sygnał dźwiękowy. A więc muszę wykonać dwa projekt, Jeden z trzema przyciskami który będzie wysyłać sygnał włączanie lewego i prawego kierunki. oraz trzeci zapalał na czas wciśnięcia światło STOP. Na drugiej płytce będzie odbierać komendy kierunkowskazów i stop. Oraz dodatkowy przycisk załączania światła pozycyjnego. do tego jeszcze Później jeszcze pozostanie temat kontrolera odpowiedzialnego za poziom stanu baterii . Z góry dziękuję za pomoc, uwagi i podpowiedzi. Przyznam się, że na chwilę obecną nie znam się na komunikacji bezprzewodowej. Pozdrawiam Zbyszek

    0
  • Arrow Multisolution Day
  • #4 05 Wrz 2018 09:07
    Kuniarz
    Moderator Projektowanie

    Uwagi do schematu:
    - brak kondensatorów filtrujących przy zasilaniu mikrokontrolera
    - brak rezystora (10k) podciągającego reset do VCC
    - przydałby się dławik na zasilaniu ADC
    - do komunikacji po Bluetooth potrzebujesz RX i TX, masz jedno w powietrzu a drugie do mosfeta
    - część MOSFETów zasilasz z oddzielnego stabilizatora, część z zasilania części logicznej - jakiś miałeś tego cel ?

    Czy serio chcesz zastosować komunikację bezprzewodową między panelem sterującym a lampą/lampami, gdzie to pewnie raptem 2m przewodu ? ;-)

    Dodano po 15 [minuty]:

    Pozwoliłem sobie uporządkować kod (wcięcia) dla lepszej czytelności:

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Program jest mało czytelny przez krótkie nazwy zmiennych, do tego wszechobecne "Wait" powoduje, że to ni jak nie będzie szybko reagowało na jakikolwiek przekaz bezprzewodowy... Całość do przemyślenia i poprawienia niestety.

    0
  • #5 05 Wrz 2018 11:13
    Zbibi92
    Poziom 3  

    To jest schemat testowy na którym uczyłem się programować. Jest to moja pierwsza przygoda z mikrokontrolerem. Na cóż (Wait ) występuje często , takiego miałem nauczyciela i tak tworzyłem pierwsze kroki. Tak musi być komunikacja bezprzewodowa ponieważ docelowo oświetlenie będzie na plecaku lub kasku rowerzysty. Drugi stabilizator podałem ze względu na sporą ilość światełek. Docelowo i w bezprzewodowej wersji na płytce PCB już ograniczę liczbę ledów oraz inne rozwiązania zasilania. Widziałem też rozwiązanie na mikrokontrolerze PIC16LF1824T39A czy znasz ten kontroler? nie upieram się jeśli chodzi o typ mikrokontrolera. Głównie chodzi o to, że moja przygoda zaczęła się od Atmega8. Ale jestem otwarty na wszelkie rozwiązania. Pozdrawiam Zbyszek

    Dodano po 34 [minuty]:

    Bardzo dziękuję za poprawienie programu . Jestem wdzięczny za każdą uwagę. Teraz pytanie jest, jak ten program sterować z wejścia RX a nie z przycisków? Przyciski będą na drugim Atmaga8.

    0
  • #6 05 Wrz 2018 12:33
    Kuniarz
    Moderator Projektowanie

    Zbibi92 napisał:
    Przyciski będą na drugim Atmaga8.


    Ten "drugi" sterownik powinien być właśnie nadrzędnym, czyli tam obsługujesz tylko i wyłącznie przyciski i na podstawie ich działania wysyłasz po UART jakiś znak. Część odbiorcza (ta na kasku) powinna działać tylko tak "jeśli dostanę znak A to migam lewym kierunkiem" itd.

    Rzuć okiem na przykłady w sieci obsługi transmisji po porcie szeregowym dla Atmeg.

    Przykład pierwszy z brzegu : https://www.elektroda.pl/rtvforum/topic1974523.html

    0
  • #7 05 Wrz 2018 15:16
    Zbibi92
    Poziom 3  

    Hm....
    nie wiem czy dobrze kombinuję? Ponieważ tak jest wyświetlanie tekstu.

    czy komenda (Print A) maże zmienić stan wyjścia na wybranym porcie?

    co ma zrobić atmega8 z literką (A) jeśli nie ma LCD?

    0