IntelŽ Edison Hands-on Day 3: Light dimmer
IntelŽ Edison Hands-on Day 3: Light dimmer
IntelŽ Edison Hands-on Day 3: Light dimmer
IntelŽ Edison Hands-on Day 3: Light dimmer
IntelŽ Edison Hands-on Day 3: Light dimmer

Light dimmers are devices used to vary the brightness of

a light. Through a rotation sensor, we can tune the intensity of the light output. More you rotate the knob, the brighter the LED will be. So let’s try to make a dimmer by ourselves.

Rotation sensor can be applied in various kinds of application, such as the servo controlling, DC motor speed controlling and etc.

Component required

  • 1- Digital piranha LED light module
  • 1- Analog Rotation Sensor
  • 1- IO Expansion Shield
  • 1- IntelŽ Edison with Arduino Breakout Kit

    Step 1: Connection

    IntelŽ Edison Hands-on Day 3: Light dimmer

    Analog Rotation Sensor - Analog Pin 0

    Digital piranha LED light module - Digital Pin 9

    Step 2: Coding

    // light dimmer

    int potPin = 0; // Analog Rotation Sensor connected to Analog Pin 0

    int ledPin = 9; //LED connected to Digital Pin 9

    void setup() {

    pinMode(ledPin, OUTPUT);

    }

    void loop() {

    int sensorValue = analogRead(potPin); //Read value from Analog Rotation Sensor

    // Shrink the value range from 0~1023 to 0~255 via map() function

    int outputValue = map(sensorValue, 0, 1023, 0, 255);

    analogWrite(ledPin, outputValue); //Write the LED

    delay(2);

    }

    Slowly rotate the knob, and you can see the varying brightness.

    Step 3: Principle(Analog Input—Analog Output)

    IntelŽ Edison Hands-on Day 3: Light dimmer

    Analog Rotation Sensor acts as an input device, while the PWM output controls the brightness of the LED.

    Step 4: Coding review

    Let’s talking about the map() function

    This is the format of the map() function:

    map(value, fromLow, fromHigh, toLow, toHigh)

    Re-maps a number from one range to another. That is, a value of fromLow would get mapped to toLow, a value of fromHigh to toHigh, values in-between to values in-between, etc.

    Parameters of map():

    value:the number to map

    fromLow:the lower bound of the value's current range

    fromHigh:the upper bound of the value's current range

    toLow:the lower bound of the value's target range

    toHigh:the upper bound of the value's target range

    Note that the "lower bounds" of either range may be larger or smaller than the "upper bounds" so the map() function may be used to reverse a range of numbers, for example

    y = map(x, 1, 50, 50, 1);

    The function also handles negative numbers well, so that this example

    y = map(x, 1, 50, 50, -100);

    Turning back to our example,

    int outputValue = map(sensorValue, 0, 1023, 0, 255);

    What we want is to Shrink the value range from 0~1023(from analog value) to 0~255(to PWM output)

  •  
     

    Tag cloud

    make build easy simple arduino making homemade solar laser printed portable cheap mini building custom cardboard wooden create super lego turn paracord chocolate your paper light intel