помогите привести код к нормальному виду;
- Войдите на сайт для отправки комментариев
Втр, 23/05/2017 - 14:33
написал код для работы ардуино и дешифратора, и получилось что каждый раз при поступлении команды с сериал запускаю цикл который увеличивает значение счетчика. помогите написать код так чтобы счетчик запускался в начале кода, и можно было в любое время выйти из цикла.
int VXOD1 = 9;
int VXOD2 = 6;
int VXOD3 = 5;
int VXOD4 = 4;
int val;
void setup(){
pinMode(VXOD1,OUTPUT);
pinMode(VXOD2,OUTPUT);
pinMode(VXOD3,OUTPUT);
pinMode(VXOD4,OUTPUT);
Serial.begin(9600); // инициализируем прередачу данных по ком порту на скорости 9600 бод.
}
void loop(){
if (Serial.available()) {
val = Serial.read();
if (val == '1'){// 2led
for(int i =0; ; i++){
digitalWrite(VXOD1,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(100);
}
}//закрывающие скобки
if (val == '2'){ // 3led
for(int i =0; ; i++){
digitalWrite(VXOD2,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(100);
}
}//закрывающие скобки
if (val == '3'){ // 4led
for(int i =0; ; i++){
digitalWrite(VXOD1,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD2,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(250);
}
}//закрывающие скобки
if (val == '4'){ // 5led
for(int i =0; ; i++){
digitalWrite(VXOD3,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(100);
}
}//закрывающие скобки
if (val == '5'){ // 6led
for(int i =0; ; i++){
digitalWrite(VXOD1,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD3,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(250);
}
}//закрывающие скобки
if (val == '6'){ // 7led
for(int i =0; ; i++){
digitalWrite(VXOD2,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD3,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(250);
}
}//закрывающие скобки 8й
if (val == '7'){ // 8led
for(int i =0; ; i++){
digitalWrite(VXOD1,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD2,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD3,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(250);
}
}//закрывающие скобк*/
if (val == '8'){ // 9led
for(int i =0; ; i++){
digitalWrite(VXOD4,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(100);
}
}
if (val == '9'){ // 10led
for(int i =0; ; i++){
digitalWrite(VXOD1,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD4,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(250);
}
}
if (val == 'Q'){ // 11led
for(int i =0; ; i++){
digitalWrite(VXOD2,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD4,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(250);
}
}
if (val == 'W'){ // 12led
for(int i =0; ; i++){
digitalWrite(VXOD1,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD2,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD4,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(250);
}
}
if (val == 'E'){ // 13led
for(int i =0; ; i++){
digitalWrite(VXOD3,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD4,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(250);
}
}
if (val == 'R'){ // 14led
for(int i =0; ; i++){
digitalWrite(VXOD1,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD3,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD4,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(250);
}
}
if (val == 'T'){ // 15led
for(int i =0; ; i++){
digitalWrite(VXOD2,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD3,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD4,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(250);
}
}
if (val == 'Y'){ // 16led
for(int i =0; ; i++){
digitalWrite(VXOD1,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD2,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD3,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
digitalWrite(VXOD4,(i % 2 == 0) ? 1 : 0); // на четных проходах включаем, на нечетных выключаем
delay(250);
}
}
}
Сначала научитесь:
1) понятно формулировать свои мысли
2) вставлять код программы про правилам форума
1) понятно формулировать свои мысли
шо тут непонятного? - // на четных проходах включаем, на нечетных выключаем
Если я вас правильно понял. Отправка восклицательного знака выводит из цикла