#include < Arduino.h >
const int potPin = A0; // Potentiometer pin
const int triacPin = 9; // Triac control pin
const int zeroCrossPin = 2; // Zero-cross detection pin
volatile int i = 0; // Variable to use as a volatile flag
int lastValue = 0;
volatile boolean zeroCrossed = false;
void setup() {
pinMode(triacPin, OUTPUT);
pinMode(zeroCrossPin, INPUT);
attachInterrupt(digitalPinToInterrupt(zeroCrossPin), zeroCrossISR, FALLING);
}
void loop() {
int potValue = analogRead(potPin);
int dimLevel = map(potValue, 0, 1023, 75, 5);
if (zeroCrossed) {
zeroCrossed = false;