Skocz do zawartości

Enter24

Użytkownicy
  • Zawartość

    2
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O Enter24

  • Ranga
    1/10
  1. Cóż... nie wiem czy to było przemęczenie, ale dziś ponownie przysiadłem nad projektem. Musiałem być zmęczony... bo teraz poprawiłem w kilka minut. Skorygowałem kod: #include <Servo.h> Servo serwo; void setup() { Serial.begin(9600); serwo.attach(5); serwo.write(0); } void loop() { if(Serial.available()>0){ float czas2 = Serial.readStringUntil('\n').toFloat(); Serial.println(czas2); serwo.write(90); delay(czas2*1000); serwo.write(0); } } Teraz wszystko śmiga. Pozostaje mi do projektu podłączyć powerbank, obudowę i cieszyć się działaniem. O ile rozumiem to w poprzednim kodzie próbowałem odebrać i zapisać znak jako liczbę, przez co układ zamiast "2" zapisywał 50, stąd wynik pomnożony x1000 dał przekręcenie inta i wynik rzędy -15k. Chyba już rozumiem swój błąd Sorry za tak trywialne zagadnienie.
  2. Cześć. Wiem, że temat związany z App inventorem pojawiał się już kilka razy, jednakże są już dość stare (sprawdzone w wyszukiwarce, ostatni na tym dziale w maju) a ich treść jakoś nie rozwiązała problemu. Potrzebuję wysterować jeden serwo tak, by z telefonu zadać mu czas w jakim będzie obrócony po czym wróci do pozycji 0. Do tego wykorzystuję HC-06 podłączone do Arduino nano. W przypadku prób wysterowania serwo z komputera (zasilanie i monitor portu szeregowego z kompa) bezproblemowo działa - odwraca się np. na 2s po czym wraca do pozycji 0. W przypadku gdy nano podłączę już pod powerbank, przewody tx i rx z bluetooth, pojawia się problem iż niezależnie od wysłanej liczby serwo ustawia się i natychmiast wraca na pozycję wyjściową. W przypadku jak próbuję zadać mu jakąś konkretną liczbę (np. ma wysyłać 3 po wciśnięciu klawisza) to ustawi się w pozycji "1" gdzie już zostanie. W odpowiedzi aplikacja dostaje krzaki. Jestem kompletnie zielony, stąd pytania: - Jaką ustawić prędkość Serial w przypadku bluetooth? Na tutkach widziałem i 9600 i 38400 - Co głównie robię nie tak? Kod. Skromny, ale właściwie nic więcej ten układ nie potrzebuje robić. Zawiera jedynie serwo i bluetooth: #include <Servo.h> Servo serwo; void setup() { Serial.begin(9600); serwo.attach(5); serwo.write(0); } void loop() { if(Serial.available()>0){ int czas2 = Serial.read(); Serial.println(czas2*1000); serwo.write(90); delay(czas2*1000); serwo.write(0); } } mnożnik "*1000" W celu uzyskania wartości w sekundach. Apka daje np. 1, ardu robi z tego 1000 co daje 1s w delay (jak dobrze kojarzę). Obstawiam, iż jednym z problemów może być to iż wysyłam liczby zmiennoprzecinkowe, ale wtedy int (o ile dobrze kojarzę) je powinien po prostu pomijać. Wysłałem liczbę całkowitą z podobnym skutkiem. Zamieniłem blok by nie wysyłał tekstu z "Press Time" a "3" i nie było różnicy. Sorry za pewnie tak banalny problem, ale spędziłem nad nim wieczór i nie mogę zrozumieć co jest nie tak
×
×
  • Utwórz nowe...