доброго времени суток. помогите пожалуйста исправить ошибки. Код (C++): int regim=1; int flag=0; void setup() { pinMode(10,OUTPUT); pinMode(9,OUTPUT); } void loop() { if(digitalRead(14)==HIGH&&flag==0) { regim++; flag=1; if(regim>4) { regim=1; } } if(digitalRead(14)==LOW&&flag==1) { flag=0; } if(regim==1) { digitalWrite(9,HIGH); delayMicroseconds(40); digitalWrite(9,LOW); delayMicroseconds(500); digitalWrite(10,HIGH); delayMicroseconds(40); digitalWrite(10,LOW); } if(regim==2) { digitalWrite(9,HIGH); delayMicroseconds(200); digitalWrite(9,LOW); delayMicroseconds(500); digitalWrite(10,HIGH); delayMicroseconds(200); digitalWrite(10,LOW); } if(regim==3) { digitalWrite(9,HIGH); delayMicroseconds(40); digitalWrite(9,LOW); delayMicroseconds(40); digitalWrite(9,HIGH); delayMicroseconds(40); digitalWrite(9,LOW); digitalWrite(10,HIGH); delayMicroseconds(40); digitalWrite(10,LOW); delayMicroseconds(40); digitalWrite(10,HIGH); delayMicroseconds(40); digitalWrite(10,LOW) delayMicroseconds(40); } if(regim==4) { digitalWrite(9,HIGH); delayMicroseconds(40); digitalWrite(9,LOW); delayMicroseconds(40); digitalWrite(9,HIGH); delayMicroseconds(40); digitalWrite(9,LOW); delayMicroseconds(500); digitalWrite(10,HIGH); delayMicroseconds(40); digitalWrite(10,LOW); delayMicroseconds(40); digitalWrite(10,HIGH); delayMicroseconds(40); digitalWrite(10,LOW) delayMicroseconds(40); } }
Что делает сиё творение и в чём конкретно ошибка?И хотелось бы увидеть коментарии чтобы понять Вашу логику
при подаче питания, ни чего не происходит -первое нажатие кнопки. включается первый режим короткие одиночные вспышки ,длит. 40мс ) -второе нажатие,длинные одиночные вспышки длит. 200мс -третье нажатие, двойные вспышки без паузы длит. 40мс -четвертое нажатие, двойные вспышки с паузой длит.40мс [пишет вот что In function 'void loop()': 67:7: error: expected ';' before 'delayMicroseconds' 86:7: error: expected ';' before 'delayMicroseconds']
Код (C++): int regim=1; int flag=0; void setup() { pinMode(10,OUTPUT); pinMode(9,OUTPUT); } void loop() { if(digitalRead(14)==HIGH&&flag==0) { regim++; flag=1; if(regim>4) { regim=1; } } if(digitalRead(14)==LOW&&flag==1) { flag=0; } if(regim==1) { digitalWrite(9,HIGH); delayMicroseconds(40); digitalWrite(9,LOW); delayMicroseconds(500); digitalWrite(10,HIGH); delayMicroseconds(40); digitalWrite(10,LOW); } if(regim==2) { digitalWrite(9,HIGH); delayMicroseconds(200); digitalWrite(9,LOW); delayMicroseconds(500); digitalWrite(10,HIGH); delayMicroseconds(200); digitalWrite(10,LOW); } if(regim==3) { digitalWrite(9,HIGH); delayMicroseconds(40); digitalWrite(9,LOW); delayMicroseconds(40); digitalWrite(9,HIGH); delayMicroseconds(40); digitalWrite(9,LOW); digitalWrite(10,HIGH); delayMicroseconds(40); digitalWrite(10,LOW); delayMicroseconds(40); digitalWrite(10,HIGH); delayMicroseconds(40); digitalWrite(10,LOW);//забыл поставить точку с запятой (бывает) delayMicroseconds(40); } if(regim==4) { digitalWrite(9,HIGH); delayMicroseconds(40); digitalWrite(9,LOW); delayMicroseconds(40); digitalWrite(9,HIGH); delayMicroseconds(40); digitalWrite(9,LOW); delayMicroseconds(500); digitalWrite(10,HIGH); delayMicroseconds(40); digitalWrite(10,LOW); delayMicroseconds(40); digitalWrite(10,HIGH); delayMicroseconds(40); digitalWrite(10,LOW) delayMicroseconds(40); } }
А не пробовали сделать то, что от вас хочет компилятор? Т.е. все-таки поставить точку с запятой перед delayMicroseconds? Вот тут в средней строке: Код (C++): delayMicroseconds(40); digitalWrite(10,LOW) delayMicroseconds(40);
Поставьте еще одну точку с запятой, у вас не только одной не хватало 86:7 - это строка и номер символа в окрестности которых возникла ошибка
просто начало кода взято с одного источника, начиная с Код (C++): digitalWrite(9,HIGH); long interval = 40; digitalWrite(9,LOW); long interval = 500; далее додумано мной, но на основе другого источника