5V & VMotor ON ->RGB & Blue LED Test
Dependencies: mbed
Fork of _B15Test2 by
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 }
Generated on Mon Jul 18 2022 01:50:22 by 1.7.2