RGB

Dependencies:   mbed

Fork of RGB-15 by Ladner-Praja

main.cpp

Committer:
ladner
Date:
2015-07-07
Revision:
5:e968c184ad9f
Parent:
4:0c35562c35a4
Child:
6:210eb76618cc

File content as of revision 5:e968c184ad9f:

#include "mbed.h"

I2C i2c(p28, p27);
BusOut myled(LED1,LED2,LED3,LED4);
BusOut myrgb(P1_23,P1_25,P1_24);
DigitalOut LedBlue(P1_28);
BusIn myline(p18,p16,p19,p17);
DigitalIn linecenter(p20);
DigitalOut online(P1_6);
DigitalOut MotorL_EN(P1_15);         
DigitalOut MotorL_FORWARD(P1_1);   
DigitalOut MotorL_REVERSE(P1_0);
DigitalOut MotorR_EN(P0_21);
DigitalOut MotorR_FORWARD(P1_3);
DigitalOut MotorR_REVERSE(P1_4);
DigitalOut Motor_SENSOR(P1_7);
DigitalOut enable(P1_2);
PwmOut mg1(P1_15);
PwmOut mg2(P0_21);
DigitalIn SensorL(P1_12);  
DigitalIn SensorR(P1_13);
int data;
int out_helper[8];
int main() 
{
    out_helper[0]=0;
    out_helper[1]=1;
    out_helper[2]=3;
    out_helper[3]=7;
    out_helper[4]=15;
    out_helper[5]=14;
    out_helper[6]=12;
    out_helper[7]=8;
    
    enable = 0;
    online = 0;
    Motor_SENSOR=0;
    
    myrgb = 0x07;//7->aus
    LedBlue=1;
    myled = 0x00;
    
    MotorL_EN = 0;         
    MotorL_FORWARD = 0;   
    MotorL_REVERSE = 0;
    MotorR_EN = 0;
    MotorR_FORWARD = 0;
    MotorR_REVERSE = 0;
    mg1=0.5;
    mg2=0.5;
    
    i2c.start();
       i2c.write(0x40);
       i2c.write(0x06);
       i2c.write(0x00);
    i2c.stop(); 
    
    i2c.start();
      i2c.write(0x40);
      i2c.write(0x02);
      i2c.write(~0x00);
    i2c.stop();
    
    int waiting = 0;
    bool active = false;
    
    while(1){
        // Einlesen der Taster und speichern unter data
        i2c.start(); 
          i2c.write(0x40);
          i2c.write(0x01);
        i2c.start();
          i2c.write(0x41); 
          data = i2c.read(0);
        i2c.stop();
    
        if(active)
        {
            enable = 1;
            online = 1;
            myrgb=3;
            wait(0.5);
        }
        else
        {
            if(waiting<7)
            {
                wait(0.5);
                if(waiting==0)
                {
                    enable = 0;
                    online = 0;
                    myrgb=7;
                }
                waiting++;
            }
            else
            {
                enable = 1;
                online = 1;
                wait(0.5);
                if(myline<15||linecenter<1)
                {
                    active=1;
                    myrgb=6;
                }
                else
                    myrgb=4;
                waiting=0;
            }
            myled=out_helper[waiting];
        }
        //0=>keine Linie
        
        //01->forneMitte
        //02->hintenMitte
        //04->forneLinks
        //08->forneRects
        //10->hintenLinks
        //20->hintenRechts
        //40->Rechts
        //80->Links
        
        }
}