/* AnalogWriteSerial.ino 
  https://wokwi.com/projects/395348450321670145
  per https://forum.arduino.cc/t/basic-digitalwriteserial-or-analogwriteserial-arduino-examples/1248538?u=davex

  This example reads characters from the serial port an sets the dimming level of
  the LED with analogWrite().

*/

const int LedPin = 3;

void setup() {
  Serial.begin(115200);
  Serial.println("Enter characters 0 through 9 to control a LED with analogWrite().");
  pinMode(LedPin, OUTPUT);
}

void loop() {
  if (Serial.available()) {
    int ch = Serial.read();
    switch (ch) {
      case '0': analogWrite(LedPin, 0); break;
      case '1': analogWrite(LedPin, 1); break;
      case '2': analogWrite(LedPin, 2); break;
      case '3': analogWrite(LedPin, 4); break;
      case '4': analogWrite(LedPin, 8); break;
      case '5': analogWrite(LedPin, 16); break;
      case '6': analogWrite(LedPin, 32); break;
      case '7': analogWrite(LedPin, 64); break;
      case '8': analogWrite(LedPin, 128); break;
      case '9': analogWrite(LedPin, 255); break;
      default:
        ; // ignore other characters
    }
  }
}