Using Grove-Rotary Angle Sensor(P) to Control Grove LED © GPL3+

Using Arduino/Genuino 101 to control the brightness of an LED through Grove-Rotary Angle Sensor(P) .

  • 143 views
  • 0 comments
  • 2 respects

Components and supplies

About this project

This is a project which shows the simple plug-and-play feature of the Grove starter kit. In this project, the Grove Rotary Angle Sensor is used to control the brightness of the LED socket kit.

Schematics

connecting Grove -Rotary Angle Sensor(P)
it shows on which pin (A0) you have to connect the Grove -Rotary Angle Sensor(P) to the Grove Base shield which is mounted on Arduino 101 .
Img 20171107 180829 dtcxsvzq2a
connecting Grove -LED socket kit
it shows on which pin (D2) you have to connect the Grove -LED socket kit to the Grove Base shield which is mounted on Arduino 101 .
Img 20171107 181010 x4tznkvhda
Full Set Up of the Project
this is how the final project look like
Img 20171107 181107 8xdrkbtpqr

Code

code for the projectC/C++
/*macro definitions of Rotary angle sensor and LED pin*/
    #define ROTARY_ANGLE_SENSOR A0
    #define LED 2//the Grove - LED is connected to D3 of Arduino
    #define ADC_REF 5//reference voltage of ADC is 5v.If the Vcc switch on the seeeduino
                     //board switches to 3V3, the ADC_REF should be 3.3
    #define GROVE_VCC 5//VCC of the grove interface is normally 5v
    #define FULL_ANGLE 300//full value of the rotary angle is 300 degrees
    void setup() 
    {
        Serial.begin(9600);
        pinsInit();
    }

    void loop() 
    {
        int degrees;
        degrees = getDegree();
        Serial.println("The angle between the mark and the starting position:");
        Serial.println(degrees);

        int brightness;
        /*The degrees is 0~300, should be converted to be 0~255 to control the*/
        /*brightness of LED                                                   */
        brightness = map(degrees, 0, FULL_ANGLE, 0, 255); 
        controlBrightness(brightness);

        delay(500);
    }
    void pinsInit()
    {
        pinMode(ROTARY_ANGLE_SENSOR, INPUT);
        pinMode(LED,OUTPUT);
    }

    /*PWM control brightness                        */
    /*If brightness is 0,the LED is off.            */
    /*The Greater the brightness, the brighter the LED.*/
    /*The range of brightness is 0~255              */
    void controlBrightness(int brightness)
    {
        analogWrite(LED,brightness);
    }
    /************************************************************************/
    /*Function: Get the angle between the mark and the starting position    */
    /*Parameter:-void                                                       */
    /*Return:   -int,the range of degrees is 0~300                          */
    int getDegree()
    {
        int sensor_value = analogRead(ROTARY_ANGLE_SENSOR);
        float voltage;
        voltage = (float)sensor_value*ADC_REF/1023;
        float degrees = (voltage*FULL_ANGLE)/GROVE_VCC;
        return degrees;
    }

Comments

Similar projects you might like

Magic Lamp

by Nekhil ravi

  • 992 views
  • 3 comments
  • 12 respects

PuzzleBox

Project tutorial by Arduino

  • 205 views
  • 0 comments
  • 1 respect

Arduino MKR GSM 1400 and DTMF

by Arduino_Genuino

  • 3,871 views
  • 0 comments
  • 9 respects

Love You Pillow

Project tutorial by Arduino

  • 2,447 views
  • 0 comments
  • 5 respects

Infrared Replicator

Project tutorial by Gustavo Gonnet

  • 3,836 views
  • 6 comments
  • 26 respects

Arduino Yun Controller

Project showcase by TATCO Inc

  • 134 views
  • 0 comments
  • 3 respects
Add projectSign up / Login