RC машина на arduino на базе Китай машинки , проблемы с написанием скетча
- Войдите на сайт для отправки комментариев
Доброго времени суток всем , пишу первый раз так что просьба сильно не пинать .
Собираю машину на радио управлении с контроллером uno +motor sheild , и китайская машинка с р.у.
У машинки два dc мотора , на заднюю ось через редуктор и спереди подпружиненная рейка с зубцами , которую передвигает мотор
И собственно проблема со скетчем , точнее с его написанием
Вот собственно что написалось :
#include <AFMotor.h> AF_DCMotor motor1(4); Int val='0'; Void setup() { Serial.begin(9600); } Void loop(){ If(Serial.available()){ Val=Serial.read(); If(val=='W'); motor1.setSpeed(200); motor1.run(FORWARD); delay(100); If(val=='S'); motor1.setSpeed(100); motor1.run(BACKWARD); delay(100); } }
Собственно при подаче 'W' в порт , стартует мотор и при последующей подачей любой команды в порт мотор остонавливается и сразу же начинает вращается все в том же направлении
Вот собственно дальше я застопорился , не могу понять что делаю не так , и почему после подачи команды 'S' в порт мотор не вращается в обратном направлении ?
Вы не могли бы копипастить точный скетч прямо из редактора, а не набивать его руками?
То, что Вы опубликовали не может никак работать, т.к. он просто не скомпилируется. Все эти Ваши Int, Void, If, то val - то Val - это некомпилируемо.
А поскольку скетч, как Вы пишете, хоть как-то работал, то все эти ошибки внесены при публикации. Поскольку я не знаю какие ещё ошибки были внесены при публикации, не вижу смысла смотреть текст скетча.
Опубликуйте нормально.
Переделывал дочери машинку, добавил фары, стоп сигналы, фанари заднего хода, автоматическое выключение через 3 минуты бездействия, плавный разгон, задний ход на уменшенной скорости, выбег (если отпустить кнопку вперед то постепенно замедляеться, если в это время нажать назад, то мотор останавливаеться, при повторном нажатии назад едет назад - как бы тормоз нажали)
Код
Видео 1
Видео 2
Делал на голой ATmega8 без кварца, воткнул её между приемником команд и Н мостами на транзисторах которые в машинку встроенны были.
Вы не могли бы копипастить точный скетч прямо из редактора, а не набивать его руками?
То, что Вы опубликовали не может никак работать, т.к. он просто не скомпилируется. Все эти Ваши Int, Void, If, то val - то Val - это некомпилируемо.
А поскольку скетч, как Вы пишете, хоть как-то работал, то все эти ошибки внесены при публикации. Поскольку я не знаю какие ещё ошибки были внесены при публикации, не вижу смысла смотреть текст скетча.
Опубликуйте нормально.
Дико извеняюсь , писал с телефона по памяти , по возможности опубликую
За код спасибо , очень интересно , я так понял переделываласпеределывалась ещё рабочая машинка ?
Была рабочая. Только поведение не устраивало и функционал. Дочь справиться с ней не могла, пришлось замедлить задний ход и плавный разгон. Хотел добавить функцию наподобие переключения передач (нажал один раз вперед - одна скорость, ещё раз вперед вторая и т.д., ну и при нажатии назад переключение вниз, а при остановленной реверс.), ещё хотел добавить такую функцию - при включении питания если зажата кнопла влево, то включать фары, если нет то не включать.
Переделывал дочери машинку, добавил фа
очень крутой функционал получился, я купил сыну мобиль побольше, в котором можно сидеть, тоже есть огромное желание переделать управление, добавить свет и тд, сейчас это примитивное устройство, двигатель управляется реле, соответсвенно очень резко дергается на старте и при отпускании газа, малыша мотает так что он ударяется головой об руль а ваш код очень подходит, его надо немного допилить под мои задачи, если с механикой и электроникой я как-то дружу, то в программировании я не очень силен, не могли бы вы мне помочь с кодом под мои задачи?
Если только подсказать. Работы много.
Во первых газульку нужно на переменном резисторе и датчик скорости вращения колеса, чтобы можно было организовать четкий старт без задержек, плавную регулеровку скорости и её не изменность при изменении нагрузки. (нужен будет ПИ регулятор).
я думаю сильно не усложнять механику, реле выбросить, заменить его на н-мост или просто на транзистор и диод тк реверс организуется на механическом переключателе, педалька так же остается обычной кнопкой но уже шим будет плавно нарастать до максимального значения в течении секунды, стопы будут загораться после отпускания газа скажем на 2 секунды и шим будет плавно снижаться, еще отдельной кнопкой организовать аварийку или поворотники, думаю это все что нужно мне, понимаю что все это элементарно и по отдельности все функции могу реализовать но сам сшить код в общую программу не хватает ума
а да, на кнопку(педальку) надо еще добавить антидребезг тк ткперь это не мех прерыватель цепи а кнопка на вход мк
Все же написано. (выделено мной)
В первой строке ; не хватает
Доброго времени суток вот новый вариант скетча
Это код написан под L298N и nrf24
Это приемник
суть проблеммы в том что компилятор ругается на строки 36-41 , в связи с тем что опыта мало не совсем понятно на что ругается , не могли бы подсказать ?
Как Вы выражаетесь
не совсем понятно на что ругается
Вы ж его ругань от нас скрыть решили.
Хрустальный шар довольно мутно показал, что скорее всего ему не понравилось то, что Вы используете функции right, left, backward и forward не возвращающие значения, в качестве правого операнда операции "запятая". Значение правого операнда и есть значение всей операции, а Вы туда функции типа void напихали.
Доброго времени суток
Как Вы выражаетесь
не совсем понятно на что ругается
Вы ж его ругань от нас скрыть решили.
Хрустальный шар довольно мутно показал, что скорее всего ему не понравилось то, что Вы используете функции right, left, backward и forward не возвращающие значения, в качестве правого операнда операции "запятая". Значение правого операнда и есть значение всей операции, а Вы туда функции типа void напихали.
дико извеняюсь не скопировал сообщения об ошибке , спасибо за ответ , но вот нюанс , сегодня решил ради интереса запустить компиляцию , все скомпелировалось и залилось в уно .
Ответ проанализирую , если честно то только учусь , но очень интерестно
дико извеняюсь не скопировал сообщения об ошибке , спасибо за ответ , но вот нюанс , сегодня решил ради интереса запустить компиляцию , все скомпелировалось и залилось в уно .
Значит в IDE стоят странные опции (они часто такие ставят, чтобы компилятор меньше ругался).
Но работать это всё равно будет не так, как Вы ожидаете. Разберитесь. Вот смотрите
Если условие окажется истинным, то должно выполниться выражение
Теперь внмательно читайте описание операции "запятая" и скажите, что должно присвоиться переменным data и rspeed? Уверен - не то, чего бы Вы хотели.
Разобрались? Если да, то заодно поймёте почему вызов right в правой части не имеет смысла.
Вот еще классная переделка китайской машинки с двумя моторчиками. Управляется по блютузу с планшета. Начинка - полный самопал. Большая такая.
Видео