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

Co robię źle? Arduino

Object Storage Arubacloud
0 głosów
360 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 160 wizyt
pytanie zadane 5 marca 2017 w C i C++ przez WhiteHartLane Nowicjusz (170 p.)
–1 głos
1 odpowiedź 699 wizyt
0 głosów
2 odpowiedzi 273 wizyt
pytanie zadane 17 lipca 2017 w Nasze projekty przez Hiskiel Pasjonat (22,830 p.)

92,565 zapytań

141,418 odpowiedzi

319,602 komentarzy

61,951 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...