Skocz do zawartości

Emte

Użytkownicy
  • Zawartość

    3
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O Emte

  • Ranga
    1/10

Informacje

  • Płeć
    Mężczyzna
  1. Witam, 1. Czy istnieje możliwość sczytania kierunku jazdy samochodu z GPS w postaci wektora? Jeśli tak to jak mogę tego dokonać? 2. Czy da się dzięki połączeniu arduino z dowolną nawigacją GPS, odczytać współrzędne położenia i tym samym w jakiś sposób ściągnąć te dany z nawigacji? Czy jedyną opcją jest połączenie modułu GPS z arduino? Pozdrawiam
  2. Dziękuję za liczną odpowiedź i pomoc w moim problemie. Treker skorzystałem z twoich podpowiedzi. Wielkie dzięki. Oto mój przerobiony kod: #include <SoftwareSerial.h> #include <Servo.h> //importowanie biblioteki Servo myservo; int pozycja3 = 150; int pozycja2 = 100; int pozycja1 = 50; int odebraneDane = ""; int serwo = 7; void setup() { myservo.write(pozycja1); myservo.attach(serwo); Serial.begin(9600); //Uruchomienie komunikacji } void loop() { if(Serial.available() > 0) { //Czy Arduino odebrało dane odebraneDane = Serial.read(); //Jeśli tak, to odczytaj je do znaku końca linii i zapisz w zmiennej odebraneDane Serial.println("Odebrana pozycja " + odebraneDane); //Wyświetl komunikat if(odebraneDane=='2'){ myservo.write(pozycja2); } if(odebraneDane=='3'){ myservo.write(pozycja3); } } } Jak można zauważyć użyłem zmiennej typu int zamiast string ponieważ nie mogłem sobie poradzić z odczytywaniem zmiennej "odebraneDane" tak by serwo ustawiało się na odpowiedniej pozycji. Zdefiniowałem więc wcześniej przykładowe liczby 3,2,1 jako odpowiednie ustawienia serwa. Jak wczytać "odebraneDane" tak by ich wartość wprost oznaczała pozycje serwa? Dla przykładu gdy z pliku wczytam wartość 2 serwo obróci się o daną wartość. Gdyż np taki oto kod jest błędny: if(odebraneDane=='2'){ myservo.write(odebraneDane); } Mam również kłopot jeśli chodzi o wyświetlanie komunikatów. Są one przesunięte w lewo: Serdecznie pozdrawiam
  3. Witam, Jestem użytkownikiem Arduino Leonardo. Napisałem prosty program do sterowania serwomechanizmem o określony kąt obrotu(np. 5 = 50°) wpisywany w Monitor portu. Jakich funkcji/bibliotek użyć by zmienna odczytywana była z pliku tekstowego umieszczonego w systemie Windows, do którego wcześniej ręcznie wpisał bym daną wartość? Chciałbym przerobić program. Oto kod programu: #include <SoftwareSerial.h> //importowanie biblioteki #include <Servo.h> //importowanie biblioteki Servo myservo; int pozycja1 = 50; // zmienna z pozycją nr 1 int pozycja2 = 100; // zmienna z pozycją nr 2 int pozycja3 = 110; // zmienna z pozycją nr 3 int pozycja4 = 120; // zmienna z pozycją nr 4 int pozycja5 = 130; // zmienna z pozycją nr 5 int pozycja6 = 140; // zmienna z pozycją nr 6 int pozycja7 = 150; // zmienna z pozycją nr 7 int pozycja8 = 160; // zmienna z pozycją nr 8 int pozycja9 = 170; // zmienna z pozycją nr 9 int serwo = 7; // zmienne z pinem serwa - pin 7 int data; // zmienna, w której przechowujemy odebrane dane void setup() { myservo.write(pozycja1); myservo.attach(serwo); //ustawienie pinu serwa na 7 (int serwo = 7;) Serial.begin(9600); // ustawienie odpowiedniej prędkości Serial.println("System sterowania serwomechanizmem uruchomiony! Wpisz: 1 - 9 aby zmienic pozycje ramion serwa."); // wypisanie zdania w monitorze serial portu } void loop() { if (Serial.available() > 0) { data=Serial.read(); // odczytane dane = data if(data=='1'){ // jeżeli odczyta 1 myservo.write(pozycja1); // ustawienie pozycji serwa na "pozycja1" Serial.println("Pozycja 0'"); // wypisanie zdania } if(data=='2'){ myservo.write(pozycja2); Serial.println("Pozycja 10'"); } if(data=='3'){ myservo.write(pozycja3); Serial.println("Pozycja 20'"); } if(data=='4'){ myservo.write(pozycja4); Serial.println("Pozycja 30'"); } if(data=='5'){ myservo.write(pozycja5); Serial.println("Pozycja 40'"); } if(data=='6'){ myservo.write(pozycja6); Serial.println("Pozycja 50"); } if(data=='7'){ myservo.write(pozycja7); Serial.println("Pozycja 60"); } if(data=='8'){ myservo.write(pozycja8); Serial.println("Pozycja 70"); } if(data=='9'){ myservo.write(pozycja9); Serial.println("Pozycja 80"); } } delay(100); //oczekiwanie na kolejne dane... }
×
×
  • Utwórz nowe...