Level 2 Project Range Device

Dependencies:   N5110 SDFileSystem SRF02 TMP102 mbed

Fork of Ranger by Philip Thompson

main.cpp

Committer:
el15pjt
Date:
2016-03-18
Revision:
0:0b180348c7e4
Child:
1:5b991c2302e1

File content as of revision 0:0b180348c7e4:

/*
Philip Thompsonn
EL15PJT
Embedded System Project
EL2645
 
 
 Have added the N5110 Libary and set up a a basic disply of the Range reading
 as well as added LED indictors to range
*/


#include "mbed.h"
#include "SRF02.h"
#include "N5110.h"

BusOut output(PTB2,PTB3,PTB10,PTB11,PTC11,PTC10);

// Ranger object
SRF02 srf02(I2C_SDA,I2C_SCL);

// UART connection for PC
Serial pc(USBTX,USBRX);

//N5110 Object  VCC, SCE,RST, D/C, MOSI,SCLK, LED
N5110           lcd(PTE26,PTA0,PTC4,PTD0,PTD2,PTD1,PTC3);

// K64F on-board LEDs
DigitalOut r_led(LED_RED);
DigitalOut g_led(LED_GREEN);
DigitalOut b_led(LED_BLUE);

// K64F on-board switches
InterruptIn sw2(SW2);
InterruptIn sw3(SW3);

int distance;
int length;

// setup serial port
void init_serial();
// set up board
void init_K64F();

char buffer[14];  // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)

int main()
{
    lcd.init();
    init_serial();
    init_K64F();
    while(1) {

        // read sensor distance in cm and print over serial port
        int distance = srf02.getDistanceCm();
        //serial link reading of range
        pc.printf("Distance = %i Cm\n",distance);
        // short delay before next measurement
        wait(0.25);

        length = sprintf(buffer,"D = %i Cm",distance);

        if (length <= 14)

            lcd.printString(buffer,0,2);
        // need to refresh display after setting pixels
        lcd.refresh();

//LED range indicator runn of the bus out
        if (distance >= 150) {
            output = 3;
        }

        else if (100 <= distance  < 150) {
            output = 15;
        }

        else if (distance <= 100) {
            output = 67;
        }

        else {
            output = 0

        }
    }
}

// Used to return a range readig thru a serial connection
void init_serial()
{
    // set to highest baud - ensure terminal software matches
    pc.baud(115200);
}
//Set up board switches and LEDS
void init_K64F()
{
//on-board LEDs are active-low, so set pin high to turn them off.
    r_led = 1;
    g_led = 1;
    b_led = 1;

// since the on-board switches have external pull-ups, we should disable the internal pull-down
// resistors that are enabled by default using InterruptIn
    sw2.mode(PullNone);
    sw3.mode(PullNone);
}