подскажите)
- Войдите на сайт для отправки комментариев
Чт, 19/12/2019 - 14:00
Moderator : пожалуйста, вставьте код правильно (возможно, новым сообщением в тему),
Moderator : пожалуйста, вставьте код правильно (возможно, новым сообщением в тему),
expected unqualified-id before if Ругается вот так
Николай620, вы программируете ударяя тихоокеанской сельдью о клавиатуру?
Уважаемый ваш юмор на высоте)
у нас только Омуль Байкальский)
Николай, все операторы должны находится внутри процедур или функций.
У вас процедура ЛУП закончилась в строке 26, оператор IF не находится ни в одной процедуре или функции. так нельзя
А когда исправите то, о чём Вам уже сказали, подумайте об операциях деления в строках №№ 22 и 28. Не могу сказать, что там неправильно, т.к. Вы не написали что именно Вы хотели сделать - может Вам так и нужно. Так что смотрите и сами думайте правильно там или нет.
Скобочку в строке 26 уберите и поставьте её в сааамый конец. Тогда логически всё будет правильно.
Но предвижу следующий вопрос: "а почему светодиод один раз загорелся и больше не гаснет ?"
Ответ - его никто не просил :)
В строке 3 Вы присваиваете переменной ledPin значение 13, а в строке 7 явно указываете на пин 13. Для чего тогда заводили переменную ?
В строке 22 вычисляете значение переменной cm = duration / 58 а в строке 28 снова вычисляете это же значение. Зачем ? Оно уже есть в переменной.
Ну и в строке 31 каша какая-то. Тут и имя переменной и её значение слились в кучу. А для компилятора это совсем другая, нигде не описанная, переменная.
---------
упс, пока писал кое что поменялось. минутку.
посмотрите на строки 20 и 25. Зачем дважды производить одно и то же вычисление ?
и ещё раз повторю
В строке 3 Вы присваиваете переменной ledPin значение 13, а в строке 7 явно указываете на пин 13. Для чего тогда заводили переменную ?
Спасибо, добавил скобки оператор IF теперь в процедуре компиляция прошла)буду думать дальше строкой 22 и 28 монитор показывает 0,я хотел что б светодиод загорался когда расстояние меньше 20 см
а он сейчас как себя ведёт ?
просто есть условие, при котором он должен загореться, но нет - когда должен погаснуть.
или наоборот. смотря куда второй конец подключен.
Монитор показывает 0 всегда а резко мигает)
в строке 25 вроде переменная cm раньше подразумевалась
оставить в самом начале как было?
ругаться стал на 26 строку со скобкой
ругаться стал на 26 строку со скобкой
delayMicroseconds(2);
Если ардуина на 328м проце, то микросекондс должно быть кратно 4м.
показывает в мониторе
0
0
0
0
0
ооооо так это ж датчик света почти как в подЬездах получается через реле SRD ))))
купил всяких штучек для изучения ардуинки..
так гляньте что Вам возвращает пулсеИн:
вместо
Serial
.print(cm);
напишите
Serial
.print(duration);
показывает в мониторе
0
Я же Вам писал: "обратите внимание на операции деления". Вы читаете, что Вам пишут?
Так откройте наконец описание операции деления и почитайте. Если сразу не дойдёт, читайте ещё раз и внимательно смотрите на свой код. И так пока не дойдёт!
так же 0
0
0
0
0
хорошо!
так же 0
0
0
0
0
похоже что вы запускаете какой-то другой код. не тот что выкладываете в форум
вот этот
хорошо!
Вот здесь подробнее про деление. Обязательно разберись сам, не жди подсказок.
вот этот
неправда. Этот код должен печатать не просто 0, а "0cm" - не вижу этого в вашем выводе. Значит запускаете код не тот, что обсуждаете.
проверяйте. может вы обновленный код забыли в плату загрузить?
так же 0
0
0
0
0
извиняюсь 0 cm выдает,ну по задумке если до объекта меньше 20 см то светодиод должен загореться
извиняюсь 0 cm выдает,ну по задумке если до объекта меньше 20 см то светодиод должен загореться
1) измерительные цепи не подключены или подключены неверно
2) цепи генерации зондирующего импульса не подключены или подключены неверно
3) нет генерации зондирующего импульса
4) генерация есть, но уровень импульсов мал
5) уровень принимаемых импульсов мал и не воспринимается микропроцессором
6) длительность принимаемого импульса мала, и не может быть обработана примененным способом
Вывод: Вам нужен осциллограф, чтобы найти причину.
спасибо большое ,причина была как я думаю в контактах отходят папа мама ((светодиод очень быстро замигал так как операции эти проходят очень быстро да?надо задать ему что б включался и выключался я думаю))и показывает расстояние в мониторе 5400
получилось,спасибо обрадовало ппц))еще не на тот светодид смотрел)
почему показывает не как раньше в см а походу в мм?
почему показывает не как раньше в см а походу в мм?
Потому что вы не переменную cm выводите, а "сырое" значение с датчика
Николай. ну надо хоть чуть-чуть стараться самому думать, а не сразу вопрос задавать
можно и сразу вопрос, но тогда вопросов будет много, а толку от ответов мало :(
Последний вопрос на эту тему когда загружал скетч без диода он всё же выдовал мне 43 cm а не 4300 как сей час...
Не время полета ли звука он мне выводит?
Господа, это клиника.
Нет среднюю температуру по Гринвичу
Николай, у вас в каждом коде, который вы тут показываете - как минимум по десятку ошибок. Так что сказать. почему у вас раньше было 43, а сейчас 4300 - и какое из двух этих значений верное - абсолютно нереально.
Прежде чем начинать работать с датчиками и диодами - изучите любой учебник по языку программирования хотя бы до половины.
Раньше 22 строка была другая
Николай... щли бы вы... учебник читать
Serial.print(cm)
Я про монитор
Не паникуйте ребята так рано у нас впереди робот балансир )))))