Dependencies:   MMA8451Q mbed

main.cpp

Committer:
collinan
Date:
2018-02-22
Revision:
0:4f2fc870fa2a
Child:
1:a913d88f652c

File content as of revision 0:4f2fc870fa2a:

#include "mbed.h"
#include "MMA8451Q.h"
#include "Letters.h"

//(MMA8451Q) accelerometer pins
PinName const SDA = PTE25;
PinName const SCL = PTE24;
#define MMA8451_I2C_ADDRESS (0x1d<<1)


int on =1;
Timeout timeout;


void attimeout()
{
    on=0;
}

DigitalOut LED_S[] = {
    DigitalOut(PTB9),
    DigitalOut(PTA17),
    DigitalOut(PTA16),
    DigitalOut(PTA15),
    DigitalOut(PTA14),
    DigitalOut(PTA6),
    DigitalOut(PTA7),
    DigitalOut(PTC16),

    DigitalOut(PTD7),
    DigitalOut(PTD6),
    DigitalOut(PTD4),
    DigitalOut(PTD2),
    DigitalOut(PTA13),

    DigitalOut(PTC9),
    DigitalOut(PTC8),
    DigitalOut(PTA5),
    DigitalOut(PTA4),
    DigitalOut(PTA12),
    DigitalOut(PTD3)
};

int main(void)
{
    timeout.attach(&attimeout,5.0);

    MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS);

    // PwmOut rled(LED1);
    PwmOut gled(LED2);
    PwmOut bled(LED3);

    printf("MMA8451 ID: %d\r\n", acc.getWhoAmI());
    printf("5 second of data\r\n");

    while (on) {
        // while (true) {
        float x, y, z;
        x = abs(acc.getAccX());
        y = abs(acc.getAccY());
        z = abs(acc.getAccZ());
        // rled = 1.0f - x;
        gled = 1.0f - y;
        bled = 1.0f - z;
        wait(0.1f);
        printf("X: %1.2f, Y: %1.2f, Z: %1.2f\r\n", x, y, z);
        //wait_ms(0.10);
    }

    float w_time=0.5;
    while(true) {
        for(int a=0; a<20; a++) {
            LED_S[a]=1;
            wait(w_time);
        }
        wait(w_time);
        wait(w_time);
        for(int a=0; a<20; a++) {
            LED_S[a]=0;
            wait(w_time);
        }
        wait(w_time);

    }

    char Display_Word[]= {'A','B','C','D','E','F','G'};//"ABCDEFG"
    int Word_Num[]= {0,0,0,0,0,0,0};
    for(int w=0; w<7; w++) {
        Word_Num[w]=int(Display_Word[w]) - 65;
        //Letter display loop: //A[row][column]
    }

    //pick letter to display:
    for(int x=0; x<7; x++) {
        switch (Word_Num[x]) {
            case 0:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=A[j][i];
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 1:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=B[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 2:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=C[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 3:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=D[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 4:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=E[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 5:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=F[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 6:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=G[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 7:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=H[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 8:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=I[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 9:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=J[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 10:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=K[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 11:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=L[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 12:
                for(int i=0; i<15; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=M[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 13:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=N[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 14:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=O[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 15:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=P[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 16:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {
                        LED_S[j]=Q[j][i];   //r//row loopow loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 17:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=R[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 18:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=S[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 19:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=T[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 20:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=U[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 21:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=V[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 22:
                for(int i=0; i<15; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=W[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 23:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=X[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 24:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=Y[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
            case 25:
                for(int i=0; i<12; i++) { //column loop
                    for(int j=0; j<12; j++) {//row loop
                        LED_S[j]=Z[j][i];   //row loop
                    }
                    wait(w_time);
                }
                wait(w_time);
                break;
        }

    }



}