Test ok
Dependencies: mbed MPU6050 DS1820
Diff: main.cpp
- 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