Do you dare to open Pandora’s box? The box stays closed during the daytime, but when night comes it will gradually open and the light inside will glow brighter and brighter.
An analog ambient light sensor with in this Gravity: Stater Kit for Arduino is used to detect the intensity of light outside the box. When the value reaches the limit for the night, the servo will open the box and an inner-led will glow brighter.
Connect the TowerPro SG50 Servo to digital pin 9 of DFRduino UNO (as arduino uno) Connect the Analog Ambient Light Sensor V2 to analog pin 0 Connect the Digital Piranha LED-R to digital pin 3 You can refer to the diagram below for reference:
Be sure that your power, ground and signal corrections are correct or you risk damaging your components. When you have connected the modules and checked your connections, connect the arduino microcontroller to your PC with the USB cable so you can upload a program.
Code Input
#include <Servo.h> Servo myservo; int LED = 3; // Set the LED light to be digital pin 3 int val = 0; // val stores analog ambient light sensor’s value int pos = 0; int light = 0; void setup() { pinMode(LED, OUTPUT); // LED is set to be in the output mode Serial.begin(9600); // Baud rate of the serial port is set to be 9600 myservo.attach(9); // attach the servo to digital pin 9 myservo.write(0); // initial angle is 0}
void loop() { val = analogRead(0); // read the analog ambient light sensor’s value Serial.println(val); // Check sensor value in serial port if (val < 40) { // when val is less than the pre-set value, increase the angle pos = pos + 2; if (pos >= 90) { // The angle should not be more than 90 pos = 90; } myservo.write(pos); // write angle of the servo delay(100); light = map(pos, 0, 90, 0, 255); // As the angle expands, the LED becomes brighter analogWrite(LED, light); // write the brightness value } else { pos = pos - 2; // decrease 2° if (pos <= 0) { pos = 0; // until 0° } myservo.write(pos); // write angle of the servo delay(100); light = map(pos, 0, 90, 0, 255); // As the angle shrinks, the LED light becomes darker analogWrite(LED, light); // write the brightness value } }
Use the sample code to implement the behavior we want. You can copy and paste it in to the Arduino IDE, but if you want to develop you skills we recommend typing it out.
When you have finished, click “Verify” to check the code for syntax errors. If the code verifies successfully, you can upload it to your arduino microcontroller.
Attach the servo on to the hinge of the box so that the arm is able to open it. The ambient light sensor needs to be placed outside the box to detect the ambient lighting. The LED is placed inside the box.
Place the box somewhere dark and check if it opens automatically.
If you have questions about the functions in the sample code, please refer to the previous sessions for details.
We hope these sessions are just the beginning of your robotics journey.
Be creative and have fun playing with your DFRduino and modules. If you need more new and exciting modules, you can get them from the DFRobot Store: https://www.dfrobot.com/
If you would like to share your creations with us or have any questions or comments about these tutorials!
This article takes a closer look at each of these devices, comparing them across key areas like Python support, ease of use, Python programming tools, pin design, and hardware projects.
Deciding between Scratch and Python for your child's coding journey? This article compares both languages based on learning background, goals, methods, and difficulty.