Grace Skills Dev II: Button & Photoresistor
Made by Grace Zhu
Made by Grace Zhu
The goal is to practice making a 2-in (sensors or inputs) 1-out (LED) device.
Created: November 6th, 2024
The goal of the project is to learn about sensors and practice making a 2-in 1-out device. I selected to learn about using push button and photoresistor to control an LED .
int ledPin = D1;
// Our button wired to D0
int buttonPin = D3;
int photoCellPin = A0;
int photoCellReading = 0;
int ledBrightness = 0;
void setup()
{
// For input, we define the
// pushbutton as an input-pullup
// this uses an internal pullup resistor
// to manage consistent reads from the device
pinMode( buttonPin , INPUT_PULLUP); // sets pin as input
// We also want to use the LED
pinMode( ledPin , OUTPUT ); // sets pin as output
// Create a cloud variable of type integer
// called 'light' mapped to photoCellReading
Particle.variable("light", &photoCellReading, INT);
}
void loop()
{
// find out if the button is pushed
// or not by reading from it.
int buttonState = digitalRead( buttonPin );
Serial.println(buttonState);
// remember that we have wired the pushbutton to
// ground and are using a pulldown resistor
// that means, when the button is pushed,
// we will get a LOW signal
// when the button is not pushed we'll get a HIGH
// let's use that to set our LED on or off
if( buttonState == LOW )
{
// turn the LED On
digitalWrite( ledPin, HIGH);
// Use analogRead to read the photo cell reading
// This gives us a value from 0 to 4095
photoCellReading = analogRead(photoCellPin);
// Map this value into the PWM range (0-255)
// and store as the led brightness
ledBrightness = map(photoCellReading, 2000, 4095, 0, 255);
// fade the LED to the desired brightness
analogWrite(ledPin, 255 - ledBrightness);
// wait 1/10th of a second and then loop
delay(100);
}else{
// otherwise
// turn the LED Off
digitalWrite( ledPin, LOW);
}
}
Click to Expand
The goal is to practice making a 2-in (sensors or inputs) 1-out (LED) device.