Testprogram

Dependencies:   mbed MPU6050 DS1820

Committer:
wf
Date:
Wed Feb 13 11:37:14 2019 +0000
Revision:
0:f007d2f125be
Child:
1:75b533b777ad
nuclight L432KC testprogram

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wf 0:f007d2f125be 1 // HIMBED _TEST1_V2
wf 0:f007d2f125be 2 // Diese Software testet die verschiedenen Funktionen des M0 Boards
wf 0:f007d2f125be 3 // BULME Graz, by F. Wolf 04.02.2019
wf 0:f007d2f125be 4 /*
wf 0:f007d2f125be 5 PIN-OUT-NUClight
wf 0:f007d2f125be 6 NUCLEO-L432KC
wf 0:f007d2f125be 7 |-------|
wf 0:f007d2f125be 8 | |
wf 0:f007d2f125be 9 | |
wf 0:f007d2f125be 10 | |
wf 0:f007d2f125be 11 LED1 <-D2| |
wf 0:f007d2f125be 12 LED2 <-D3| |
wf 0:f007d2f125be 13 SDA (I2C) (MPU6050 gyro) <- D4 | |
wf 0:f007d2f125be 14 SCL (I2C) (MPU6050 gyro) <- D5 | |
wf 0:f007d2f125be 15 LED3 <-D6| | A3 -> Taster
wf 0:f007d2f125be 16 | | A2 -> Taster
wf 0:f007d2f125be 17 | | A1 -> Taster
wf 0:f007d2f125be 18 | | A0 -> DS18B20
wf 0:f007d2f125be 19 RGB-g <- D10| |
wf 0:f007d2f125be 20 RGB-b <- D11| |
wf 0:f007d2f125be 21 RGB-r <- D12|-------|
wf 0:f007d2f125be 22
wf 0:f007d2f125be 23 RGB LED aktiv hight (1)
wf 0:f007d2f125be 24 */
wf 0:f007d2f125be 25
wf 0:f007d2f125be 26 #include <mbed.h>
wf 0:f007d2f125be 27 #include "MPU6050.h"
wf 0:f007d2f125be 28 #include "DS1820.h"
wf 0:f007d2f125be 29
wf 0:f007d2f125be 30 #define DATA_PIN A0 // DS18B20
wf 0:f007d2f125be 31 #define MAX_PROBES 2
wf 0:f007d2f125be 32
wf 0:f007d2f125be 33 // ******** Definitionen **********
wf 0:f007d2f125be 34 //Serial pc(USBTX, USBRX);
wf 0:f007d2f125be 35 Serial pc(SERIAL_TX,SERIAL_RX);
wf 0:f007d2f125be 36
wf 0:f007d2f125be 37 // Definition der Taster (Switches)
wf 0:f007d2f125be 38 /*
wf 0:f007d2f125be 39 InterruptIn sw1(A1); //SW1
wf 0:f007d2f125be 40 InterruptIn sw2(A2); //SW2 -> sein IO Pin ist laut Schaltplan der P0_15
wf 0:f007d2f125be 41 InterruptIn sw3(A3); //SW3
wf 0:f007d2f125be 42 */
wf 0:f007d2f125be 43
wf 0:f007d2f125be 44 InterruptIn sw1(A1);
wf 0:f007d2f125be 45 InterruptIn sw2(A2);
wf 0:f007d2f125be 46 InterruptIn sw3(A3);
wf 0:f007d2f125be 47
wf 0:f007d2f125be 48
wf 0:f007d2f125be 49 // Definition der 3 LED's
wf 0:f007d2f125be 50 DigitalOut led1(D2);
wf 0:f007d2f125be 51 DigitalOut led2(D3);
wf 0:f007d2f125be 52 DigitalOut led3(D6);
wf 0:f007d2f125be 53
wf 0:f007d2f125be 54 DigitalOut led4(D13); // on Board LED
wf 0:f007d2f125be 55
wf 0:f007d2f125be 56 // RGB LED
wf 0:f007d2f125be 57 DigitalOut RGBb(D10); // blaue LED
wf 0:f007d2f125be 58 DigitalOut RGBg(D11); // grüne LED
wf 0:f007d2f125be 59 DigitalOut RGBr(D12); // rote LED
wf 0:f007d2f125be 60
wf 0:f007d2f125be 61 int a;
wf 0:f007d2f125be 62 int num_devices = 0;
wf 0:f007d2f125be 63
wf 0:f007d2f125be 64 //mpu6050
wf 0:f007d2f125be 65 //creating onject of MPU6050 class
wf 0:f007d2f125be 66 MPU6050 ark(D4,D5); // MPU6050(PinName sda, PinName scl);
wf 0:f007d2f125be 67
wf 0:f007d2f125be 68 DS1820* probe[MAX_PROBES];
wf 0:f007d2f125be 69
wf 0:f007d2f125be 70 // ********** Deklarationen **************
wf 0:f007d2f125be 71 void RGBtest();
wf 0:f007d2f125be 72 void LEDtest();
wf 0:f007d2f125be 73 void LEDonoff();
wf 0:f007d2f125be 74
wf 0:f007d2f125be 75 // ********** Hauptprogramm **************
wf 0:f007d2f125be 76 int main()
wf 0:f007d2f125be 77 {
wf 0:f007d2f125be 78 pc.printf("Welcome to NUClight TEST V1 \r\n"); //HTerm Welcome Message
wf 0:f007d2f125be 79
wf 0:f007d2f125be 80
wf 0:f007d2f125be 81 while(1)
wf 0:f007d2f125be 82 {
wf 0:f007d2f125be 83 // attach the address of the flip function to the rising edge
wf 0:f007d2f125be 84 sw1.fall(&RGBtest); //RGB-Test Unterprogramm aufrufen
wf 0:f007d2f125be 85 sw2.fall(&LEDonoff); //LED ON OFF - Test Unterprogramm aufrufen
wf 0:f007d2f125be 86 sw3.fall(&LEDtest); //LED-Test Unterprogramm aufrufen
wf 0:f007d2f125be 87
wf 0:f007d2f125be 88
wf 0:f007d2f125be 89
wf 0:f007d2f125be 90 /*************** MPU6050 (gyro) TEST *******************************/
wf 0:f007d2f125be 91
wf 0:f007d2f125be 92 //reading Temprature
wf 0:f007d2f125be 93 float temp = ark.getTemp();
wf 0:f007d2f125be 94 pc.printf("MPU6050-temprature = %0.2f ^C\r\n",temp);
wf 0:f007d2f125be 95
wf 0:f007d2f125be 96 //reading Grometer readings
wf 0:f007d2f125be 97 float gyro[3];
wf 0:f007d2f125be 98 ark.getGyro(gyro);
wf 0:f007d2f125be 99 pc.printf("Gyro0=%0.3f,\tGyro1=%0.3f,\tGyro2=%0.3f\r\n",gyro[0],gyro[1],gyro[2]);
wf 0:f007d2f125be 100
wf 0:f007d2f125be 101 //reading Acclerometer readings
wf 0:f007d2f125be 102 float acce[3];
wf 0:f007d2f125be 103 ark.getAccelero(acce);
wf 0:f007d2f125be 104 pc.printf("Acce0=%0.3f,Acce1=%0.3f,Acce2=%0.3f\r\n",acce[0],acce[1],acce[2]);
wf 0:f007d2f125be 105
wf 0:f007d2f125be 106 wait(1); //wait 1000ms
wf 0:f007d2f125be 107
wf 0:f007d2f125be 108 //DS18B20
wf 0:f007d2f125be 109
wf 0:f007d2f125be 110 // define MULTIPLE_PROBES
wf 0:f007d2f125be 111
wf 0:f007d2f125be 112
wf 0:f007d2f125be 113 DS1820* probe[MAX_PROBES];
wf 0:f007d2f125be 114
wf 0:f007d2f125be 115
wf 0:f007d2f125be 116 // Initialize the probe array to DS1820 objects
wf 0:f007d2f125be 117 // int num_devices = 0;
wf 0:f007d2f125be 118 while(DS1820::unassignedProbe(DATA_PIN)) {
wf 0:f007d2f125be 119 probe[num_devices] = new DS1820(DATA_PIN);
wf 0:f007d2f125be 120 num_devices++;
wf 0:f007d2f125be 121 if (num_devices == MAX_PROBES)
wf 0:f007d2f125be 122 break;
wf 0:f007d2f125be 123 }
wf 0:f007d2f125be 124
wf 0:f007d2f125be 125 printf("Found %d device(s)\r\n\n", num_devices);
wf 0:f007d2f125be 126
wf 0:f007d2f125be 127 probe[0]->convertTemperature(true, DS1820::all_devices); //Start temperature conversion, wait until ready
wf 0:f007d2f125be 128 for (int i = 0; i<num_devices; i++)
wf 0:f007d2f125be 129 printf("DS18B20-Device %d returns %3.1f oC\r\n", i, probe[i]->temperature());
wf 0:f007d2f125be 130 printf("\r\n");
wf 0:f007d2f125be 131 wait(1);
wf 0:f007d2f125be 132
wf 0:f007d2f125be 133 wait(1);
wf 0:f007d2f125be 134 }
wf 0:f007d2f125be 135 }
wf 0:f007d2f125be 136 /**************************************************** Unterprogramme****************************************************/
wf 0:f007d2f125be 137 /***********************************************************************************************************************/
wf 0:f007d2f125be 138
wf 0:f007d2f125be 139 /************************** RGB ****************************/
wf 0:f007d2f125be 140 /***********************************************************/
wf 0:f007d2f125be 141 void RGBtest()
wf 0:f007d2f125be 142 {
wf 0:f007d2f125be 143 pc.printf("RGBTEST WEIS-ROT-MAGENTA-BLAU-TURKIS-GRUN-GELB\r\n"); //HTerm Ausgabe
wf 0:f007d2f125be 144
wf 0:f007d2f125be 145 //Weiss
wf 0:f007d2f125be 146 RGBr = 1; // Alle RGB LED EIN
wf 0:f007d2f125be 147 RGBb = 1;
wf 0:f007d2f125be 148 RGBg = 1;
wf 0:f007d2f125be 149 wait(0.2);
wf 0:f007d2f125be 150
wf 0:f007d2f125be 151 //Rot
wf 0:f007d2f125be 152 RGBb = 0; // Blaue LED ausschalten
wf 0:f007d2f125be 153 RGBg = 0; // Grune LED ausschalten
wf 0:f007d2f125be 154 wait(0.2);
wf 0:f007d2f125be 155
wf 0:f007d2f125be 156 //Purple
wf 0:f007d2f125be 157 RGBb = 1; // Blaue LED einschalten
wf 0:f007d2f125be 158 wait(0.2);
wf 0:f007d2f125be 159
wf 0:f007d2f125be 160 //Blaue
wf 0:f007d2f125be 161 RGBr = 0; // Rote LED ausschalten
wf 0:f007d2f125be 162 wait(0.2);
wf 0:f007d2f125be 163
wf 0:f007d2f125be 164 //Turkis
wf 0:f007d2f125be 165 RGBg = 1; // Grune LED einschalten
wf 0:f007d2f125be 166 wait(0.2);
wf 0:f007d2f125be 167
wf 0:f007d2f125be 168 //Grun
wf 0:f007d2f125be 169 RGBb = 0; // Blaue LED ausschalten
wf 0:f007d2f125be 170 wait(0.2);
wf 0:f007d2f125be 171
wf 0:f007d2f125be 172 //Gelb
wf 0:f007d2f125be 173 RGBr = 1; // Rote LED einschalten
wf 0:f007d2f125be 174 wait(0.2);
wf 0:f007d2f125be 175
wf 0:f007d2f125be 176 //Alle ausschalten
wf 0:f007d2f125be 177 RGBr = 0;
wf 0:f007d2f125be 178 RGBb = 0;
wf 0:f007d2f125be 179 RGBg = 0;
wf 0:f007d2f125be 180 }
wf 0:f007d2f125be 181
wf 0:f007d2f125be 182 /************************** LED ****************************/
wf 0:f007d2f125be 183 /***********************************************************/
wf 0:f007d2f125be 184 void LEDtest()
wf 0:f007d2f125be 185 {
wf 0:f007d2f125be 186 pc.printf("LAUFLICHT UEBER 3 LED (5-mal) \r\n"); //HTerm Ausgabe
wf 0:f007d2f125be 187 a=0;
wf 0:f007d2f125be 188
wf 0:f007d2f125be 189 RGBtest();
wf 0:f007d2f125be 190
wf 0:f007d2f125be 191
wf 0:f007d2f125be 192 while (a<5) {
wf 0:f007d2f125be 193 led1=1; //Led1 einschalten
wf 0:f007d2f125be 194 wait(0.2);
wf 0:f007d2f125be 195 led1=0; //Led1 ausschalten
wf 0:f007d2f125be 196
wf 0:f007d2f125be 197 led2=1; //Led2 einschalten
wf 0:f007d2f125be 198 wait(0.2);
wf 0:f007d2f125be 199 led2=0; //Led2 ausschalten
wf 0:f007d2f125be 200
wf 0:f007d2f125be 201 led3=1; //Led3 einschalten
wf 0:f007d2f125be 202 wait(0.2);
wf 0:f007d2f125be 203 led3=0; //Led3 ausschalten
wf 0:f007d2f125be 204
wf 0:f007d2f125be 205 led4=!led4;
wf 0:f007d2f125be 206 a++;
wf 0:f007d2f125be 207 }
wf 0:f007d2f125be 208 }
wf 0:f007d2f125be 209
wf 0:f007d2f125be 210 /************************ Sensoren *************************/
wf 0:f007d2f125be 211 /***********************************************************/
wf 0:f007d2f125be 212 void LEDonoff()
wf 0:f007d2f125be 213 {
wf 0:f007d2f125be 214 /*
wf 0:f007d2f125be 215 led1=!led1; //Led1 einschalten
wf 0:f007d2f125be 216 led2=!led2; //Led1 einschalten
wf 0:f007d2f125be 217 led3=!led3; //Led1 einschalten
wf 0:f007d2f125be 218 */
wf 0:f007d2f125be 219
wf 0:f007d2f125be 220 led4=!led4; //Led1 einschalten
wf 0:f007d2f125be 221 }
wf 0:f007d2f125be 222
wf 0:f007d2f125be 223 /***********/
wf 0:f007d2f125be 224 /******************** ENDE ***********************/