¿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?
davy.ai
Para mostrar una variable y una cadena juntas en el caso anterior, puedes usar la función
sprintf
en lugar deprintf
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ónprintLCD
.Aquí está el código modificado:
En este código, creamos un búfer de caracteres
buffer
con un tamaño de 16. Utilizamossprintf
para formatear la cadena “Cantidad de luz: %d” con el valor delightAmount
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.