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

Dependencies:   mbed

Fork of _B15Test1 by Gottfried Enenkel

main.cpp

Committer:
Enenkel
Date:
2015-05-27
Revision:
2:93f65758fcb7
Parent:
1:628da1b465a4

File content as of revision 2:93f65758fcb7:

/***********************************
name:   BERTL15_Test1
author: Enenkel 
description:
    D1_D4 Lauflicht
***********************************/
#include "mbed.h"

// 3,3 und 3,7V Schiene
DigitalOut LedD10 (P1_8);    // LED D10 bis D13 IO Definieren
DigitalOut LedD11 (P1_9);
DigitalOut LedD12 (P1_10);
DigitalOut LedD13 (P1_11);

I2C i2c(p28, p27);           // die Adressen des I2C Busses am uP 
                             // p28 -> SDA
                             // p27 -> SCL 

// 5V Schiene & Motor Spannung
DigitalOut Von (P1_2);       // SPANNUNG 10V & 5V 
DigitalOut LedBLUE(P1_28);   // Blaue LED unter dem B15
DigitalOut LedBL (P1_24);    //RGB LED
DigitalOut LedGR (P1_25);    //
DigitalOut LedRT (P1_23);    //  RT



void RT();
void BL();
void GR();
void WS();

void count();
void LedSt();
double counter1;
int a;
char btn;

int main() {
    a=1;
    btn = 0;
    Von=1;                // Motorspannung und 5V Schiene EIN  
    //     ****  Config PCA9555 I0 as output *******
    i2c.start();
       i2c.write(0x40);   // Adresse des PCA9555 = 40 
                          // das letzte Bit = 0 -> schreiben  0040 0000
       i2c.write(0x06);   // Befehl für das IO Port 0 -> siehe SCHEMA des PCA9555
       i2c.write(0x00);   // Schalte alle Pins des Ports als OUTPUT
    i2c.stop();    
 
   // RGB on
   LedGR=LedRT=LedBL=0;   // RGB LED = WEISS (inverse Logik) 
   
   // D10-D13 Lauflicht
   a=0;
   while (a<4) 
     {
     LedD10=1;
     wait (0.3);
     LedD10=0;
     LedD11=1;
     wait (0.3);
     LedD11=0;
     LedD12=1;
     wait (0.3);
     LedD12=0;
     LedD13=1;
     wait (0.3);
     LedD13=!LedD13;
     a=a++;
     }
   
   LedGR=LedRT=LedBL=1;      //RGB = AUS  damit blaue LED besser sichtbar wird
   // Blaue Unterboden LED Blinken (invers!) 
   a= 0;
   while (a<40)
      {
      LedBLUE = 0;  
      wait (0.1);
      LedBLUE = 1;
      wait (0.1);
      a=a++;
      } 
    
      
   // RGB TEST (Inverse Logik)
   LedRT=LedBL=LedGR=0 ;      // weis ON
   wait (0.5);
   a=0;
   while (a<7) 
    {
     LedRT = 0;               // rot  ON
     LedGR=LedBL=1;
     wait (0.5);
     LedGR = 0;               // grün ON
     LedRT=LedBL=1;
     wait (0.5);
     LedBL = 0;               // blau ON
     LedRT=LedGR=1;
     wait (0.5);
     a=a++;
     }  
     LedRT=LedGR=LedBL=1 ;    // RGB = AUS
     Von=0;                   // 5V ausschalten !
                              // sonst glimmt RT vom RGB !
                              // Rv vom RGB RT ev auf 330 Ohm
    //Taster und LED Test
    while(1) {
        counter1=1;
        btn=0;
        while(counter1<5000) {
            counter1=counter1++;
        
            // Einlesen der Taster und speichern unter btn
            i2c.start();
                            /* Das letzte Bit der Adresse entscheidet 
                               ob geschrieben oder gelesen wird. 
                               0 => schreiben;   1 => lesen  */
                i2c.write(0x40);    //Adresse & schreiben   0100 0000 
                i2c.write(0x01);    //aktivate Port 1        
       
            i2c.start();
                i2c.write(0x41);  // Adresse & LESEN    0100 0001  
                btn = i2c.read(0);// Einlesen des Ports 1 und speichern unter btn
            i2c.stop();
        
            // Schreiben auf Port 0 und damit auf die LED's
            i2c.start();
                i2c.write(0x40);  // Adresse & schreiben
                i2c.write(0x02);  // 
                i2c.write(~btn);  // schriebn auf Port 0 den INVERSEN Wert von btn
            i2c.stop();
        }
     } 
 }