Посмотрите на вашу переменную lightVal. Обратите внимание, что он состоит из двух частей. Существует первая часть:
int lightVal;
, которая определяет переменную. Эта строка сообщает компилятору о том, что переменная с именем lightVal существует и что это за переменная (в данном случае int). Когда вы получаете переменную «не объявлено в этой области», это обычно означает, что вы не сделали этот шаг или что вы сделали это в другой области.
Во второй части вы задали для своей переменной значение в этой строке:
lightVal = analogRead(PhotoresistorPin);
Здесь вы говорите, что lightVal должно равняться. Вы получаете число от аналогового датчика и присваиваете это значение своей переменной.
Вы можете иногда выполнять оба шага в одной строке, но этот первый шаг, сообщающий компилятору, что такая переменная существует, важен. Вы не можете попытаться что-то сделать с переменной, прежде чем сообщить компилятору, что она существует.