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)
{
    /* io.hpp contains the names of the board input-output devices
     * By typing SW, LE, TS, LD, or AS, it will offer you with the
     * functions you can invoke to read values or use the device
     */
    while(1)
    {
        /* Get sw1 value, and turn on/off led */
        bool sw1_pressed = SW.getSwitch(1);
        if(sw1_pressed) {
            LE.on(1);
        }
        else {
            LE.off(1);
        }

        /* Get temperature using TS (temperature sensor) object */
        int temperature = TS.getFarenheit();

        /* Use LD (LED Display) to display it */
        LD.setNumber(temperature);

        /* Get Acceleration sensor X-axis value */
        int xaxis = AS.getX();
    }

    return 0;
}