помогите новичку пожалуйста
- Войдите на сайт для отправки комментариев
Ср, 02/03/2016 - 18:30
помогите пожалуйста, с компьютера на ардуино поступают команды в таком виде: "Rele 1", "Rele 2", "Rele 3" (изменить их нельзя)
написал такой код:
if (Serial.available() > 0) { char str = Serial.read(); if (str == 'Rele 1') digitalWrite(led11, HIGH); if (str == 'Rele 2') digitalWrite(led12, HIGH); if (str == 'Rele 3') digitalWrite(led13, HIGH); }
но не работает, что делаю не так ?
заранее признателен за помощь !
#76
помогите пожалуйста, с компьютера на ардуино поступают команды в таком виде: "Rele 1", "Rele 2", "Rele 3" (изменить их нельзя)
написал такой код:
но не работает, что делаю не так ?
заранее признателен за помощь !
str это у вас всего один символ, а не строка. Из Serial нужно читать всю строку и сравнивать ее или используя Сишные функции типа strcmp или использовать ардуиновский тип String
как минимум не хватает фигурных скобок
if
( условие )
{ // выполнять действия }скобки обязательны когда есть несколько операндов, в данном с ними или без них будет работать одинаково
Подскажите и мне пожалуйста, сейчас уперся в tone() http://arduino.ru/Reference/Tone
и
pulseIn() http://arduino.ru/Reference/PulseIn
пишу
duration = pulseIn(pin, HIGH);
вот если эту duration посылаешь в print в com-port показывет замерянное число (в микросекундах)
вроде все норм
но если хочу использовать это значение в delay или tone
delay (duration)
или
tone(13, 200, duration);
ардуино не видит значение (число) которое я подразумеваю под duration...принимает его как ноль
что-то я совсем неправильно понимаю??