نوشته اصلی توسط
miladdav
سلام،من میخوام سرعت سرو موتور 180 درجه رو به وسیله یه button کنترل کنم،به این صورت که اگر از مینیمم تا ماکزیمم سرعت سرو رو به 10 قسمت تقسیم کنیم با هربار فشرده شدن button یک واحد به سرعت سرو اضافه بشه و با یه button دیگه سرعت رو کم کنیم.من برای این کار از برنامه زیر استفاده میکنم،ولی مشکلی که داره اینه که وقتی برنامه تو حلقه for هست و ما کلید رو فشار میدیم مقدار کلید خوانده نمیشه،من میخوام مثل وقتی که از پتانیومتر استفاده میکنیم و مقدار اون در analogRead ذخیره میشه تعداد فشرده شدن کلید نیز ذخیره بشه حالا بر نامه هر جا که میخواد باشه.
<include <Servo.h#
;Servo myservo
;int button1=0
;int button2=0
;int x=0
;int pos=0
}()void setup
;(myservo.attach(7
;(pinMode(button1,INPUT_PULLUP
;(pinMode(button2,INPUT_PULLUP
{
}()void loop
}(if(digitalRead(button1)==0
;++x
;(delay(50
{
}(if(digitalRead(button2)==0
;--x
;(delay(50
{
(for(pos = 0; pos < 180; pos += 1
}
;(myservo.write(pos
delay(x); //speed of servo
{
(for(pos = 180; pos > 0; pos -= 1
}
;(myservo.write(pos
delay(x); //speed of servo
{
{