Motor Shield L298N v3.0

Rowser
Offline
Зарегистрирован: 26.02.2012

 Добрый день!

Есть такая железка! http://www.emartee.com/product/42001/

Ни как не могу разобраться как заставить крутится моторчики по команде через Sereal port, если кто имел дело с таким шилдом подскажите! 

leshak
Offline
Зарегистрирован: 29.09.2011

 Ну а где код ваших попыток? Давайте его в студию. Посмотрим, может поймем что с ним не так. А то получается "напишите за меня скетч". Да и вообще непонятно что у вас не получается: собрать схему, крутить мотор ардуиной, принимать команды из сериал порта?

Кстати, по вашей ссылке внизу есть ссылочка More information is the same as Arduino motor drive shield-L298N, а уж там какой-никакой а примерчик верчения моторчиком имеется, вы его пробовали?

 

leshak
Offline
Зарегистрирован: 29.09.2011

 Поробуйте решить задачу "по частям", написать несколько пробных скетчей

  1. Верчение мотором: что-то типа "при включении ардуины она 5 сек крутит мотор в одну сторону, пауза 3 сек, 5 сек крутит в другую, пауза 3 сек, и все заново".
  2. Прием команд от serail: научитесь включать светодиод по командам из serial, типа "пришло on - включили, пришло off - выключили". Потом сделайте чуть сложнее, что-бы обрабатывалась команда типа "on 127" где 127 это PWM который нужно подать на светодиод (его яркость).
  3. Управление мотором: скрестить эти два скетча. Заменить во втором включение светодиода, командами управления мотором из первого.

При таком подходе, думаю, будет гораздо проще понять "где затык".

Rowser
Offline
Зарегистрирован: 26.02.2012

 Спасибо за ответ!

Ну хотя бы вот

int val = 0;
void setup()
{
Serial.begin(9600);
}

void loop()
{
val = Serial.read();
if (-1 != val) {
Serial.println(val);
} delay(500);
}

 

Как я понимаю в этом случае всё что пришло должно уйти обратно, окрываю serial monitor отправляю "случайный набор символов" а приходит набор непонятных закорючек. Поскажите в чем проблема?

leshak
Offline
Зарегистрирован: 29.09.2011

 Проверте что в окне сериал монитора выставленна такая же скорость как и в setup. То есть 9600 (или в setup поменяйте)

leshak
Offline
Зарегистрирован: 29.09.2011

 Попробуйте выполнить скетч из примеров

File/Examples/Communication/ACSIITalbe 

убедитесь что "ваш компорт настроен правильно", потом посмотрите пример

File/Examples/Communication/SerialCallResponse

там "есть ли данные в порту, проверяется несколько по другому, не так как вы сделали

 if (Serial.available() > 0) {
    // get incoming byte:
    inByte = Serial.read();
....