Und an den Fehlfunktionen hat sich nichts geändert, oder?
Was Op1 betrifft ist's klar - Du schreibst mit digitalWrite(ledPin, ledState); auf die rote LED, also geht diese auch an. Vermutlich wolltest Du da eher ein digitalWrite(camPin, ledState); drin haben.
Auch das wäre mit ausführlicherer Namensgebung (z.B. "ledRedPin") sofort aufgefallen.
Was Du bei Op2 treiben willst ist mit ehrlich gesagt nicht so klar. Allerdings ist's schonmal unsauber daß Du den 10bit-Wert des ADCs mit dem 8bit-Wert für PWM vermischst. Um das Problem zu beseitigen würde ich den Sensorwert schon beim Einlesen nach 8bit umformen mitAußerdem ist wohl die Reihenfolge von Codezeilen verrutscht. Die letzten beiden Befehle dort (map, constrain) sind wirkungslos. Sie verändern die Variable lightLevel und die nächste Operation mit dieser erfolgt beim nächsten Funktionseintritt - dort wird sie aber gleich wieder mit dem Sensorwert überschrieben bevor sie irgendetwas bewirkt hat.Code:lightLevel = analogRead(sensorPin) >> 2;
Womöglich hilft's schon die ersten beiden Zeilen der Funktion (lightLevel =... und analogWrite...) zu vertauschen.