Test ok
Dependencies: mbed MPU6050 DS1820
main.cpp
- Committer:
- wf
- Date:
- 2019-02-13
- Revision:
- 0:f007d2f125be
- Child:
- 1:75b533b777ad
File content as of revision 0:f007d2f125be:
// 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 ***********************/