#1 2015-04-07 21:57:05

baspav
Учасник
Зареєстрований: 2015-04-02
Повідомлень: 12

Arduino pro mini + 2 ULN2003A Вопрос новичка.

Имею Arduino pro mini + 2 китайских готовых ULN2003A в перспективе нацепить два 28BYJ-48-5V для создания переносного солнечного трекера
На данный момент движков нет. Спаял все на монтажке, миньку, чтоб съемная была,  нацепил на подставку под биос со старого принтера - подошло, проверил, залил пробный скетч

int motorPin1 = 13;
int motorPin2 = 12;
int motorPin3 = 11;
int motorPin4 = 10;
int motorPin5 = 9;
int motorPin6 = 8;
int motorPin7 = 7;
int motorPin8 = 6;
int motorSpeed = 10000;         

int lookup[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001};
//int lookup[8] = {B01000, B00100, B00010, B00001};

void setup()
{
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
pinMode(motorPin5, OUTPUT);
pinMode(motorPin6, OUTPUT);
pinMode(motorPin7, OUTPUT);
pinMode(motorPin8, OUTPUT);
}

void loop()

{
  for(int i = 0; i < 8; i++)
  {
    setOutput(i);
    delayMicroseconds(motorSpeed);
  }
}
void setOutput(int out)
     {
      digitalWrite(motorPin1, bitRead(lookup[out], 3));
      digitalWrite(motorPin2, bitRead(lookup[out], 2));
      digitalWrite(motorPin3, bitRead(lookup[out], 1));
      digitalWrite(motorPin4, bitRead(lookup[out], 0));
      digitalWrite(motorPin5, bitRead(lookup[out], 0));
      digitalWrite(motorPin6, bitRead(lookup[out], 1));
      digitalWrite(motorPin7, bitRead(lookup[out], 2));
      digitalWrite(motorPin8, bitRead(lookup[out], 3));
     }

Сигнал пошел на оба драйвера, но четкого перемещения сигнала на светодиодах драйвера не наблюдается - все сливается в мерцание. При касании к кварцу скорость замедляется и четко прослеживается движение сигнала по светодиодам.
Так и должно быть? или тут какая то лажа с минькой?

Остання редакція baspav (2015-04-07 22:00:53)

Неактивний

#2 2015-04-08 11:51:44

NoName
Customer
З Київ
Зареєстрований: 2014-07-08
Повідомлень: 1,446

Re: Arduino pro mini + 2 ULN2003A Вопрос новичка.

  for(int i = 0; i < 8; i++)
  {
    setOutput(i);
    delayMicroseconds(motorSpeed);
  }

где motorSpeed == 10000 мкс т.е. 0,01 с ( 100Гц   , слишком быстро для визуального контроля )
поставьте  (uint32_t)300000-500000
"миньку" ет что такое?
кварц прижали, частоту поменяли, нельзя кварцы пальцами трогать )
delayMicroseconds(us)  где us макс 65535
не подходит, потому поставьте
delay(300);                  // waits for a 0.3 second

Неактивний

#3 2015-04-08 22:13:26

baspav
Учасник
Зареєстрований: 2015-04-02
Повідомлень: 12

Re: Arduino pro mini + 2 ULN2003A Вопрос новичка.

Спасибо, исправил - все в норме.
Минька - после многодневного лазания по сайтам заметил, что так некоторые ардуинеры называют ПРО МИНИ.

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму