Problem AC Light Dimmer with Another Components

I use AC light dimmer to set the motor 110v speed. I made an app to set the motor to off, on, have low speed, medium, and high via bluetooth using APP Inventor. In addition to the AC light dimmer, I use several components to monitor the temperature of some system, such as LCD, DS18B20 and data logger.
Initially, before the AC light dimmer was given a voltage of 110v, on-off on the relay module (on-off using the application) and other components went well. But when the AC light dimmer is given a voltage of 110v, the on-off and the speed regulator can not be used and other components especially LCD displays strange symbols.
Is the AC light dimmer unable to work with other components? Or is there an error on the coding I made? here is my coding.

//Program untuk temperature sensor
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 32
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

//Program untuk bluetooth module
#include <SPI.h>
#include <SoftwareSerial.h>
#include <Arduino.h>
#include "HC05.h"
SoftwareSerial bluetooth(62, 61);

//Program untuk LCD keypad
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int lcd_key     = 0;
int adc_key_in  = 0;
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5
int read_LCD_buttons()
{
 adc_key_in = analogRead(0);
 if (adc_key_in > 1000) return btnNONE;
 if (adc_key_in < 50)   return btnRIGHT;  
 if (adc_key_in < 250)  return btnUP; 
 if (adc_key_in < 450)  return btnDOWN; 
 if (adc_key_in < 650)  return btnLEFT; 
 if (adc_key_in < 850)  return btnSELECT;  
}

//Program untuk data logger
#include <SD.h>
#include <Wire.h>
#include <SPI.h>
#include "RTClib.h"
const int chipSelect = 10;
File dataFile;
RTC_DS1307 rtc;
char daysOfTheWeek [7][12]={"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jum'at", "Sabtu"};

float t1, t2, t3, t4, t5, t6, t7;
float t1f, t2f, t3f, t4f, t5f, t6f,t7f;
int AC_LOAD = 3;    // Output to Opto Triac pin
int dimming = 128;  // Dimming level (0-128)  0 = ON, 128 = OFF

void setup(void)
{
  Wire.begin();
  Serial.begin(9600);
  bluetooth.begin(9600);
  sensors.begin();
  pinMode(AC_LOAD, OUTPUT);   // Set the AC Load as output
  attachInterrupt(0, zero_crosss_int, RISING);
  pinMode(36, OUTPUT);
  lcd.begin(16,2);

//program data logger
  pinMode(53, OUTPUT);
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed");
    return;
    more: while (1);
  }
  Serial.println("Card initialized");
  dataFile = SD.open("data2.csv", FILE_WRITE);
  if (!rtc.begin()) 
  {
    Serial.println("Couldn't find RTC");
    while (1); 
  if (!rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); }
  }
  
  dataFile.print("Hari,Tanggal,Waktu,T. Out Kompresor,T. Out Kondenser,T. Out Ekspansi,T. Kabin,T. Lingkungan,T. Brine,T. Out Evaporator");
  
}

void zero_crosss_int()  // function to be fired at the zero crossing to dim the light
{
  // Firing angle calculation :: 50Hz-> 10ms (1/2 Cycle)
  // (10000us - 10us) / 128 = 75 (Approx)
  int dimtime = (75*dimming);      
  delayMicroseconds(dimtime);    // Off cycle
  digitalWrite(AC_LOAD, HIGH);   // triac firing
  delayMicroseconds(10);         // triac On propogation delay
  digitalWrite(AC_LOAD, LOW);    // triac Off
}

void loop(void)
{ 
//Program pembacaan temperatur
  sensors.requestTemperatures(); 
  t1=sensors.getTempCByIndex(0);
  t2=sensors.getTempCByIndex(1);
  t3=sensors.getTempCByIndex(2);
  t4=sensors.getTempCByIndex(3);
  t5=sensors.getTempCByIndex(4);
  t6=sensors.getTempCByIndex(5);
  t7=sensors.getTempCByIndex(6);

//Program kalibrasi temperatur
  t1f=(0.9932*(sensors.getTempCByIndex(0)))-0.14;
  t2f=(1.0445*(sensors.getTempCByIndex(1)))-2.5322;
  t3f=(1.0107*(sensors.getTempCByIndex(2)))-1.2825;
  t4f=(1.0255*(sensors.getTempCByIndex(3)))-1.3416;
  t5f=(1.0004*(sensors.getTempCByIndex(4)))-0.528;
  t6f=(1.0445*(sensors.getTempCByIndex(5)))-0.9981;
  t7f=(1.0087*(sensors.getTempCByIndex(6)))-1.1997;
  
//Program tampilan temperatur pada serial monitor
  Serial.println("Temperature1"); Serial.println(t1f);
  Serial.println("Temperature2"); Serial.println(t2f);
  Serial.println("Temperature3"); Serial.println(t3f);
  Serial.println("Temperature4"); Serial.println(t4f);
  Serial.println("Temperature5"); Serial.println(t5f);
  Serial.println("Temperature6"); Serial.println(t6f);
  Serial.println("Temperature7"); Serial.println(t7f);

//Program pengiriman data dari arduino ke hp
  bluetooth.println("test"); bluetooth.print("/");
  bluetooth.println(t1f); bluetooth.print("/");
  bluetooth.println(t2f); bluetooth.print("/");
  bluetooth.println(t3f); bluetooth.print("/");
  bluetooth.println(t4f); bluetooth.print("/");
  bluetooth.println(t5f); bluetooth.print("/");
  bluetooth.println(t6f); bluetooth.print("/");
  bluetooth.println(t7f); bluetooth.print("/");
  
  SD_baca();
  LCDdisplay();
  dimmer();
}

void SD_baca()
{
  dataFile = SD.open("data2.csv", FILE_WRITE);
  if (dataFile) {
  DateTime now = rtc.now();
    dataFile.print(daysOfTheWeek[now.dayOfTheWeek()]);
    dataFile.print(",");
    dataFile.print(now.day(), DEC);
    dataFile.print("/");
    dataFile.print(now.month(), DEC);
    dataFile.print("/");
    dataFile.print(now.year(), DEC);
    dataFile.print(',');
    dataFile.print(now.hour(), DEC);
    dataFile.print(':');
    dataFile.print(now.minute(), DEC);
    dataFile.print(':');
    dataFile.print(now.second(), DEC);
    dataFile.print(',');
    dataFile.print(t1f);
    dataFile.print(',');
    dataFile.print(t2f);
    dataFile.print(',');
    dataFile.print(t3f);
    dataFile.print(',');
    dataFile.print(t4f);
    dataFile.print(',');
    dataFile.print(t5f);
    dataFile.print(',');
    dataFile.print(t6f);
    dataFile.print(',');
    dataFile.print(t7f);
    dataFile.print(',');
    dataFile.println();
    dataFile.flush();
    delay(100);
    Serial.println("Data stored");
  }
  
  else {
    Serial.println("Error opening file");
  }
}

void LCDdisplay()
{ 
//Program tampilan LCD
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("T1= ");
  lcd.print(t1f); lcd.print(char(223)); lcd.print("C");
  lcd.setCursor(0,1);
  lcd.print("T2= ");
  lcd.print(t2f); lcd.print(char(223)); lcd.print("C");
  //delay(5000);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("T3= ");
  lcd.print(t3f); lcd.print(char(223)); lcd.print("C");
  lcd.setCursor(0,1);
  lcd.print("T4= ");
  lcd.print(t4f); lcd.print(char(223)); lcd.print("C");
  //delay(5000);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("T5= ");
  lcd.print(t5f); lcd.print(char(223)); lcd.print("C");
  lcd.setCursor(0,1);
  lcd.print("T6= ");
  lcd.print(t6f); lcd.print(char(223)); lcd.print("C");
  //delay(5000);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("T7= ");
  lcd.print(t7f); lcd.print(char(223)); lcd.print("C");
  //delay(5000);
}

void dimmer()
{
  if (bluetooth.available()>0)
  {
  char data = bluetooth.read();
    switch(data)
    {
      case 'a' : digitalWrite(36, HIGH);
      break;
      case 'b' : digitalWrite(36, LOW);
      break;
      case 'l' : dimming = 96;
      break;
      case 'm' : dimming = 64; 
      break;
      case 'h' : dimming = 10;
      break;
      default : 
      break;
    }
  }
}

Also, can I set the delay just for the LCD? Because when I upload those coding, every component was delayed.
Thank you so much :wink: