![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Test ok
Dependencies: mbed MPU6050 DS1820
main.cpp@0:f007d2f125be, 2019-02-13 (annotated)
- 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?
User | Revision | Line number | New 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 ***********************/ |