Piotr Piotr / Mbed 2 deprecated ProjektMechatronikav2

Dependencies:   mbed X_NUCLEO_IKS01A2

Files at this revision

API Documentation at this revision

Comitter:
percu
Date:
Sat Jan 23 20:02:34 2021 +0000
Commit message:
xd

Changed in this revision

X_NUCLEO_IKS01A2.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/X_NUCLEO_IKS01A2.lib	Sat Jan 23 20:02:34 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/ST/code/X_NUCLEO_IKS01A2/#138a7a28bd21
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Jan 23 20:02:34 2021 +0000
@@ -0,0 +1,77 @@
+#include "mbed.h"
+#include "XNucleoIKS01A2.h" // inicjacja bibliotek 
+AnalogIn Czujnik_ABP(A0); // inicjacja czujnika 
+static XNucleoIKS01A2 *mems_expansion_board = XNucleoIKS01A2::instance(D14, D15, D4, D5);// płytka rozszerzająca 
+static HTS221Sensor *hum_temp = mems_expansion_board->ht_sensor; ////czujniki z płytki rozszerzającej 
+static LPS22HBSensor *press_temp = mems_expansion_board->pt_sensor;
+//coś do dziesiątek 
+static char *print_double(char* str, double v, int decimalDigits=2)
+{
+int i = 1;
+int intPart, fractPart
+;int len;
+char *ptr;/* prepare decimal digits multiplicator */
+for (;decimalDigits!=0; i*=10, decimalDigits--);
+/* calculate integer & fractinal parts */
+intPart = (int)v;
+fractPart= (int)((v-(double)(int)v)*i);/* fill in integer part */
+sprintf(str, "%i.", intPart);/* prepare fill in of fractional part */
+len = strlen(str);
+ptr = &str[len];/* fill in leading fractional zeros */
+for (i/=10;i>1; i/=10, ptr++) 
+{
+    if (fractPart >= i) 
+    {
+        break;
+        }
+        *ptr = '0';
+        }/* fill in (rest of) fractional part */
+        sprintf(ptr, "%i", fractPart);
+        return str;
+        }
+int main ()
+{
+uint8_t id;                 
+float cisnienie, temperatura,odczyt_analog;             //  Deklaracja  zmiennych używanych w programie 
+char buffer1[32], buffer2[32],buffer3[32],buffer5[32]; 
+double Idealne_cisnienie,bary,ile,cisnieni_min,cisnienie_max,Zasieg_Czujnika;   
+int wzorzecP,wzorzecT;
+odczyt_analog=Czujnik_ABP.read(); // odczytanie wartości z portu A0
+odczyt_analog=odczyt_analog*3300; // przeliczenie wartości na mV
+printf("Wartosc  = %.0fmV\n",odczyt_analog);
+
+hum_temp->enable(); // Uruchomienie czujnika odpowiedzialnego za pomiar temperatury
+press_temp->enable() ;  //  Uruchomienie czujnika odpowiedzialnego za pomiar ciśnienia
+hum_temp->get_temperature(&temperatura);      //Odczytanie wartości ciśnienia  
+press_temp->get_pressure(&cisnienie);  //Odczytanie wartości temperatura  
+printf("Manometr do kol\r\n");  
+hum_temp->read_id(&id);// Pobranie id czujnika temperatura z płytki rozszerzenia 
+press_temp->read_id(&id); // Pobranie id czujnika ciśnienia z płytki rozszerzenia 
+press_temp->get_pressure(&cisnienie); //  Odczyt wartości ciśnienia z płytki rozszerzenia 
+printf(" Cisnie atmosmeryczne:  %7s hPa\r\n ",print_double(buffer1, cisnienie));  //  Wyświetlenie wartości ciśnienia 
+press_temp->get_temperature(&temperatura); // Odczytanie wartości temperatury z płytki rozszerzenia 
+printf("Temp:  %7s C\r\n ", print_double(buffer2,temperatura)); //  Wyświetlenie wartości temperatury  
+wzorzecP=230000;  //Ciśnieni wzorcowe w kole 
+wzorzecT=293; // Temeratura wzorcowa w Kelwinach
+Idealne_cisnienie=(((wzorzecP)*(temperatura+ 273))/(wzorzecT)); // coś liczymy  wartość cisnienia pożądana w kole 
+bary=Idealne_cisnienie/100000; // przeliczenie na bary z paskali
+ile=(bary-(cisnienie/1000)); // ile należy upuscić z koła 
+printf("Ile ma byc w kole?  %7s B\r\n ", print_double(buffer3,bary)); // Wartość ciśnienia jaka powinna znajdować się  kole 
+printf("Ile jest w kole?  %7s B\r\n ", print_double(buffer1,cisnienie/1000)); // Wartość ciśnienia jak znaduje się w kole 
+if ((cisnienie/1000)<bary) // początek warunku if odpowiedzialnego za określenie deczycji co należy zrobić z ciśnieniem w kole (Jeżeli ciśnieni mniejsze niż 2.5 )
+{
+printf("Upusc %7s B\r\n ", print_double(buffer5,ile ));   
+}
+else if ((cisnienie/1000)>=2.5 && (cisnienie/1000)<=2.7 ) // Jeżeli ciśnienie  znaduje się w przedziale  <2.5;2.7>
+{
+    printf("Nic nie trzeba robić %7s B\r\n ", print_double(buffer5,ile )); 
+    
+    }
+else if ((cisnienie/1000) > bary )  //Jeżeli ciśnienie ma wartość powyżej 2.7
+{
+printf("dobij %7s B\r\n", print_double(buffer5,ile)); 
+}
+}
+
+
+    
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sat Jan 23 20:02:34 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file