Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 14.12.2018
Сообщений: 21
1

Цикличное мигание светодиода

29.07.2020, 18:28. Просмотров 904. Ответов 6

Всем здравствуйте!Впервые в ардуино хотелось сделать так что при нажатии в форме на "1" загорался 13 пин светодиода встроенного,при нажатии на "0" выключался.При нажатии на "2" выполнялось цикличное мигание пока не нажму еще одну любые из цифр

ПРОБЛЕМА в том что все работает,но при включении цикла,когда хочу переключить выключить светодиод-- не получается!Помогите по простому что б компактно и я понял Заранее спасибо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
byte num;
void setup() {
  Serial.begin(9600);
  pinMode(13,1);
 
}
 
void loop() {
if (Serial.available() > 0) {
    num=Serial.read();
 
    if (num == '0' ) {
      digitalWrite(13,0);
    }
    
 
    if (num == '1' ) {
      digitalWrite(13,1);
    }
      while (num == 2) {
      digitalWrite(13,1);
      delay(500);
      digitalWrite(13,0);
      delay(500);
     if (num!=2){
        break;
     }
 
      }
      delay(50);
    
      }
delay (3);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2020, 18:28
Ответы с готовыми решениями:

Мигание светодиода до 3-з раз через millis()
Как сделать так если допустим надо поморгать светодиодом до 3-х раз и более, а затем выключить. ...

Мигание светодиода
Прошу помочь исправить ошибки в лаб.работе! Очень важно( сама не могу разобраться. Содержание...

Мигание светодиода (ASM)
Кто может сделать,необходимо сделать моргания светодиода!и что б он с каждым разом моргал все...

Мигание светодиода с частотой 10 Гц
Нужно написать программу без прерываний при помощи которой диода подключенная к микроконтроллеру...

6
18 / 8 / 3
Регистрация: 03.08.2019
Сообщений: 39
29.07.2020, 18:58 2
Наконец в php можно писать с++ без FFI...
0
1012 / 490 / 280
Регистрация: 21.06.2012
Сообщений: 1,687
29.07.2020, 19:05 3
Jalic, почему в первых двух сравнениях идет сравнение сроки а в цикле сравнение числа? Зачем в цикл запихали это условие: if (num!=2) оно же никогда не выполнится, ведь оно в: while (num == 2).
0
0 / 0 / 0
Регистрация: 14.12.2018
Сообщений: 21
29.07.2020, 19:25  [ТС] 4
как это сделать????????

Добавлено через 45 секунд
Цитата Сообщение от sasha0012 Посмотреть сообщение
Jalic, почему в первых двух сравнениях идет сравнение сроки а в цикле сравнение числа? Зачем в цикл запихали это условие: if (num!=2) оно же никогда не выполнится, ведь оно в: while (num == 2).
как сделать?
0
1012 / 490 / 280
Регистрация: 21.06.2012
Сообщений: 1,687
29.07.2020, 19:37 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void loop() {
    if (Serial.available() > 0) {
        num=Serial.read();
    }
    
    if (num == '0' ) {
        digitalWrite(13,0);
    }
        
    if (num == '1' ) {
        digitalWrite(13,1);
    }
        
    if (num == '2') {
        digitalWrite(13,1);
        delay(500);
        digitalWrite(13,0);
        delay(500);
    }
        
    if (num != '2' && num != '1'){
        digitalWrite(13,0);
    }
}
0
0 / 0 / 0
Регистрация: 14.12.2018
Сообщений: 21
29.07.2020, 19:48  [ТС] 6
Цитата Сообщение от sasha0012 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void loop() {
    if (Serial.available() > 0) {
        num=Serial.read();
    }
    
    if (num == '0' ) {
        digitalWrite(13,0);
    }
        
    if (num == '1' ) {
        digitalWrite(13,1);
    }
        
    if (num == '2') {
        digitalWrite(13,1);
        delay(500);
        digitalWrite(13,0);
        delay(500);
    }
        
    if (num != '2' && num != '1'){
        digitalWrite(13,0);
    }
}
там как бы не цикл проверил только что
0
1012 / 490 / 280
Регистрация: 21.06.2012
Сообщений: 1,687
29.07.2020, 20:19 7
Цитата Сообщение от Jalic Посмотреть сообщение
там как бы не цикл
ну loop это и есть цикл. Попробуйте задержку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void loop() {
    if (Serial.available() > 0) {
        num=Serial.read();
    }
    
    if (num == '0' ) {
        digitalWrite(13,0);
    }
        
    if (num == '1' ) {
        digitalWrite(13,1);
    }
        
    if (num == '2') {
        digitalWrite(13,1);
        delay(500);
        digitalWrite(13,0);
        delay(500);
    }
        
    if (num != '2' && num != '1'){
        digitalWrite(13,0);
    }
 
delay(1000);
}
посмотрите если он вообще работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void loop() {
    
    if (num != '1' ) {
        digitalWrite(13,1);
        num = '1' ;
    } else {
        digitalWrite(13,0);
        num = '0' ;
    }
 
delay(1000);
}
Сам не могу проверить, нет под рукой ардуинки.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2020, 20:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Мигание светодиода по переполнению счетчика
Проблема в том, что при проверке в AVRStudio, програмка не выходит из внутреннего цикла, где может...

Не работает мигание светодиода с использованием таймера Atmega328P
Отказывается работать код. Запустил таймер, на прерывание через 0.25 мс, и хочу использовать в...

Мигание светодиода, организовать задержку
Добрый день. Пытаюсь написать программу, которая имитировала бы мигание светодиода. (1 -...

Постоянное мигание (раз в секунду, а то и чаще) светодиода HDD
Проблема такая: Постоянно мигает светодиод занятости жесткого диска, раз в секунду и чаще даже...

Цикличное выполнение запроса
Заранее извиняюсь, если кто-то уже задавал этот вопрос, но я не нашла. И, если формулировка звучит...

Цикличное обращение к RadioButton
Собственно есть вот элементарнейший код, он должен присвоить находящимся на форме РадиоБаттонам...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.