Caracteristicile tehnice:
- Microcontroller: ESP-8266MOD;
- Tensiunea de operare IO: 3,3V;
- Adaptor USB/serial: CH340G;
- Tensiune de alimentare: 6V-16V c.c.;
- Pini intrare analogică: 1V (maxim 5V folosind divizorul rezistiv R21-R22);
- Pini I/O digitali 11;
Tip pin | Funcție posibilă | Pin ESP8266 | Pin Espduino |
---|---|---|---|
D0 | I/O, RX | GPIO3 | RX |
D1 | I/O, TX | GPIO1 | TX |
D2 | I/O, pull-down | GPIO16 | D16 |
D3, D15 | I/O, SCL, pull-up | GPIO5 | D5, SCL |
D4, D14 | I/O, SDA, pull-up | GPIO4 | D4, SDA |
D5, D13 | I/O, SCK | GPIO14 | D14, SCK |
D6, D12 | I/O, MISO | GPIO12 | D12, MISO |
D7, D11 | I/O, MOSI | GPIO13 | D13, MOSI |
D8 | I/O, pull-up | GPIO0 | D0 |
D9 | I/O, pull-up | GPIO2 | D2 |
D10 | I/O, SS | GPIO15 | D15, SS |
A0 | Intrare analogă | A0 | A0 |
Conform schemei, placa conține:
- ca element central ESP13 (ESP8266),
- un convertor USB/serial realizat cu CH340G,
- un regulator de 5V/2A realizat cu circuitul MP1482,
- un regulator de 3,3V/1A realizat cu circuitul NCP1117,
- două leduri: unul de culoare roșie, ce ne indică alimentarea plăcii și unul de culoare albastră ce poate fi folosit de utilizator prin comanda pinului digital I/O D16/GPIO16;
Atenție: ESP8266 NU poate fi alimentat la 5V și NU are pinii I/O toleranți la 5V. De asemenea curentul maxim printr-un pin este de 12mA. Intrarea analogă suportă maxim 1V, de aceea, conform schemei, pe intrare este prevăzut un divizor rezistiv realizat cu ajutorul rezintențelor R21 - 400k și R22 - 100K, putând astfel aplica pe intrare tensiuni de până la 5V.
Pinii NC (not connected) nu sunt conectați și au rol de suport mecanic, pentru ca placa să fie compatibilă cu shield-urile de la Arduino Uno R3.
În general ESP8266 este utilizat ca o punte între comunicatia serială cu alt microcontroler și WiFi, dar de asemenea poate fi folosit și individual ca un microcontroller de sine stătător. Utilizat ca și microntroller ESP8266 dispune de 17 GPIO(0-16) și toate pot fi alimentate la 3,3V, repet, nefiind tolerant la 5V iar orice depăsire a tensiune de 3,3V va duce inevitabil la distrugerea microcontroller-ului. Din aceste 17 GPIO numai 11 sunt disponibile a fi folosite ca și I/O, deoarece 6 pini (GPIO6-GPIO11) sunt folosiți la conectarea memorie flash.
Comunicația serială UART0 și UART1
Pentru comunicarea serială UART0 sunt folosiți pinii GPIO1 și GPIO3 pentru TX0 și respectiv RX0. Folosirea acestori pini ca și I/O nu este posibilă atunci când sunt folosiți pentru comunicarea serială. ESP8266 dispune și de adoua comunicare serială UART1 realizată cu ajutorul pinilor GPIO2 și GPIO8 pentru TX1 și RX1, dar GPIO8 este folosit la conectarea memoriei flash nefiind disponibil pentru RX1, astfel se poate folosi GPIO2 (TX1) în aplicații unde este de ajuns tranmiterea datelor, folosind în acest scop obiectul Serial1.
PWM (pulse width modulation)
Ca multele plăci Arduino, ce folosesc ca element central microcontrolerele atmega ce dispun la nivel hardware de PWM, ESP8266 nu dispune al nivel hardware de nici un pin capabil de PWM. Astfel PWM poate fi folosit la nivel software pentry oricare din pinii digitali. În mod implicit PWM poate fi folosit la 10 bits@1kHz și poate fi extins până la 14 bits@1kHz.
I2C
ESP8266 de asemenea nu dispune la nivel hardware de comunicarea I2C, în schimb este implementată la nivel software prin folosirea oricărori doi pini digitali I/O. În mod implicit libraria I2C folosește pinii GPIO4 ca SDA și GPIO5 ca SCL la o frecvență de comunicare de 450kHz.
SPI
ESP8266 dispune de o singură comunicare SPI la nivel hardware prin folosirea pinilor:
- GPIO14 ca CLK;
- GPIO12 ca MISO;
- GPIO13 ca MOSI;
- GPIO15 ca SS (Slave Select)
Pull-up/pull-down intern
Pinii de la GPIO0 la GPIO15 dispun intern, la nivel hardware, de rezistoare pull-up iar GPIO16 dispune de rezistor pull-down. Atenție că pinul GPIO15, conform schemei, are conectat un rezistor pull-down de unde rezultă că nu poate fi folosit și rezitorul intern pull-up.