Технический форум по робототехнике.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino UNO
//
////////////////////////
//
// Программа №2 для управления роботом /
//
long y1 = 0;
long y2 = 0;
void setup()
{
pinMode(2, OUTPUT);//канал передачи звуковых и световых эффектов
digitalWrite(2, LOW);
pinMode(3, OUTPUT);//канал управления левым мотором
digitalWrite(3, LOW);
pinMode(4, OUTPUT);// канал управления правым мотором
digitalWrite(4, LOW);
pinMode(5, INPUT);// кнопка управления пуском
}
void loop()
{
metka:
if (digitalRead (5)==LOW){y2=millis();y1=y2;goto metka;} //условие блокировки запуска работы скетча
metka0: // 1 фрагмент программы - сирена1
y2=millis();
if (y2-y1<=3000)
{tone(2, 600,200);delay(250); tone(2, 1000,200);delay(250);goto metka0;}
else {y1=y2;goto metka1;}
metka1: // 2 фрагмент программы - вращение по часовой стрелке
y2=millis();
if (y2-y1<=4200)
{
digitalWrite(3, HIGH);
goto metka1;}
else {digitalWrite(3, LOW);y1=y2;goto metka2;}
metka2: // 3 фрагмент программы - сирена2
y2=millis();
if (y2-y1<=3000)
{tone(2, 900,200);delay(250); tone(2, 1300,200);delay(250);goto metka2;}
else {y1=y2; goto metka3;}
metka3: // 4 фрагмент программы - вращение против часовой стрелки
y2=millis();
if (y2-y1<=6000)
{
digitalWrite(4, HIGH);
goto metka3;}
else {digitalWrite(4, LOW);y1=y2;goto metka4;}
metka4: // 5 фрагмент программы - сирена3
y2=millis();
if (y2-y1<=3000)
{tone(2, 500,200);delay(250); tone(2, 700,200);delay(250);goto metka4;}
else {y1=y2; goto metka;}
}
//
// Конец /
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////