Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of _B15Test1 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 Fri Jul 15 2022 19:46:13 by
1.7.2
