# Skills Dev II: Working with Inputs and Sensors

Made by Ponn Thanasathit

The objective is to create a working LED circuit that is controlled by 3 inputs, a photoresistor, a potentiometer, and a switch. This circuit is a simplified version of a street lamp, which will be automatically turned on when the light is out. In addition to the basic street lamp feature, I've added a switch to turn it on and off and a potentiometer to adjust the brightness.

Created: November 5th, 2022

0

0

0

## Reflect on the process of making this project. What did you learn? What would you do differently?This was a very fun project and I learned a lot. I could have spent more time reinventing the finished product but I tried to reutilize all the components that were used in the prior exercises.

0
``````// Exercise 2

// Define a pin that we'll place the pot on
int potPin = A5;

// Create a variable to hold the pot reading
int potReading = 0;

// Define a pin we'll place an LED on
int ledPin = D3;

// Create a variable to store the LED brightness.
int ledBrightness = 0;

// Our button wired to D3
// We wire D0 to the middle terminal on the switch
// And any of the two other terminals to ground
int switchPin = D4;

// Define a pin that we'll place the photo cell on
// Remember to add a 10K Ohm pull-down resistor too.
int photoCellPin = A0;

// Create a variable to hold the light reading
int photoCellReading = 0;

//
void setup(){

// Set up the LED for output
pinMode(ledPin, OUTPUT);

// sets pin as input
pinMode(switchPin , INPUT_PULLUP);

// Create a cloud variable of type integer
// called 'light' mapped to photoCellReading

// Create a cloud variable of type integer
// called 'light' mapped to photoCellReading

}

void loop() {
// This gives us a value from 0 to 4095
int buttonState = digitalRead( switchPin );
ledBrightness = map(photoCellReading, 0, 4095, 0, 255);

// fade the LED to the desired brightness
//   analogWrite(ledPin, ledBrightness);

if( buttonState == LOW )
{

// turn it on or off when the light reaches certain levels.
if( photoCellReading <= 600 )
{
// turn the LED On
digitalWrite( ledPin, HIGH);
// This gives us a value from 0 to 4095

// Map this value into the PWM range (0-255)
// and store as the led brightness
ledBrightness = map(potReading, 0, 4095, 0, 255);

// fade the LED to the desired brightness
analogWrite(ledPin, ledBrightness);

}else{
// otherwise
// turn the LED Off
digitalWrite( ledPin, LOW);
}
}else{
// otherwise
// turn the LED Off
digitalWrite( ledPin, LOW);
}
}``````
Click to Expand