• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Co robię źle? Arduino

0 głosów
921 wizyt
pytanie zadane 23 sierpnia 2017 w C i C++ przez niezalogowany

#include <Servo.h>

Servo myservo;
int temp = 0;
int temp1 = -45;

void setup() {
myservo.attach(9);
myservo.write(0);
delay(500);
}

void loop() {
  for(temp = 0; temp = 90; temp ++ 1) {
    myservo.write(temp);
  }
delay(1000);

  for(temp = 90; temp = temp1; temp -- 1) {
    myservo.write(temp);
  }
  delay(1000);
}

Co tu nie tak???

Chcę, żeby Servo ,,poszło do przodu" o 90 stopni, a potem poszło od punktu 0 do -45 stopni

1 odpowiedź

0 głosów
odpowiedź 23 sierpnia 2017 przez 0e85dc6eaf Dyskutant (8,840 p.)
temp ++ 1 temp -- 1

a nie po prostu temp++ temp--?

A i poza tym druga wartość w pętli for to warunek a ty masz przypisanie. Raczej chodziło ci o temp < 90
komentarz 23 sierpnia 2017 przez niezalogowany

Dobra, mój błąd. Przepisałem kod na nowy :

#include <Servo.h>

Servo myservo;
int temp = 0;
int temp1 = -45;

void setup() {
  myservo.attach(9);
  myservo.write(0);
  delay(500);
}

void loop() {
  for(temp = 0; temp = 90; temp ++) {
    myservo.write(temp);
  }
  delay(1000);
  for(temp = 90; temp = 315; temp --) {
    myservo.write(temp);
  }
  delay(1000);
}

I nadal nie działa jak napisałem powyżej. Możesz pomóc?

smiley

komentarz 23 sierpnia 2017 przez 0e85dc6eaf Dyskutant (8,840 p.)
A warunki?
komentarz 23 sierpnia 2017 przez 0e85dc6eaf Dyskutant (8,840 p.)
Jeżeli chcesz żeby kod wykonał się 90 razy to musisz napisać temp < 90 zamiast temp = 90 i w drugiej pętli analogicznie
komentarz 23 sierpnia 2017 przez niezalogowany
???
komentarz 23 sierpnia 2017 przez 0e85dc6eaf Dyskutant (8,840 p.)

Na przykład zamiast tego

for(temp = 0; temp = 90; temp ++) {
    myservo.write(temp);
  }

powinno być to


for(temp = 0; temp < 90; temp ++) {
    myservo.write(temp);
  }

 

komentarz 23 sierpnia 2017 przez niezalogowany
Ogólnie robię autko i system skręcania na servo. Servo (modelu SG90, MICRO) leży płasko (jak się patrzy od góry to głowica w lewym dolnym rogu), i potrzebuję, żeby skręcało jak należy (jak jedzie w lewo - głowica idzie na pozycję w programie 315, a gdy w prawo - 90).

Za pomoc dzięki. po poprzednim komentarzu nadal nie działa. To narazie skrypt testowy.
komentarz 27 sierpnia 2017 przez Kor257 Nowicjusz (140 p.)
1. servo obraca się o 180 stopni więc ja nwm jak ty chcesz żeby się obróciło o 315

2. według mnie nie powinno być tego delay(500); w void setup

3. Nadal nie poprawiłeś tego, że w funkcji for ma być znak > a nie =, w tym środkowym warunku

Podobne pytania

–1 głos
4 odpowiedzi 325 wizyt
pytanie zadane 5 marca 2017 w C i C++ przez WhiteHartLane Nowicjusz (170 p.)
–1 głos
1 odpowiedź 1,190 wizyt
0 głosów
2 odpowiedzi 473 wizyt
pytanie zadane 17 lipca 2017 w Nasze projekty przez Hiskiel Pasjonat (22,830 p.)

93,771 zapytań

142,731 odpowiedzi

323,383 komentarzy

63,371 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...