lcd display with esp32: GPIO output gpio_num error

60 views Asked by At

i'm building my first project with esp32, a quiz game using an api. I've done with success the request to the api and i can print the question and other data on the serial monitor, but when I try to print the question on the lcd display i get this error: gpio: gpio_set_level(227): GPIO output gpio_num error.

I'm using the esp-wroom-32 with 38 pins, with platformio. i connected vdd and a to 5v, vss, rw and k to ground, vo to ground via 2k resistor, rs to 34, e to 35, d4 to 32, d5 to 23, d6 to 25 and d7 to 26.

this is the complete code:

#include <Arduino.h>

#include <ArduinoJson.h>
#include <HTTPClient.h>
#include <WiFi.h>

#include <LiquidCrystal.h>

const char *ssid = "myssid";
const char *password = "mypwd";

String payload;

const int rs = 34, en = 35, d4 = 32, d5 = 23, d6 = 25, d7 = 26;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  Serial.begin(9600);

  lcd.begin(16, 2);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
  }

  HTTPClient http;
  http.begin("https://opentdb.com/api.php?amount=10&type=multiple");

  int httpCode = http.GET();
  if (httpCode > 0) {
    if (httpCode == HTTP_CODE_OK) {
      payload = http.getString();

      DynamicJsonDocument doc(1024);
      deserializeJson(doc, payload);

      JsonArray results = doc["results"];

      for (int i = 0; i < results.size(); i++) {
        JsonObject result = results[i];

        String question = result["question"];
        String correctAnswer =
            result["correct_answer"];
        JsonArray incorrectAnswers =
            result["incorrect_answers"];

        lcd.setCursor(0, 1);
        lcd.print(question);

        while (1) {
        }
      }
    }
  }
}

void loop() {}

i also tried to use GPIO_NUM_ costants, but it didn't work. if i put a serial.println in the for loop, it prints correctly the questions in the serial monitor:

for (int i = 0; i < results.size(); i++) {
        JsonObject result = results[i];

        String question = result["question"];
        String correctAnswer =
            result["correct_answer"]; // una risposta corretta
        JsonArray incorrectAnswers =
            result["incorrect_answers"]; // tre risposte incorrette

        lcd.setCursor(0, 1);
        // lcd.print(question);
        // while (1) {
        //}

        Serial.println("Domanda: " + question);
        Serial.println("Risposta corretta: " + correctAnswer);
        Serial.println("Risposte errate:");
        for (int j = 0; j < incorrectAnswers.size(); j++) {
          Serial.println("- " + incorrectAnswers[j].as<String>());
        }
      }

the output is

E (2719) gpio: gpio_set_level(227): GPIO output gpio_num error
E (2785) gpio: gpio_set_level(227): GPIO output gpio_num error
E (2852) gpio: gpio_set_level(227): GPIO output gpio_num error
connessione...
connesso!
E (9207) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9208) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9208) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9274) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9341) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9407) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9474) gpio: gpio_set_level(227): GPIO output gpio_num error
Domanda: Just Cause 2 was mainly set in what fictional Southeast Asian island country?
Risposta corretta: Panau
Risposte errate:
- Davao
- Macau
- Palau
E (9787) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9787) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9840) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9906) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9973) gpio: gpio_set_level(227): GPIO output gpio_num error
E (10040) gpio: gpio_set_level(227): GPIO output gpio_num error
E (10107) gpio: gpio_set_level(227): GPIO output gpio_num error
Domanda: What name did &quot;Mario&quot;, from &quot;Super Mario Brothers&quot;, originally have?
Risposta corretta: Ossan
Risposte errate:
- Jumpman
- Mr. Video
- Mario
E (10421) gpio: gpio_set_level(227): GPIO output gpio_num error
E (10426) gpio: gpio_set_level(227): GPIO output gpio_num error
E (10494) gpio: gpio_set_level(227): GPIO output gpio_num error

and it continues with the errors.

any solution??

0

There are 0 answers