Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

ESP8266+Arduino UNO - Wirtualny serial port nie działa

17 Jan 2017 23:30 1290 1
  • Level 2  
    Witam! Od prawie dwóch tygodni nie mogę skomunikować ze sobą Arduino UNO z ESP8266. Mam prosty program, który ma sprawdzić połączenie między modułami. Niestety w monitorze portów szeregowych nie otrzymuję spodziewanego rezultatu. W tym "projektcie" Arduino będzie musiało odbierać sygnały z czujnków i wysyłać je na serwer i odpowiednio sterować pewnymi procesami(bez wdawania się w szczegóły).
    Podłączenie
    ESP8266 jest zasilane z zasilacza laboratoryjnego(oczywiście 3.3V). Piny CH_PD oraz RST podłączone rezystorami do 3.3V. Pin TX bezpośrednio połączony do pinu 8 Arduino UNO(ma pracować jako RX). Pin RX ESP podłączony jest przez dzielnik napięcia do wirtualnego pinu TX Arduino(pin 9). Bitrate ESP zmieniłem na 9600(komenda AT+IPR), ponieważ z tego co mi wiadomo, to wirtualny serial port nie działa na większych wartościach(mogłem tą komendę wpisać, ponieważ połączyłem ESP przez konwerter). GND Arduino połączone z GND ESP(i tym samym zasilacza). ESP pobiera około 70mA. Co jednak ciekawe, czasami natężenie potrafi podskoczyć do nawet 320mA, jednak po resecie wraca 70mA(choć tutaj podejrzewam już lekko zużytą płytkę stykową).
    Zachowanie Arduino UNO podczas "ruszania kabli"
    Sytuacja 1. Gdy najpierw zasilone jest samo ESP i podłączę do zasilania Arduino, to po kilku sekundach od uruchomienia UNO, ESP raz mruga swoją niebieską diodą(czyli połączenie jest?).
    Sytuacja 2. Oba układy są włączone. Arduino nie wyświetla żadnych informacji w monitorze portów szeregowych. Odłączę na moment kabel TX od ESP(na którym cały czas jest stan wysoki), to Arduino krzyczy, że jest brak połączenia. Podłączam kabel i znowu monitor milknie(przy połączeniu powinien pokazać napis "Polaczono").
    Sytuacja 3. Oba układy są włączone. Odłączam przewód RX ESP-nic się nie dzieje. Cisza w monitorze. Odłączę przewód TX ESP-"Brak polaczenia". Z odpiętym przewodem od RX ESP(!!!!!) z powrotem podpinam TX od ESP i "alarm" cichnie. Wygląda to tak, jakby Arduino UNO zupełnie nie wysyłało informacji przez pin 9 i jedynie przestaje wysyłać komunikat o braku połączenia ze względu na stan wysoki TX od ESP. Tłumaczy to też, dlaczego nie wyświetla się komunikat o połączeniu(program nie dostaje informacji "OK").
    Tylko jak to teraz rozwiązać? Dlaczego UNO nie wysyła żadnych informacji przez podany w programie pin?

    Program:
    Code: c
    Log in, to see the code


    Pozdrawiam, Jacek.
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
  • Level 2  
    Problem rozwiązany! Najciemniej pod latarnią. Zmieniłem bitrate na ESP a nie zmieniłem w programie... Temat do zamknięcia...

    EDIT:
    Problem nadal aktualny... Komunikacja jest ale teraz nie wykonują się wszystkie operacje:

    Code: c
    Log in, to see the code


    Program przechodzi tylko przez pętlę while i tak jakby na tym kończył swoją pracę... W monitorze wyświetlany jest tylko komunikat o połączeniu. Co z tym fantem zrobić?

    EDIT2:

    Wypróbowałem kolejny, prosty program.
    Code: c
    Log in, to see the code


    Teoretycznie powinienem wpisać komendę AT w monitorze i otrzymać odpowiedź od ESP. Jednak tak się nie dzieje. Co ciekawe, po resecie ESP(wyjęciu i włożeniu zasilania ESP)w monitorze pojawia się komunikatESP8266+Arduino UNO - Wirtualny serial port nie działaPROBLEM...jpg Download (41.93 kB) . Czyli ESP wysyła sygnał, ale Arduino UNO w końcu nic nie wysyła? Co tu się dzieje...

    EDIT3 OST:
    Problem prozaiczny... TRZEBA PODPINAĆ 3.3V z Arduino do całego układu(gdy ESP jest zasilane z zewnętrznego źródła)! TEMAT DO ZAMKNIĘCIA