ES101 - Lesson 10 : Board IO

From Embedded Systems Learning Academy
Jump to: navigation, search

For this assignment, reference the following articles :

Assignment

  1. If Switch #1 is pressed, light up LED #1, else turn LED #1 off
  2. If Switch #2 is pressed, display Light Sensor percentage on 7-Segment LED Display
    • Note that maximum light sensor value is 4096, calculate the percent first, then display on LED Display
    • LED Display can only display 2 digits
  3. If Switch #3 is pressed, display temperature in Fahrenheit on 7-Segment LED Display
  4. If Switch #4 is pressed, display Acceleration Sensor's X-Axis percentage on 7-Segment LED Display
    • Note that minimum value is -1024 and maximum value is +1024.
    • You can add 1024 to this value, then calculate percentage by ((X-Axis+1024)/ 2048) * 100
  5. The points for this assignment depends on how much you add to the program. For example, you can take advantage of the acceleration sensor's Y and Z axis and make the board more interactive. If you have a remote control with you, you can even take advantage of reading IR code received by the board, and light up some LEDs.
  6. Have fun! and play around with Board IO. Your projects depend on the creativity using these boards.

Sample Code

#include <stdio.h>
#include "utilities.h"  // delay_ms()
#include "io.hpp"       // board IO

int main(void)
{
    // Just by typing Board IOname, such as : "AS"
    // should give you functions you can invoke of Acceleration Sensor
    // See the reference assignment link above.
    // Also open up io.hpp to get list of names of Board IO
    while(1)
    {
        // Get the value of the switch by using SW object
        bool switch_one = SW.getSwitch(1);

        // Light up an LED by using LE object
        if(switch_one) {
            LE.on(1);
        }

        // Get temperature using TS object
        int temperature = TS.getCelsius();

        // Display on LED display using LD object
        LD.setNumber(temperature);

        // Read the documentation to complete the rest of the assignment.
    }

    return 0;
}