-
GAMEPOD.hu
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
---gabika---
tag
válasz ---gabika--- #11056 üzenetére
Idáig vagyok meg vele:
A pásztázó modot működik,de ha megnyomom a joybutton-t akkor nem vált át manuálra,nem tudom vezérelni a szervot.#include <Servo.h>
Servo servo;
int joystick_x = A0;
int pos_x;
int servo_pos = 90;
const int button = 2;
int angle = 0;
bool State = 0;
void setup ( )
{
servo.attach (12) ;
servo.write (servo_pos);
pinMode (joystick_x, INPUT) ;
pinMode(button, INPUT_PULLUP);
}
void loop ( )
{
bool buttonState = digitalRead(button);
if (buttonState == HIGH)
{
State = !State;
if (State == HIGH)
{
//Manual MOD
{
pos_x = analogRead (joystick_x) ;
if (pos_x < 300)
{
if (servo_pos < 10)
{
}
else
{
servo_pos = servo_pos - 3;
servo.write ( servo_pos ) ;
delay (50);
}
}
if (pos_x > 700)
{
if (servo_pos > 180)
{
}
else
{
servo_pos = servo_pos + 3;
servo.write ( servo_pos ) ;
delay (50) ;
}
}
}
}
else
//pásztázás
{
for (angle = 0; angle < 180; angle++)
{
servo.write(angle);
delay(15);
}
// now scan back from 180 to 0 degrees
for (angle = 180; angle > 0; angle--)
{
servo.write(angle);
delay(15);
}
}
delay(20);
}
} -
nagyúr
válasz ---gabika--- #11057 üzenetére
Első körben cseréld ezt a sort:
if (buttonState == HIGH)
erre:
if (buttonState == true)
mert a bool változónak nincs olyan állapota, hogyHIGH
, de ha mégis lenne, akkor viszont a pergésmentesítés hiánya lehet még a probléma. -
DigitXT
félisten
válasz ---gabika--- #11087 üzenetére
Mert rosszul van zárójelezve. Csak nyomvatartásra megy be,
viszont folyton kapcsolgatja az állapotot, amíg nyomva van...