// C++ code
//
int potPin=A1; //Pinul analogic A1 este folosit pentru a citi valoarea potențiometrului
int Pin=12; //Pinul digital 12 este folosit pentru a controla LED-ul
int potVal; //Variabilă pentru a stoca valoarea citită de la potențiometru
float LEDVal; //Variabilă pentru a calcula valoarea PWM pentru LED
void setup()
{
pinMode(potPin, INPUT); // Setează pinul A1 ca intrare pentru potențiometru
pinMode(Pin, OUTPUT); // Setează pinul 12 ca ieșire pentru LED
Serial.begin(9600); // Inițializează comunicarea serială la 9600 bps
}
void loop()
{
potVal=analogRead(potPin); // Citește valoarea analogică de la potențiometru (0-1023)
//CAD in Arduino Mega 2560 este pe 10 biti, 2^10=1024 nivele distincte
LEDVal=(255./1023.)*potVal; // Scalează valoarea la un interval de 0-255 pentru PWM
//Transformă valoarea citită (0-1023) într-o valoare adecvată pentru funcția analogWrite (0-255), deoarece PWM-ul pe Arduino acceptă valori în acest interval pentru controlul intensității luminoase.
//LEDVal = map(potVal, 0, 1023, 0, 255);
analogWrite(Pin,LEDVal); // Trimite valoarea PWM către pinul 12 pentru a controla luminozitatea LED-ului
//așteaptă o valoare între 0 și 255 deoarece PWM-ul pe Arduino are o rezoluție de 8 biți (2^8= 256 niveluri distincte).
Serial.println(LEDVal); // Afișează valoarea PWM pe monitorul serial
}