Robotics & Arduino
Basics

PWN - wave

A brightness counter and a direction flag. Open Serial Monitor at 9600 baud.

Touched: wave pin 9. Not touched: blink pin 13.

const int TOUCH_SENSOR_PIN = 2;
const int LED_1_PIN = 13;
const int LED_2_PIN = 9;

int brightness = 0;
bool goingUp = true;

void setup() {
  pinMode(TOUCH_SENSOR_PIN, INPUT);
  pinMode(LED_1_PIN, OUTPUT);
  pinMode(LED_2_PIN, OUTPUT);

  digitalWrite(LED_1_PIN, LOW);
  Serial.begin(9600);
}

void loop() {
  Serial.println(digitalRead(TOUCH_SENSOR_PIN));

  if (digitalRead(TOUCH_SENSOR_PIN) == HIGH) {
    raiseBrightness();
  } else {
    blinkLed(LED_1_PIN, LED_2_PIN);
  }
}

void raiseBrightness() {
  

  if (goingUp) {
    brightness = brightness + 5;
  } else {
    brightness = brightness - 5;
  }

  if (brightness >= 20) {
    goingUp = false;
  }

  if (brightness <= 0) {
    goingUp = true;
  }

  Serial.print("brightness = ");
  Serial.println(brightness);

  analogWrite(LED_2_PIN, brightness);
  delay(500);
}

void blinkLed(int blinkingLed, int otherLed) {
  digitalWrite(otherLed, LOW);

  digitalWrite(blinkingLed, HIGH);
  delay(500);
  digitalWrite(blinkingLed, LOW);
  delay(500);
}

Hit ✓ Check → Hit → Upload → Touch the sensor.

0 → 20 → 0 · Steps of 5 · 500 ms