#2 Re: Програмування Arduino » трещит сервомотор » 2017-02-17 11:04:47

Спасибо.Вопрос.как в данном случае выставить серву так что-бы движение начиналось не с 0 градусов а скажем с 10-20.как-то так.....

#3 Програмування Arduino » трещит сервомотор » 2017-02-17 02:08:46

pavel447
відповідей: 4

Прошу помощи у знатоков Arduino в корректировке скетча кодового замка.Суть проблемы:собрал кодовый замок на ардуино про мини.Ардуина,две кнопки,севомотор и два светодиода.Все работает но при возврате сервомотора в исходное положение слышен щелчек...Помогите пожалуйста с корректировкой кода...Вот код:

#include<servo.h>

Servo myservo;

int val=60;
int val2=-60;
int LED_rot=4;
int LED_gruen=7;
int SW1=2;
int SW2=3;
int Buzzer=9;
int x, y, code1, code2, resetTimer=0;

void setup ()
{
myservo.attach(10);
pinMode(LED_rot, OUTPUT);
pinMode(Buzzer, OUTPUT);

pinMode(SW1, INPUT);
digitalWrite(SW1, HIGH);

pinMode(SW2, INPUT);
digitalWrite(SW2, HIGH);
Clr_Code();

}

void loop()
{

// Кнопка1 = 5 нажатий
if (!digitalRead(SW1))
{
delay(50);
if (!digitalRead(SW1))
{
Blink();
x++;
if(x==5)
{
code1=true;
}else code1=false;

do{
}while (!digitalRead(SW1));
}
}

// Кнопка2 = 3 нажатия
if (!digitalRead(SW2))
{
delay(50);
if (!digitalRead(SW2))
{
Blink();
y++;
if(y==3)
{
code2=true;
}else code2=false;

do{
delay(50);
resetTimer++;

if (resetTimer>50)
{
Toggle_Flash();
Clr_Code();
break;
}
}while (!digitalRead(SW2));
resetTimer=0;
}
}

if (code1 == true && code2 == true)
{
digitalWrite(LED_gruen, HIGH);
myservo.write(val);
//delay(15);
delay(5000);

Clr_Code();
digitalWrite(LED_gruen, LOW);
}
else
{
digitalWrite(LED_gruen, LOW);
}
}
void Blink(void)
{
digitalWrite(LED_rot, HIGH);
tone(Buzzer, 500, 150);
delay(200);
digitalWrite(LED_rot, LOW);
}

void Toggle_Flash(void)
{
int tog=0;
for (x=0; x<6; x++)
{
if (tog==0) tog=1; else tog=0;
digitalWrite(LED_rot, tog);
tone(Buzzer, 500, 250);
delay(300);
}
}

void Clr_Code (void)
{
x=0;
y=0;
code1=0;
code2=0;
resetTimer=0;
myservo.write(val2);
delay(1000);
}

Підвал форуму