Print data from serial to LCD

Hello Guys,
I am developing a project to build some home cockpit components to be used with X-Plane, a famous flight model simulator.
I have written a Python plugin that takes live data from X-Plane and send it to my Arduino UNO by serial.
Here you can see a bit of code:

#!/usr/bin/python2

from XPLMDataAccess import *
from XPLMProcessing import *

import serial


class PythonInterface:
	def XPluginStart(self):
		# Inizializzazione plugin con dati di riferimento
		self.Name="TestPlugin"
		self.Sig="Python.Test"
		self.Desc="A test plugin"
		
		# Ricerca dei dataref
		self.com_1=XPLMFindDataRef("sim/cockpit/radios/com1_freq_hz")
				
		# Richiamo periodico funzione Callback con un timer
		self.FlightLoopCB=self.FlightLoopCallback
		XPLMRegisterFlightLoopCallback(self, self.FlightLoopCB, 0.5 , 0)
		
		# Apertura comunicazione con Arduino
		self.arduino = serial.Serial('/dev/ttyACM0', 9600)

		return self.Name, self.Sig, self.Desc

	def XPluginStop(self):
		# Chiudiamo la nostra funzione di Callback
		XPLMUnregisterFlightLoopCallback(self, self.FlightLoopCB, 0)

		# Chiudiamo la comiunicazione con Arduino
		self.arduino.close() 
		pass

	def XPluginEnable(self):
		return 1

	def XPluginDisable(self):
		pass

	def XPluginReceiveMessage(self, inFromWho, inMessage, inParam):
		pass
	def FlightLoopCallback(self, elapsedMe, elapsedSim, counter, refcon):
		# funzione che viene eseguita continuamente
		com_1=XPLMGetDatai(self.com_1)
		print(com_1)
		self.arduino.write((com_1)) 
		return 0.3

Then this info (in this case the COM1 frequency of the radio in use) should be displayed in the LCD but here the problems come.

Here is my Arduino scketch:

#include <LiquidCrystal.h>  

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  
  
void setup() {  
  Serial.begin(9600);
  lcd.begin(16, 2);  
  lcd.print("COM1 Freq!");  
}  
  
void loop() {  
  if (Serial.available()){
     delay(100);
     char c = Serial.read();
     lcd.setCursor(0,1); 
     lcd.print(c);}
}

But there is no way to print the frequency number, it display sometimes only a number, and not, for example 11920.
Thanks for your help!

char c = Serial.read(); lcd.setCursor(0,1); lcd.print(c);

This only prints ONE character at 0,1 over and over again as the loop iterates and a character is available.

Do you have any recommendation?

You can start by moving the lcd.setCursor(0,1); statement from loop() to the end of setup(). This will let you see whether you are getting the correct information.

Don

Thanks floresta, I will change it tomorrow and give a feedback!