Dominik Ziemba / Mbed 2 deprecated ProjektMechatronikav2

Dependencies:   mbed X_NUCLEO_IKS01A2

Revision:
0:d704d2f21671
Child:
1:f92b7ebec49f
--- /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