MKopec Maj 4, 2021 Autor tematu Udostępnij Maj 4, 2021 #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,20,4); #include <DFRobot_WT61PC.h> #include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); // software serial #2: RX = digital pin 8, TX = digital pin 9 // on the Mega, use other pins instead, since 8 and 9 don't work on the Mega SoftwareSerial portTwo(8, 9); //Use software serial port RX:10,TX:11 DFRobot_WT61PC sensor_1(&mySerial); DFRobot_WT61PC sensor_2(&portTwo); void setup() { //Use Serial as debugging serial port Serial.begin(115200); //Use software serial port mySerial as communication seiral port mySerial.begin(9600); //Revise the data output data frequncy of sensor FREQUENCY_0_1HZ for 0.1Hz, FREQUENCY_0_5HZ for 0.5Hz, FREQUENCY_1HZ for 1Hz, FREQUENCY_2HZ for 2Hz, // FREQUENCY_5HZ for 5Hz, FREQUENCY_10HZ for 10Hz, FREQUENCY_20HZ for 20Hz, FREQUENCY_50HZ for 50Hz, // FREQUENCY_100HZ for 100Hz, FREQUENCY_125HZ for 125Hz, FREQUENCY_200HZ for 200Hz. portTwo.begin(9600); sensor_1.modifyFrequency(FREQUENCY_50HZ); sensor_2.modifyFrequency(FREQUENCY_50HZ); } void loop() { if (sensor_1.available());(sensor_2.available()); { Serial.print("Angle\t"); Serial.print(sensor_1.Angle.X); Serial.print("\t"); Serial.print(sensor_1.Angle.Y); Serial.print("\t"); Serial.println(sensor_1.Angle.Z); //angle information of X, Y, Z Serial.print("Angle\t"); Serial.print(sensor_2.Angle.X); Serial.print("\t"); Serial.print(sensor_2.Angle.Y); Serial.print("\t"); Serial.println(sensor_2.Angle.Z); //angle information of X, Y, Z Serial.println(" "); } lcd.init(); // initialize the lcd lcd.backlight(); lcd.setCursor(0,0); lcd.print("X "); lcd.print(sensor_1.Angle.X); lcd.print(sensor_2.Angle.X); lcd.setCursor(0,1); lcd.print("Y "); lcd.print(sensor_1.Angle.Y); lcd.setCursor(0,2); lcd.print("Z "); lcd.print(sensor_1.Angle.Z); lcd.setCursor(0,3); lcd.print("kat"); } Racja już mam portTwo ale teraz są dane z drugiego czujnika a nie ma z pierwszego. Co jeszcze poprawić? Cytuj Link do komentarza Share on other sites More sharing options...
farmaceuta Maj 4, 2021 Udostępnij Maj 4, 2021 1 minutę temu, MKopec napisał: Racja już mam portTwo ale teraz są dane z drugiego czujnika a nie ma z pierwszego. Co jeszcze poprawić? Z drugiego bo podczas uruchomienia ".begin()" nasluchyjesz wlasnie z tego uarta...musisz sie przelaczac pomiedzy nimi...tak jak pisalem "listen()"..nie wiem jak to dziala, te zyroskopy, ale jak to nie problem to np. nasluchuj jeden uart pol sekundy a pozniej drugi pol sekundy...i ten dziwny zapis "available()" w jednym if rozpisz na dwa...(no ja tak jeszcze nie widzialem) 1 Cytuj Link do komentarza Share on other sites More sharing options...
MKopec Maj 4, 2021 Autor tematu Udostępnij Maj 4, 2021 #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,20,4); #include <DFRobot_WT61PC.h> #include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); // software serial #2: RX = digital pin 8, TX = digital pin 9 // on the Mega, use other pins instead, since 8 and 9 don't work on the Mega SoftwareSerial portTwo(8, 9); //Use software serial port RX:10,TX:11 DFRobot_WT61PC sensor_1(&mySerial); DFRobot_WT61PC sensor_2(&portTwo); void setup() { //Use Serial as debugging serial port Serial.begin(115200); //Use software serial port mySerial as communication seiral port mySerial.begin(9600); //Revise the data output data frequncy of sensor FREQUENCY_0_1HZ for 0.1Hz, FREQUENCY_0_5HZ for 0.5Hz, FREQUENCY_1HZ for 1Hz, FREQUENCY_2HZ for 2Hz, // FREQUENCY_5HZ for 5Hz, FREQUENCY_10HZ for 10Hz, FREQUENCY_20HZ for 20Hz, FREQUENCY_50HZ for 50Hz, // FREQUENCY_100HZ for 100Hz, FREQUENCY_125HZ for 125Hz, FREQUENCY_200HZ for 200Hz. portTwo.begin(9600); sensor_1.modifyFrequency(FREQUENCY_50HZ); sensor_2.modifyFrequency(FREQUENCY_50HZ); } void loop() { if (sensor_1.available()); { Serial.print("Angle\t"); Serial.print(sensor_1.Angle.X); Serial.print("\t"); Serial.print(sensor_1.Angle.Y); Serial.print("\t"); Serial.println(sensor_1.Angle.Z); //angle information of X, Y, Z Serial.println(" "); listen(500) if (sensor_2.available()); Serial.print("Angle\t"); Serial.print(sensor_2.Angle.X); Serial.print("\t"); Serial.print(sensor_2.Angle.Y); Serial.print("\t"); Serial.println(sensor_2.Angle.Z); //angle information of X, Y, Z Serial.println(" "); listen(500) } lcd.init(); // initialize the lcd lcd.backlight(); lcd.setCursor(0,0); lcd.print("X "); lcd.print(sensor_1.Angle.X); lcd.print(sensor_2.Angle.X); lcd.setCursor(0,1); lcd.print("Y "); lcd.print(sensor_1.Angle.Y); lcd.setCursor(0,2); lcd.print("Z "); lcd.print(sensor_1.Angle.Z); lcd.setCursor(0,3); lcd.print("kat"); } A więc znów coś poprawiłem ale znów nie jest dobrze. Tak jak pisałem jestem zielony. Co mam dopisać żeby działało? 1 Cytuj Link do komentarza Share on other sites More sharing options...
MKopec Maj 4, 2021 Autor tematu Udostępnij Maj 4, 2021 #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,20,4); #include <DFRobot_WT61PC.h> #include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); // software serial #2: RX = digital pin 8, TX = digital pin 9 // on the Mega, use other pins instead, since 8 and 9 don't work on the Mega SoftwareSerial portTwo(8, 9); //Use software serial port RX:10,TX:11 DFRobot_WT61PC sensor_1(&mySerial); DFRobot_WT61PC sensor_2(&portTwo); void setup() { //Use Serial as debugging serial port Serial.begin(115200); //Use software serial port mySerial as communication seiral port mySerial.begin(9600); listen(500); //Revise the data output data frequncy of sensor FREQUENCY_0_1HZ for 0.1Hz, FREQUENCY_0_5HZ for 0.5Hz, FREQUENCY_1HZ for 1Hz, FREQUENCY_2HZ for 2Hz, // FREQUENCY_5HZ for 5Hz, FREQUENCY_10HZ for 10Hz, FREQUENCY_20HZ for 20Hz, FREQUENCY_50HZ for 50Hz, // FREQUENCY_100HZ for 100Hz, FREQUENCY_125HZ for 125Hz, FREQUENCY_200HZ for 200Hz. portTwo.begin(9600); listen(500); sensor_1.modifyFrequency(FREQUENCY_50HZ); sensor_2.modifyFrequency(FREQUENCY_50HZ); } void loop() { if (sensor_1.available()); { Serial.print("Angle\t"); Serial.print(sensor_1.Angle.X); Serial.print("\t"); Serial.print(sensor_1.Angle.Y); Serial.print("\t"); Serial.println(sensor_1.Angle.Z); //angle information of X, Y, Z Serial.println(" "); if (sensor_2.available()); Serial.print("Angle\t"); Serial.print(sensor_2.Angle.X); Serial.print("\t"); Serial.print(sensor_2.Angle.Y); Serial.print("\t"); Serial.println(sensor_2.Angle.Z); //angle information of X, Y, Z Serial.println(" "); } lcd.init(); // initialize the lcd lcd.backlight(); lcd.setCursor(0,0); lcd.print("X "); lcd.print(sensor_1.Angle.X); lcd.print(sensor_2.Angle.X); lcd.setCursor(0,1); lcd.print("Y "); lcd.print(sensor_1.Angle.Y); lcd.setCursor(0,2); lcd.print("Z "); lcd.print(sensor_1.Angle.Z); lcd.setCursor(0,3); lcd.print("kat"); } Tak też nie działa. Jak używać listen() ? listen(500); ^~~~~~ system exit status 1 'listen' was not declared in this scope Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Peposh Maj 4, 2021 Udostępnij Maj 4, 2021 Spróbuj jeszcze tak: if (sensor_1.available()) { Serial.print("Angle\t"); Serial.print(sensor_1.Angle.X); Serial.print("\t"); Serial.print(sensor_1.Angle.Y); Serial.print("\t"); Serial.println(sensor_1.Angle.Z); //angle information of X, Y, Z Serial.println(" "); } if (sensor_2.available()) { Serial.print("Angle\t"); Serial.print(sensor_2.Angle.X); Serial.print("\t"); Serial.print(sensor_2.Angle.Y); Serial.print("\t"); Serial.println(sensor_2.Angle.Z); //angle information of X, Y, Z Serial.println(" "); } Cytuj Link do komentarza Share on other sites More sharing options...
farmaceuta Maj 4, 2021 Udostępnij Maj 4, 2021 (edytowany) #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,20,4); #include <DFRobot_WT61PC.h> #include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); SoftwareSerial portTwo(8, 9); DFRobot_WT61PC sensor_1(&mySerial); DFRobot_WT61PC sensor_2(&portTwo); uint8_t stan = 0; uint32_t last = 0; void setup() { Serial.begin(115200); mySerial.begin(9600); portTwo.begin(9600); sensor_1.modifyFrequency(FREQUENCY_50HZ); sensor_2.modifyFrequency(FREQUENCY_50HZ); } void loop() { if (millis() - last > 1000UL && stan == 0) { mySerial.listen(); stan = 1; last = millis(); } if (millis() - last > 1000UL && stan == 1) { portTwo.listen(); last = millis(); stan = 0; } if (sensor_1.available()) { Serial.print("Angle\t"); Serial.print(sensor_1.Angle.X); Serial.print("\t"); Serial.print(sensor_1.Angle.Y); Serial.print("\t"); Serial.println(sensor_1.Angle.Z); //angle information of X, Y, Z } Serial.println(" "); if (sensor_2.available()) { Serial.print("Angle\t"); Serial.print(sensor_2.Angle.X); Serial.print("\t"); Serial.print(sensor_2.Angle.Y); Serial.print("\t"); Serial.println(sensor_2.Angle.Z); //angle information of X, Y, Z Serial.println(" "); } lcd.init(); // initialize the lcd lcd.backlight(); lcd.setCursor(0,0); lcd.print("X "); lcd.print(sensor_1.Angle.X); lcd.print(sensor_2.Angle.X); lcd.setCursor(0,1); lcd.print("Y "); lcd.print(sensor_1.Angle.Y); lcd.setCursor(0,2); lcd.print("Z "); lcd.print(sensor_1.Angle.Z); lcd.setCursor(0,3); lcd.print("kat"); } Spruboj tego... bo "listen()" to nie "delay()" a komenda ktora powoduje nasluchiwanie jednego uarta Edytowano Maj 4, 2021 przez farmaceuta 1 Cytuj Link do komentarza Share on other sites More sharing options...
MKopec Maj 4, 2021 Autor tematu Udostępnij Maj 4, 2021 Program Farmaceuty Serdeczne podziękowania dla WAS WSZYSTKICH. DZIAŁA!!!! Pozostały drobne szlify z wyświetlaniem lcd. Jest super. Dziękuje 1 Cytuj Link do komentarza Share on other sites More sharing options...
MKopec Maj 4, 2021 Autor tematu Udostępnij Maj 4, 2021 Co jestem wam winien za pomoc? Cytuj Link do komentarza Share on other sites More sharing options...
farmaceuta Maj 4, 2021 Udostępnij Maj 4, 2021 2 minuty temu, MKopec napisał: Co jestem wam winien za pomoc? Spoko😉 po to to forum tu jest zeby pomoc...zmieniajac "1000UL" na inna liczbe zmienisz odswiezanie...poprostu po 1000 ms zmieniaja sie teraz uarty...jak dasz 500 to beda zmieniac sie co pol sekundy Cytuj Link do komentarza Share on other sites More sharing options...
MKopec Maj 4, 2021 Autor tematu Udostępnij Maj 4, 2021 Zapamiętam tą lekcje. Może kiedyś spotkamy się przy piwie. Jeszcze raz dziękuje i pozdrawiam. #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,20,4); #include <DFRobot_WT61PC.h> #include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); SoftwareSerial portTwo(8, 9); DFRobot_WT61PC sensor_1(&mySerial); DFRobot_WT61PC sensor_2(&portTwo); uint8_t stan = 0; uint32_t last = 0; void setup() { Serial.begin(115200); mySerial.begin(9600); portTwo.begin(9600); sensor_1.modifyFrequency(FREQUENCY_50HZ); sensor_2.modifyFrequency(FREQUENCY_50HZ); } void loop() { if (millis() - last > 1000UL && stan == 0) { mySerial.listen(); stan = 1; last = millis(); } if (millis() - last > 1000UL && stan == 1) { portTwo.listen(); last = millis(); stan = 0; } if (sensor_1.available()) { Serial.print("Angle\t"); Serial.print(sensor_1.Angle.X); Serial.print("\t"); Serial.print(sensor_1.Angle.Y); Serial.print("\t"); Serial.println(sensor_1.Angle.Z); //angle information of X, Y, Z } Serial.println(" "); if (sensor_2.available()) { Serial.print("Angle\t"); Serial.print(sensor_2.Angle.X); Serial.print("\t"); Serial.print(sensor_2.Angle.Y); Serial.print("\t"); Serial.println(sensor_2.Angle.Z); //angle information of X, Y, Z Serial.println(" "); } lcd.init(); // initialize the lcd lcd.backlight(); lcd.setCursor(0,0); lcd.print("X "); lcd.print(sensor_1.Angle.X); lcd.print(" X1 "); lcd.print(sensor_2.Angle.X); lcd.setCursor(0,1); lcd.print("Y "); lcd.print(sensor_1.Angle.Y); lcd.print(" Y1 "); lcd.print(sensor_2.Angle.Y); lcd.setCursor(0,2); lcd.print("Z "); lcd.print(sensor_1.Angle.Z); lcd.print(" Z1 "); lcd.print(sensor_2.Angle.Z); lcd.setCursor(0,3); lcd.print("kat"); } Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!