5V & VMotor ON ->RGB & Blue LED Test

Dependencies:   mbed

Fork of _B15Test2 by Gottfried Enenkel

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /***********************************
00002 name:   BERTL15_Test1
00003 author: Enenkel 
00004 description:
00005     D1_D4 Lauflicht
00006 ***********************************/
00007 #include "mbed.h"
00008 
00009 // 3,3 und 3,7V Schiene
00010 DigitalOut LedD10 (P1_8);    // LED D10 bis D13 IO Definieren
00011 DigitalOut LedD11 (P1_9);
00012 DigitalOut LedD12 (P1_10);
00013 DigitalOut LedD13 (P1_11);
00014 
00015 I2C i2c(p28, p27);           // die Adressen des I2C Busses am uP 
00016                              // p28 -> SDA
00017                              // p27 -> SCL 
00018 
00019 // 5V Schiene & Motor Spannung
00020 DigitalOut Von (P1_2);       // SPANNUNG 10V & 5V 
00021 DigitalOut LedBLUE(P1_28);   // Blaue LED unter dem B15
00022 DigitalOut LedBL (P1_24);    //RGB LED
00023 DigitalOut LedGR (P1_25);    //
00024 DigitalOut LedRT (P1_23);    //  RT
00025 
00026 
00027 
00028 void RT();
00029 void BL();
00030 void GR();
00031 void WS();
00032 
00033 void count();
00034 void LedSt();
00035 double counter1;
00036 int a;
00037 char btn;
00038 
00039 int main() {
00040     a=1;
00041     btn = 0;
00042     Von=1;                // Motorspannung und 5V Schiene EIN  
00043     //     ****  Config PCA9555 I0 as output *******
00044     i2c.start();
00045        i2c.write(0x40);   // Adresse des PCA9555 = 40 
00046                           // das letzte Bit = 0 -> schreiben  0040 0000
00047        i2c.write(0x06);   // Befehl für das IO Port 0 -> siehe SCHEMA des PCA9555
00048        i2c.write(0x00);   // Schalte alle Pins des Ports als OUTPUT
00049     i2c.stop();    
00050  
00051    // RGB on
00052    LedGR=LedRT=LedBL=0;   // RGB LED = WEISS (inverse Logik) 
00053    
00054    // D10-D13 Lauflicht
00055    a=0;
00056    while (a<4) 
00057      {
00058      LedD10=1;
00059      wait (0.3);
00060      LedD10=0;
00061      LedD11=1;
00062      wait (0.3);
00063      LedD11=0;
00064      LedD12=1;
00065      wait (0.3);
00066      LedD12=0;
00067      LedD13=1;
00068      wait (0.3);
00069      LedD13=!LedD13;
00070      a=a++;
00071      }
00072    
00073    LedGR=LedRT=LedBL=1;      //RGB = AUS  damit blaue LED besser sichtbar wird
00074    // Blaue Unterboden LED Blinken (invers!) 
00075    a= 0;
00076    while (a<40)
00077       {
00078       LedBLUE = 0;  
00079       wait (0.1);
00080       LedBLUE = 1;
00081       wait (0.1);
00082       a=a++;
00083       } 
00084     
00085       
00086    // RGB TEST (Inverse Logik)
00087    LedRT=LedBL=LedGR=0 ;      // weis ON
00088    wait (0.5);
00089    a=0;
00090    while (a<7) 
00091     {
00092      LedRT = 0;               // rot  ON
00093      LedGR=LedBL=1;
00094      wait (0.5);
00095      LedGR = 0;               // grün ON
00096      LedRT=LedBL=1;
00097      wait (0.5);
00098      LedBL = 0;               // blau ON
00099      LedRT=LedGR=1;
00100      wait (0.5);
00101      a=a++;
00102      }  
00103      LedRT=LedGR=LedBL=1 ;    // RGB = AUS
00104      Von=0;                   // 5V ausschalten !
00105                               // sonst glimmt RT vom RGB !
00106                               // Rv vom RGB RT ev auf 330 Ohm
00107     //Taster und LED Test
00108     while(1) {
00109         counter1=1;
00110         btn=0;
00111         while(counter1<5000) {
00112             counter1=counter1++;
00113         
00114             // Einlesen der Taster und speichern unter btn
00115             i2c.start();
00116                             /* Das letzte Bit der Adresse entscheidet 
00117                                ob geschrieben oder gelesen wird. 
00118                                0 => schreiben;   1 => lesen  */
00119                 i2c.write(0x40);    //Adresse & schreiben   0100 0000 
00120                 i2c.write(0x01);    //aktivate Port 1        
00121        
00122             i2c.start();
00123                 i2c.write(0x41);  // Adresse & LESEN    0100 0001  
00124                 btn = i2c.read(0);// Einlesen des Ports 1 und speichern unter btn
00125             i2c.stop();
00126         
00127             // Schreiben auf Port 0 und damit auf die LED's
00128             i2c.start();
00129                 i2c.write(0x40);  // Adresse & schreiben
00130                 i2c.write(0x02);  // 
00131                 i2c.write(~btn);  // schriebn auf Port 0 den INVERSEN Wert von btn
00132             i2c.stop();
00133         }
00134      } 
00135  }