Код: Выделить всё
boolean butt_flag=0;
boolean butt;
boolean led13=0;
boolean naprav=0; // направление движения
unsigned long last_press;
unsigned long last_time;
#define potent_pin 1 // потенциометр изменения скорости вращения
#define potent_speed_pin 2 // потенциометр изменения продолжительности вращения в одну сторону
int val; // переменная val отвечает за скорость вращения двигателя
int time_1; // время движения двигателя в одну сторону
void setup() {
pinMode(A0, INPUT_PULLUP);
pinMode(13, OUTPUT);
Serial.begin(9600);
Serial.println("Запуск ");
pinMode(9, OUTPUT);
pinMode(3, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
}
void loop() {
val = analogRead(potent_pin);
val = map(val, 0, 1023, 150, 255);
val = constrain(val, 150, 255);
time_1 = analogRead(potent_speed_pin);
time_1 = map(time_1, 0, 1023, 0, 150);
time_1 = constrain(time_1, 0, 150);
if (millis() - last_time >time_1*50) {
last_time = millis();
naprav = !naprav;
}
butt = !digitalRead(A0);
if (butt == 1 && butt_flag == 0 && millis() - last_press > 20) {
butt_flag = 1;
led13 = !led13;
digitalWrite(13, led13);
last_press = millis();
}
if (butt == 0 && butt_flag == 1) {
butt_flag = 0;
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(9, 0);
digitalWrite(3, 0);
}
if (led13 == 1) {
// Serial.println(" ----- Питание подано ----");
if (naprav == 0) {
Serial.println(" Вправо");
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(9, 1);
analogWrite(3, val);
} else {
Serial.println(" Влево");
digitalWrite(3, 0);
digitalWrite(9, 0);
digitalWrite(6, 1);
analogWrite(5, val);
}
}
}