Translate

sábado, 31 de dezembro de 2016

Blink no ESP8266 ESP-12F via CH340G


Outro post para lembrar posteriormente como fazer algumas coisas bem básicas.

Tentei utilizar o exemplo Blink do esp8266 no Arduino IDE sem sucesso. Tinha até abandonado a tentativa alguns meses atrás, então resolvi ir até o fim. Simplesmente o exemplo não funciona no ESP-12F, e através de um exemplo da URL iot-playground.com, descobri que era simples cumprir, fazendo alguns testes adicionais. Lembrando que utilizo o CH340G mencionado em  utilizando-o-firmware-nodemcu-com-lua.

Desta vez utilizei o Arduino IDE 1.8.0. Complementarmente as instruções de programando-esp8266-esp-01-esp-12-com-Arduino-IDE-via-CP2102, existem algumas configurações que podem complicar, se não forem feitas corretamente. Seguindo a configuração no último endereço citado, no item "Configurando o Arduino IDE 1.6.7", verificar se coincide também com a figura abaixo:


No exemplo Blink do ESP8266, devemos alterar todos os LED_BUILTIN do código por 2. No ESP-12F, o programa funcionará no LED de RX. Provavelmente funcionará nas outras versões o ESP8266, pois no exemplo que consultei foi utilizado o ESP-01.


Original:

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);     // Initialize the LED_BUILTIN pin as an output
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, LOW);   // Turn the LED on (Note that LOW is the voltage level
                                    // but actually the LED is on; this is because 
                                    // it is acive low on the ESP-01)
  delay(1000);                      // Wait for a second
  digitalWrite(LED_BUILTIN, HIGH);  // Turn the LED off by making the voltage HIGH
  delay(2000);                      // Wait for two seconds (to demonstrate the active low LED)
}
Modificado:

void setup() {
  pinMode(2, OUTPUT);     // Initialize the LED_BUILTIN pin as an output
//Serial.begin(115200);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(2, LOW);   // Turn the LED on (Note that LOW is the voltage level
                          // but actually the LED is on; this is because 
                          // it is acive low on the ESP-01)
  delay(1000);            // Wait for a second
  digitalWrite(2, HIGH);  // Turn the LED off by making the voltage HIGH
  delay(2000);            // Wait for two seconds (to demonstrate the active low LED)

//Serial.print(LED_BUILTIN);
}
Existem 2 linhas comentadas para mostrar qual o valor de LED_BUILTIN. No meu teste, mostrou "1". Quando utilizei o original, testei todas as portas, mas não achei qual delas correspondia.

Adição posterior: D1 é a porta TX0; dependendo do modelo, muda o valor de LED_BUILTIN (se não me engano, nesse modelo que testei é o D15)

Utilizando a porta 2 no código, a porta ativada é a GPIO02.

NÃO ESQUEÇA QUE PARA FAZER O UPLOAD DO PROGRAMA PARA O ESP-12F, O BOTÃO FLASH DEVE SER MANTIDO APERTADO DURANTE TODA A CARGA.

Adição posterior: aprendi que o NODEMCU 1.0 não precisa estar com o FLASH apertado para o upload

Para este programa, o microcontrolador continua a funcionar normalmente mesmo com o botão Flash apertado.