Arduino + LED driver

bambooch
Offline
Зарегистрирован: 24.02.2016

Здравствуйте, очень нужно помощь, в этом деле я новенький, но съедаю информацию обычно быстро, пробовал найти в интернете, но не находил того что мне конкретно нужно.

У меня есть ардуион нано, и около 30 метров светодиодной ленты, ктрой я хочу управлять через ардуино, но мне явно не хватит пинов для этого дела, я слышал про LED драйвера, находил такие в интернете, читал к ним мануалы, но в душе не чаю по каким параметрам их выбирать и как ими управлять с ардуино, ну т.е. как написать код,

мне нужно около 30-40 портов для ленты, я думал подключить несколько лед драйвером и ими управлять с ардуионо.

Может кто-то показать простейший пример и скетч для понимая?

 

orcsin
Offline
Зарегистрирован: 12.06.2015

Уверены что именно 30-40 портов нужны для управления? ТО есть у вас 30-40 отдельно независимых участка которые должны управляться независимо друг от друга? Если да, то вам кроме ШИМ прийдётся курить ещё и расширение портов, или брать самую навороченную ардуино.

А код там простецкий, гуглите ардуино+ШИМ

чуть упрошу задачу, потому что вижу по вашему посту в гугле вы забанены :)

http://arduino.ru/Tutorial/PWM

Гриша
Offline
Зарегистрирован: 27.04.2014

пост 20 каждый управляется отдельно - разные цены, разные эффекты

Lemur
Offline
Зарегистрирован: 11.01.2016

готовым только такой видел http://url24.ru/695265

bambooch
Offline
Зарегистрирован: 24.02.2016

да я уверен что именно 40-30 , грубо говоря мне нужно чтоб я мог управлять нужными участками светодиодов, поэтому так много

Зачем здесь ШИМ ? что он мне даст в этой схеме, если не сложно поясните, я просто скорее всего что-то не понимаю

попробую написать какой у меня был план в голове:

есть ардуино нано, к нему через цифровые порты подключенно что-то типо http://www.chipdip.ru/product/mbi5026gf/ и от этих штук подключены светодиоды, но есть 1 но, я просто не знаю как писать скетч чтобы через драйвер управлять светодиодами

bambooch
Offline
Зарегистрирован: 24.02.2016

в видео там есть примерно тоже самое что мне нужно, но смысл в том чтобы не покупать ленту за 1.5к а сделать из подручной обычной ргб ленты, докупив просто лед драйвера

Гриша
Offline
Зарегистрирован: 27.04.2014
orcsin
Offline
Зарегистрирован: 12.06.2015

Вот почти такая же задачка у другого человека была, может что полезного найдёте, там в конце всё равно Гриша :)

bambooch
Offline
Зарегистрирован: 24.02.2016

http://arduino.ru/Tutorial/registr_74HC595

 

 

кто может подсказать где я тупорылю?

подключил все как на схемке, по схемке вроде ясно и понятно, сократил до 1го сдвигового регистра та же ерунда

//Пин SH_CP
int SH_CP = 5;
//Пин ST_CP
int ST_CP = 6;
//Пин DS
int DS = 7;
 
void setup() {
   // Настраиваем выходы SH_CP, ST_CP, DS
   pinMode(SH_CP, OUTPUT);
   pinMode(ST_CP, OUTPUT);
   pinMode(DS, OUTPUT);
}
 
void loop() {
  // Загорится первый светодиод
shiftOut(DS, SH_CP, MSBFIRST, 0b10000000);
// Загорятся 2, 4, 6, 8 светодиоды
shiftOut(DS, SH_CP, MSBFIRST, 0b01010101);
// Загорится первый светодиод - порядок передачи битов обратный
shiftOut(DS, SH_CP, MSBFIRST, 0b00000001);
}

 
 

bambooch
Offline
Зарегистрирован: 24.02.2016

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

bambooch
Offline
Зарегистрирован: 24.02.2016

 

подключено все по этой схеме, проверил все так же

bambooch
Offline
Зарегистрирован: 24.02.2016

из наблюдений: когда только запитываю ардуино, светодиоды начинают сразу гореть, вытаскиваю из ардуино 5v и вставляю обратно - перестают, вытаскиваю еще раз 5v они начинают еле еле гореть, ничего не понимаю

 

помогите пожалуйста кто понимает или сталкивался с таким же

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

bambooch, после 17, 19 и 21 строк поставь хоть какую нибудь задержку, вроде delay(1000); что бы видеть, что происходит...

bambooch
Offline
Зарегистрирован: 24.02.2016

а если ничего не происходит?)

 

добавил всеравно ничего не происходит

Гриша
Offline
Зарегистрирован: 27.04.2014

:) прикольно, а где управление ногой СТ_СР????????7 даташит не смотрел, но мне кажится она разрешает записывать или работать выходным регистрам.

//http://arduino.ru/Reference/ShiftOut
//устанавливаем LOW на latchPin пока не окончена передача байта
    digitalWrite(latchPin, LOW);
    shiftOut(dataPin, clockPin, LSBFIRST, j);  
    //устанавливаем HIGH на latchPin, чтобы проинформировать регистр, что передача окончена.
    digitalWrite(latchPin, HIGH);
    delay(1000);

в описани про это четко написано, и по Русски (русским языком, а не английским), строка 5, немного коряво, но суть в ней

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

Если я правильно понимаю записывать в регистр надо так

digitalWrite(ST_CP, LOW);
shiftOut(DS, SH_CP, MSBFIRST, 0b01010101);
digitalWrite(ST_CP, HIGH);

 

Гриша
Offline
Зарегистрирован: 27.04.2014

Andy пишет:

Если я правильно понимаю записывать в регистр надо так

digitalWrite(ST_CP, LOW);
shiftOut(DS, SH_CP, MSBFIRST, 0b01010101);
digitalWrite(ST_CP, HIGH);

 

UPD. зависит от фронта, а он указан в даташите... т.е либо 0->1 либо 1-0

bambooch
Offline
Зарегистрирован: 24.02.2016

Гриша, Andy 

спасибо большое, теперь дело пошло, познания малы вот и не знал

bambooch
Offline
Зарегистрирован: 24.02.2016

Up! у меня такой вопрос можно ли будет соединить 60 таких сдвиговых регистров на 1 ардуино и к ним соответственно 480 светодиодов, такое реально?

Хватит ли мощности ардуино питать это все? 

 

Гриша
Offline
Зарегистрирован: 27.04.2014

bambooch пишет:

Up! у меня такой вопрос можно ли будет соединить 60 таких сдвиговых регистров на 1 ардуино и к ним соответственно 480 светодиодов, такое реально?

Хватит ли мощности ардуино питать это все? 

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