Testprogram

Dependencies:   mbed MPU6050 DS1820

Revision:
0:f007d2f125be
Child:
1:75b533b777ad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Feb 13 11:37:14 2019 +0000
@@ -0,0 +1,224 @@
+// HIMBED _TEST1_V2 
+// Diese Software testet die verschiedenen Funktionen des M0 Boards  
+// BULME Graz,     by F. Wolf   04.02.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 LED aktiv hight (1)       
+ */   
+        
+#include <mbed.h>
+#include "MPU6050.h"
+#include "DS1820.h"
+
+#define DATA_PIN        A0  // DS18B20
+#define MAX_PROBES      2
+
+// ********   Definitionen  **********
+//Serial pc(USBTX, USBRX);
+Serial pc(SERIAL_TX,SERIAL_RX);
+
+// Definition der Taster (Switches)
+/*
+InterruptIn  sw1(A1); //SW1
+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); 
+
+
+// Definition der 3 LED's
+DigitalOut led1(D2);
+DigitalOut led2(D3);
+DigitalOut led3(D6);
+
+DigitalOut led4(D13);  // on Board LED
+
+// RGB LED
+DigitalOut RGBb(D10);  // blaue LED
+DigitalOut RGBg(D11);  // grüne LED 
+DigitalOut RGBr(D12);  // rote  LED
+
+int a;          
+int num_devices = 0;          
+
+//mpu6050
+//creating onject of MPU6050 class
+MPU6050 ark(D4,D5); // MPU6050(PinName sda, PinName scl);
+
+DS1820* probe[MAX_PROBES];
+
+// ********** Deklarationen **************
+void RGBtest();
+void LEDtest();
+void LEDonoff();
+
+// **********  Hauptprogramm ************** 
+int main()
+{
+    pc.printf("Welcome to NUClight TEST V1 \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
+   
+
+             
+          /*************** MPU6050 (gyro) TEST *******************************/        
+     
+        //reading Temprature
+        float temp = ark.getTemp();
+        pc.printf("MPU6050-temprature = %0.2f ^C\r\n",temp);
+        
+        //reading Grometer readings
+        float gyro[3];
+        ark.getGyro(gyro);
+        pc.printf("Gyro0=%0.3f,\tGyro1=%0.3f,\tGyro2=%0.3f\r\n",gyro[0],gyro[1],gyro[2]);
+        
+        //reading Acclerometer readings
+        float acce[3];
+        ark.getAccelero(acce);
+        pc.printf("Acce0=%0.3f,Acce1=%0.3f,Acce2=%0.3f\r\n",acce[0],acce[1],acce[2]);
+
+        wait(1); //wait 1000ms
+    
+//DS18B20
+
+       // define MULTIPLE_PROBES
+     
+         
+        DS1820* probe[MAX_PROBES];
+         
+     
+            // Initialize the probe array to DS1820 objects
+           // int num_devices = 0;
+            while(DS1820::unassignedProbe(DATA_PIN)) {
+                probe[num_devices] = new DS1820(DATA_PIN);
+                num_devices++;
+                if (num_devices == MAX_PROBES)
+                    break;
+            }
+            
+            printf("Found %d device(s)\r\n\n", num_devices);
+      
+                probe[0]->convertTemperature(true, DS1820::all_devices);         //Start temperature conversion, wait until ready
+                for (int i = 0; i<num_devices; i++)
+                    printf("DS18B20-Device %d returns %3.1f oC\r\n", i, probe[i]->temperature());
+                printf("\r\n");
+                wait(1);
+            
+            wait(1);
+            }
+} 
+/**************************************************** Unterprogramme****************************************************/
+/***********************************************************************************************************************/
+           
+/************************** RGB ****************************/
+/***********************************************************/
+void RGBtest()
+{
+    pc.printf("RGBTEST WEIS-ROT-MAGENTA-BLAU-TURKIS-GRUN-GELB\r\n"); //HTerm Ausgabe
+    
+        //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;
+}
+
+/************************** LED ****************************/
+/***********************************************************/
+void LEDtest()
+{
+    pc.printf("LAUFLICHT UEBER 3 LED (5-mal) \r\n"); //HTerm Ausgabe
+    a=0;
+     
+    RGBtest(); 
+ 
+    
+    while (a<5) {   
+        led1=1;     //Led1 einschalten
+        wait(0.2);
+        led1=0;     //Led1 ausschalten
+        
+        led2=1;     //Led2 einschalten
+        wait(0.2);
+        led2=0;     //Led2 ausschalten
+        
+        led3=1;     //Led3 einschalten
+        wait(0.2);
+        led3=0;     //Led3 ausschalten
+        
+        led4=!led4;
+        a++;
+        }
+}
+
+/************************ Sensoren *************************/
+/***********************************************************/
+void LEDonoff()
+{
+    /*
+    led1=!led1;     //Led1 einschalten
+    led2=!led2;     //Led1 einschalten
+    led3=!led3;     //Led1 einschalten
+*/
+
+  led4=!led4;     //Led1 einschalten
+}
+
+/***********/
+/********************   ENDE  ***********************/
\ No newline at end of file