Главная » 2011 » Август » 15 » DFROBOT MOTOR SHIELD
18:51
DFROBOT MOTOR SHIELD

Вчера включил в свой лазерный спирограф этот шилд. Ну очень просто подключить. И использовать. Просто прикрутил провод питания (на блоке питания выставил 9В) прикрутил провода моторчиков. Запустил шилд, с помощью простого кода.

2 пина идут на PWM - задаётся скорость моторов

2 пина на обычные - задаётся вращение LOW прямое, - HIGH обратное направление.

Шилд использует пины только пины 4,6,5,7. Так что останется еще много пинов свободных для других целей!!! 

В моём примере используются 2 переменных резистора на 10К собраны они на макетке беспаечной, проводами все соединено надежно и удобно. И подключен дисплей(всё это идёт в наборе для начинающих, только в наборе дисплей по интереснее)

Ниже рабочий код программы на УНО/Дуэмиланова. На меге тоже пойдет.

#include <LiquidCrystal.h>
#include <LiquidCrystalRus.h>

int E1 = 6;
int M1 = 7;
int E2 = 5;
int M2 = 4;


int state1 =0;
int state2 =0;

LiquidCrystalRus lcd( 13, 12, 11, 10, 9, 8);

void setup()
{
 lcd.begin(16, 2); // вот тут задаётся количество символов в строке

//и само количество строк в дисплее
lcd.print("Специально для");
delay(500);
lcd.setCursor(0, 1);
lcd.print("www.odduino.com");
delay(1500);
lcd.clear();

pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
//pinMode(M11, OUTPUT);
/// pinMode(M22, OUTPUT);

//задаём направления моторов ниже

digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
}

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

//когда меняется значение скорости моторов - крутим переменники

void debugLCD(int s1, int s2)

{
if(s1!=state1){
state1=s1;
lcd.setCursor(0, 0);
lcd.print("Перв. мотор: ");
lcd.print(s1);
}
if(s2!=state2){
lcd.setCursor(0, 1);
lcd.print("Втор. мотор: ");
lcd.print(s2);
}
}
void loop()
{

//чтение входов 0 и 1 аналоговых
int x = (analogRead(0));
int y = (analogRead(1));

//делим входные значения АЦП на 4
int speedX =x/4;
int speedY =y/4;

debugLCD(speedX, speedY);
//ниже подаем ШИМ сигнал на моторы - скорость
analogWrite(E1,speedX);
analogWrite(E2,speedY);
 
}


Код простой и занимает мало места. И самое главное работает без сучка и задоринки, шилд супер, програмировать моторы очень легко!!! 

Просмотров: 1941 | Добавил: tigerman | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]