int val;
void setup()
{
Serial.begin(9600);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
}
void loop()
{
if (Serial.available())
{
val = Serial.read();
if (val == '1')
{
digitalWrite(2, HIGH);
}
if ( val == '0')
{
digitalWrite(2, LOW);
}
if (Serial.available())
{
val = Serial.read();
if (val == '3')
{
digitalWrite(3, HIGH);
}
if ( val == '2')
{
digitalWrite(3, LOW);
}
if (Serial.available())
{
val = Serial.read();
if (val == '5')
{
digitalWrite(4, HIGH);
}
if ( val == '4')
{
digitalWrite(4, LOW);
}
}
}
}
}
загорается толька светодиодл под цифрой 2
Другие языки программирования и технологии
помогите с программой (arduino)
Сократи код до digitalWrite(2, HIGH);
или даже потом digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
Тогда будешь уверен в схеме, что все рабочее.
Потом тоже
digitalWrite(2, LOW);
что оно может погасить
А уже потом
if (Serial.available())
{
val = Serial.read();
// и тут множество проверок
}
или даже потом digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
Тогда будешь уверен в схеме, что все рабочее.
Потом тоже
digitalWrite(2, LOW);
что оно может погасить
А уже потом
if (Serial.available())
{
val = Serial.read();
// и тут множество проверок
}
Сразу обозначу что с ардуинкой не занимался, только некоторые теоритические знания. Зато немного знаю си++.
И первый вопрос зачем столько всего? Почему не так например?
void loop()
{
if (Serial.available())
{
val = Serial.read();
switch(val)
{
case 0:
digitalWrite(2, LOW);
break;
case 1:
digitalWrite(2, HIGHT);
break;
case 2:
digitalWrite(3, LOW);
break;
case 3:
digitalWrite(3, HIGHT);
break;
case 4:
digitalWrite(4, LOW);
break;
case 5:
digitalWrite(4, HIGHT);
break;
default:
break;
}
}
}
А вообще попробуйте сначала просто включить все светодиоды и убедится что они горят, как советоал kaiu.
И первый вопрос зачем столько всего? Почему не так например?
void loop()
{
if (Serial.available())
{
val = Serial.read();
switch(val)
{
case 0:
digitalWrite(2, LOW);
break;
case 1:
digitalWrite(2, HIGHT);
break;
case 2:
digitalWrite(3, LOW);
break;
case 3:
digitalWrite(3, HIGHT);
break;
case 4:
digitalWrite(4, LOW);
break;
case 5:
digitalWrite(4, HIGHT);
break;
default:
break;
}
}
}
А вообще попробуйте сначала просто включить все светодиоды и убедится что они горят, как советоал kaiu.
Да очень просто. тебе не надо использовать вложены циклы для этой задачи.
void loop()
{
if (Serial.available())
{
val = Serial.read();
if (val == '1')
{
digitalWrite(2, HIGH);
}
if ( val == '0')
{
digitalWrite(2, LOW);
}
if (val == '3')
{
digitalWrite(3, HIGH);
}
if ( val == '2')
{
digitalWrite(3, LOW);
}
if (val == '5')
{
digitalWrite(4, HIGH);
}
if ( val == '4')
{
digitalWrite(4, LOW);
}
}
}
void loop()
{
if (Serial.available())
{
val = Serial.read();
if (val == '1')
{
digitalWrite(2, HIGH);
}
if ( val == '0')
{
digitalWrite(2, LOW);
}
if (val == '3')
{
digitalWrite(3, HIGH);
}
if ( val == '2')
{
digitalWrite(3, LOW);
}
if (val == '5')
{
digitalWrite(4, HIGH);
}
if ( val == '4')
{
digitalWrite(4, LOW);
}
}
}
Владислав Кириченко
У меня уно
Похожие вопросы
- Помогите написать программу со switch в СИ
- Помогите написать программу на С. Тема Составление программ с использованием массивов
- Помогите написать программу выключения компьютера на С++
- Помогите исправить программу
- помогите написать программы в ассемблере
- Помогите написать программу в с++
- Помогите написать программу на Visual Basic (найти ошибку)
- Помогите доделать программу
- Помогите написать программу на С++
- помогите написать программу на С в Борланде?