Testprogram

Dependencies:   mbed MPU6050 DS1820

Revision:
2:0e87ebc53aa8
Parent:
1:75b533b777ad
Child:
3:3dcdaf0d09a1
--- a/main.cpp	Wed Feb 13 12:06:32 2019 +0000
+++ b/main.cpp	Fri Oct 11 09:44:36 2019 +0000
@@ -1,25 +1,24 @@
-// HIMBED _TEST1_V2 
-// TEST 13.02.2019
+// NUClight_TEST1_V3 
 // Diese Software testet die verschiedenen Funktionen des M0 Boards  
-// BULME Graz,     by F. Wolf   04.02.2019
+// BULME Graz,     by F. Wolf   05.10.2019
 /*
                              PIN-OUT-NUClight
                                 NUCLEO-L432KC
-                                 |-------|
-                                 |       |
-                                 |       |
-                                 |       |
-                        LED1 <-D2|       |
-                        LED2 <-D3|       |
-SDA (I2C)  (MPU6050 gyro) <- D4  |       | 
-SCL (I2C)  (MPU6050 gyro) <- D5  |       |
-                        LED3 <-D6|       | A3 -> Taster
-                                 |       | A2 -> Taster
-                                 |       | A1 -> Taster
-                                 |       | A0 -> DS18B20
-                     RGB-g <- D10|       |
-                     RGB-b <- D11|       |
-                     RGB-r <- D12|-------|
+                     RGB-rot   D1|-------| VIn
+                     RGB-gruen D0|       | GND
+                             NRST|       | RST
+                              GND|       | 5V0
+                        LED1 <-D2|       | A7
+                        LED2 <-D3|       | A6 -> LED7
+SDA (I2C)  (MPU6050 gyro)   <- D4|       | A5
+SCL (I2C)  (MPU6050 gyro)   <- D5|       | A4
+                        LED3 <-D6|       | A3 -> POTI
+                            nc D7|       | A2 -> Taster
+                            nc D8|       | A1 -> Taster
+                         LED4  D9|       | A0 -> DS18B20
+                  RGB-blau <- D10|       | ARF
+                      LED5 <- D11|       | 3V0
+                      LED6 <- D12|-------| D13 -> LED8
         
  RGB LED aktiv hight (1)       
  */   
@@ -41,25 +40,27 @@
 InterruptIn  sw2(A2); //SW2 -> sein IO Pin ist laut Schaltplan der P0_15
 InterruptIn  sw3(A3); //SW3
 */
-
-
-
 InterruptIn sw1(A1); 
 InterruptIn sw2(A2); 
-InterruptIn sw3(A3); 
+AnalogIn   ain(A3);
 
-
-// Definition der 3 LED's
+// Definition der 8 LED's
 DigitalOut led1(D2);
 DigitalOut led2(D3);
 DigitalOut led3(D6);
-
-DigitalOut led4(D13);  // on Board LED
+DigitalOut led4(D9);
+DigitalOut led5(D11);
+DigitalOut led6(D12);
+DigitalOut led7(A6);
+DigitalOut led8(D13);   // on Board LED
 
 // RGB LED
-DigitalOut RGBb(D10);  // blaue LED
-DigitalOut RGBg(D11);  // grüne LED 
-DigitalOut RGBr(D12);  // rote  LED
+//DigitalOut RGBb(D0);  // blaue LED
+//DigitalOut RGBg(D1);  // grüne LED 
+//DigitalOut RGBr(D12);  // rote  LED
+PwmOut RGBg(D0);  // gruen LED
+PwmOut RGBr(D1);  // rote LED
+PwmOut RGBb(D10);  // blaue LED
 
 int a;          
 int num_devices = 0;          
@@ -67,7 +68,6 @@
 //mpu6050
 //creating onject of MPU6050 class
 MPU6050 ark(D4,D5); // MPU6050(PinName sda, PinName scl);
-
 DS1820* probe[MAX_PROBES];
 
 // ********** Deklarationen **************
@@ -78,17 +78,24 @@
 // **********  Hauptprogramm ************** 
 int main()
 {
-    pc.printf("Welcome to NUClight TEST V1 \r\n"); //HTerm Welcome Message  
-    
+    pc.printf("Welcome to NUClight TEST V2 \r\n"); //HTerm Welcome Message  
     
     while(1)
     {
     // attach the address of the flip function to the rising edge
     sw1.fall(&RGBtest);      //RGB-Test Unterprogramm aufrufen
     sw2.fall(&LEDonoff);     //LED ON OFF - Test Unterprogramm aufrufen
-    sw3.fall(&LEDtest);      //LED-Test Unterprogramm aufrufen
    
+    pc.printf("percentage: %3.3f%%\n", ain.read()*100.0f);  
+  
+    
+    RGBr.period_ms(20.0f);  // 20 mili second period
+    RGBr.pulsewidth_ms(ain.read()*10.0f);  //  5 mili second pulse (on)
+    
 
+    
+       
+    wait(1);
              
           /*************** MPU6050 (gyro) TEST *******************************/        
      
@@ -111,10 +118,7 @@
 //DS18B20
 
        // define MULTIPLE_PROBES
-     
-         
         DS1820* probe[MAX_PROBES];
-         
      
             // Initialize the probe array to DS1820 objects
            // int num_devices = 0;
@@ -143,55 +147,68 @@
 /***********************************************************/
 void RGBtest()
 {
-    pc.printf("RGBTEST WEIS-ROT-MAGENTA-BLAU-TURKIS-GRUN-GELB\r\n"); //HTerm Ausgabe
+    pc.printf("RGBTEST\r\n"); //HTerm Ausgabe
+    
+    LEDtest();
+    
+    for (int t=1; t<15;t++)
+    {
+        RGBr.period_ms(20.0f);  // 20 mili second period
+        RGBr.pulsewidth_ms(t);  //  5 mili second pulse (on)
+        wait(0.3);
+    }
+    
+    RGBr.pulsewidth_ms(0);  //  5 mili second pulse (on) 
+    
+    for (int t=1; t<15;t++)
+    {
+        RGBg.period_ms(20.0f);  // 20 mili second period
+        RGBg.pulsewidth_ms(t);  //  5 mili second pulse (on)
+        wait(0.3);
+    }
+    
+    RGBr.pulsewidth_ms(0);  //  5 mili second pulse (on)
+    RGBg.pulsewidth_ms(0);  //  5 mili second pulse (on)
     
-        //Weiss
-        RGBr = 1;   // Alle RGB LED EIN
-        RGBb = 1;
-        RGBg = 1;
-        wait(0.2); 
-        
-        //Rot
-        RGBb = 0; // Blaue LED ausschalten
-        RGBg = 0; // Grune LED ausschalten
-        wait(0.2);
-        
-        //Purple
-        RGBb = 1; // Blaue LED einschalten
-        wait(0.2);
-        
-        //Blaue
-        RGBr = 0; // Rote LED ausschalten
-        wait(0.2);
-        
-        //Turkis
-        RGBg = 1; // Grune LED einschalten
-        wait(0.2);
-        
-        //Grun
-        RGBb = 0; // Blaue LED ausschalten
-        wait(0.2);
-        
-        //Gelb
-        RGBr = 1; // Rote LED einschalten
-        wait(0.2);
-        
-        //Alle ausschalten
-        RGBr = 0;  
-        RGBb = 0;
-        RGBg = 0;
+    for (int t=1; t<15;t++)
+    {
+        RGBb.period_ms(20.0f);  // 20 mili second period
+        RGBb.pulsewidth_ms(t);  //  5 mili second pulse (on)
+        wait(0.3);
+    }
+    
+    wait(1);
+    RGBr.pulsewidth_ms(0);  //  RGB-LED off
+    RGBg.pulsewidth_ms(0);  //  
+    RGBb.pulsewidth_ms(0);  //
+    
+    int rr=(rand()%15);
+    int rg=(rand()%15);
+    int rb=(rand()%15);
+    
+    RGBr.period_ms(20.0f);  // 20 mili second period
+    RGBr.pulsewidth_ms(rr);  //  5 mili second pulse (on)
+    
+    RGBg.period_ms(20.0f);  // 20 mili second period
+    RGBg.pulsewidth_ms(rg);  //  5 mili second pulse (on)
+    
+    RGBb.period_ms(20.0f);  // 20 mili second period
+    RGBb.pulsewidth_ms(rb);  //  5 mili second pulse (on)
+    
+    wait(1);
+    RGBr.pulsewidth_ms(0);  //  RGB-LED off
+    RGBg.pulsewidth_ms(0);  //  
+    RGBb.pulsewidth_ms(0);  //
+   
 }
 
 /************************** LED ****************************/
 /***********************************************************/
 void LEDtest()
 {
-    pc.printf("LAUFLICHT UEBER 3 LED (5-mal) \r\n"); //HTerm Ausgabe
+    pc.printf("LAUFLICHT UEBER 8 LED (5-mal) \r\n"); //HTerm Ausgabe
     a=0;
      
-    RGBtest(); 
- 
-    
     while (a<5) {   
         led1=1;     //Led1 einschalten
         wait(0.2);
@@ -205,7 +222,26 @@
         wait(0.2);
         led3=0;     //Led3 ausschalten
         
-        led4=!led4;
+        led4=1;     //Led1 einschalten
+        wait(0.2);
+        led4=0;     //Led1 ausschalten
+        
+        led5=1;     //Led2 einschalten
+        wait(0.2);
+        led5=0;     //Led2 ausschalten
+        
+        led6=1;     //Led3 einschalten
+        wait(0.2);
+        led6=0;     //Led3 ausschalten
+        
+        led7=1;     //Led2 einschalten
+        wait(0.2);
+        led7=0;     //Led2 ausschalten
+        
+        led8=1;     //Led3 einschalten
+        wait(0.2);
+        led8=0;     //Led3 ausschalten
+    
         a++;
         }
 }
@@ -214,13 +250,14 @@
 /***********************************************************/
 void LEDonoff()
 {
-    /*
     led1=!led1;     //Led1 einschalten
     led2=!led2;     //Led1 einschalten
     led3=!led3;     //Led1 einschalten
-*/
-
-  led4=!led4;     //Led1 einschalten
+    led4=!led4;     //Led1 einschalten
+    led5=!led5;     //Led1 einschalten
+    led6=!led6;     //Led1 einschalten
+    led7=!led7;     //Led1 einschalten
+    led8=!led8;     //Led1 einschalten
 }
 
 /***********/