es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo pasar una variable a un tipo const char?

void printLCD(int col, int row , const char *str) {
for(int i=0 ; i < strlen(str) ; i++){
lcd.setCursor(col+i , row);
lcd.print(str[i]);
}
}

void loop(){
lightAmount = analogRead(0);

// Aquí
char buffer[20];
sprintf(buffer, "Light amount: %d", lightAmount );
printLCD(0, 0, buffer);

}

Soy novato en el lenguaje c para un proyecto de Arduino.

Quiero mostrar “Cantidad de luz: 222” en el LCD.

Pero el tercer parámetro en la función “printLCD” solo puede recibir un tipo de cadena, por lo que ocurrió un error.

¿Cómo puedo mostrar una variable y una cadena juntas en el caso anterior?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para mostrar una variable y una cadena juntas en el caso anterior, puedes usar la función sprintf en lugar de printf para almacenar la cadena en un búfer de caracteres. Luego, puedes pasar el búfer de caracteres como tercer parámetro a la función printLCD.

    Aquí está el código modificado:

    void loop(){
      lightAmount = analogRead(0);
    
      char buffer[16];
      sprintf(buffer, "Cantidad de luz: %d", lightAmount);
      printLCD(0, 0, buffer);
    }
    

    En este código, creamos un búfer de caracteres buffer con un tamaño de 16. Utilizamos sprintf para formatear la cadena “Cantidad de luz: %d” con el valor de lightAmount y almacenarlo en el búfer.

    Luego, pasamos el búfer como tercer parámetro a la función printLCD para mostrarlo en el LCD.

    Ten en cuenta que el tamaño del búfer debe ser lo suficientemente grande como para contener la cadena formateada, de lo contrario podría producirse un desbordamiento de búfer.

Comments are closed.