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) .

  • 662 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.

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;
    }

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

Comments

Similar projects you might like

Arduino Bluetooth Basic Tutorial

by Mayoogh Girish

  • 456,048 views
  • 44 comments
  • 242 respects

Home Automation Using Raspberry Pi 2 And Windows 10 IoT

Project tutorial by Anurag S. Vasanwala

  • 285,722 views
  • 95 comments
  • 672 respects

Security Access Using RFID Reader

by Aritro Mukherjee

  • 231,178 views
  • 38 comments
  • 241 respects

OpenCat

Project in progress by Team Petoi

  • 197,595 views
  • 154 comments
  • 1,373 respects
Add projectSign up / Login