# Input Component Setup Examples

## Supplies for All

![](/files/-MWhI1N2aWOGGzEiTKgw)

## Photoresistor

### Additional Supplies

![](/files/-MWhIBn8X5ZGlYdWn1lh)

### Diagram

![The data (yellow) wire is connected to pin A0 (analog).](/files/-MWhIDiUlHSFUegsrubl)

### Code

This code will print to the Serial Monitor the amount of light detected by the sensor.&#x20;

```cpp
// Sensor pin is connected to pin A0 (analog) on the Arduino circuit board
int sensorPin = 0;

// Define variables
int lightValue;

void setup() {
  // Establish the component connection and its type (output/input)
  pinMode(sensorPin, INPUT);
  
  // Start Serial connection (9600 Baud)
  Serial.begin(9600);
}

void loop() {
  // Read and store light amount
  lightValue = analogRead(sensorPin);

  // Print data to the Serial Monitor every 0.1 seconds
  Serial.print("Light Value: ");
  Serial.println(lightValue);
  delay(100);
}
```

## Ultrasonic Distance Sensor

This sensor works like a bat or a clicker from *The Last of Us* to detect objects and their distance from the sensor using a soundwave pulse outside of human hearing ranges.

### Additional Supplies

![](/files/-MWhIK5qxKwzEw9UCRfB)

### Diagram

![The Trigger (yellow) wire is connected to pin 7 and Echo (green) to pin 6.](/files/-MWhIMQu8U21VpxBsCkL)

### Code

This code will print to the Serial Monitor the distance of an object in front of the sensor.

```cpp
// Trigger pin is connected to pin 6 on the Arduino circuit board
int trigPin = 7;

// Echo pin is connected to pin 7 on the Arduino circuit board
int echoPin = 6;

// Define variables
long duration;    // Holds the duration it takes for the sound to bounce back
int distance;     // Hold the calculated distance

void setup() {
  // Establish the component connection and its type (output/input)
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  
  // Start Serial connection (19200 Baud)
  Serial.begin(19200);
}

void loop() {
  // Clears the trigPin condition (turns it off)
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  // Sets the trigPin to HIGH or active for 10 microseconds then off
  // This is like a "ping" it sends out
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(trigPin, LOW);
  
  // Reads the echoPin value and returns the 
  // sound wave travel time in microseconds
  duration = pulseIn(echoPin, HIGH);

  // Calculates the distance in inches based on the speed of sound
  distance = duration / 74 / 2;

  // Displays the result in the Serial Monitor
  // Will say it's out of range if zero or more than 400 inches (most likely an error)
  
  if (distance >= 400 || distance <= 0){
    Serial.println("Out of range");
  } else {
    Serial.print("Distance: ");
    Serial.print(distance);
    Serial.println(" in.");
  }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hopemoore.gitbook.io/coding-for-creatives-spring-2021/arduino-info/the-setup/input-component-setup-examples.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
