2015-10-08 7 views
0

Мне нужно создать доску, которая будет содержать около 50 светодиодов. Светодиоды необходимо включать и выключать отдельно и вместе (таймер основан на днях, каждый понедельник, когда все 50 светодиодов включаются, и каждый день недели включаются 10 светодиодов).Какой самый эффективный способ времени LED

В моем исследовании я нашел таймер LM555, но это приведет к огромной цепи 50 различных таймеров

Что является наиболее эффективным способом контроля этих светодиодов

+0

Я думаю, вам просто нужно параллельно подключать 2 части (10 светодиодов и 40 светодиодов) и получить 2 последовательных выхода из вашего arduino, отправляющего 2 сигнала. создать алгоритм на вашей программе arduino с двумя состояниями. 11 и 10 (двоичные файлы) 11 = 50 светодиодов и 10 для 10 светодиодов на – chareon

+0

, если вы знакомы с логическими воротами, это вам поможет. Пришлите мне сообщение, когда оно поможет – chareon

+0

Я редактирую свой ответ. Первый из них был неудачным. Этот действительно поможет вам решить вашу проблему. Еще раз извините! – Peto

ответ

0

Мой первый ответ был действительно глупо (я так сожалею об этом), и я не знаю, почему я раньше не думал об удивительных «Списках сдвигов».

У вашего Arduino не так много контактов, чтобы освещать каждый светодиод, который у вас был. Но использование сдвиговых регистров возможно. Из 8-битного регистра сдвига вы можете подсвечивать 8 светодиодов, используя только 2-3 PIN-кода на плате Arduino (1 для часов, 1 для данных и 1 для защелки). Итак, чтобы забрать 50 PIN-кода вам нужно всего лишь 7 из this components (например).

Как его использовать? В Интернете много учебников, обычно sparkFun tutorial - мой любимый.

Ниже: изображение с сайта Arduino. Он объяснил, как подключить 16 светодиодов. connect 16 leds with 2 shift registers

В любом случае со стороны программного обеспечения, что вы должны знать ShiftOut функция. После этого вы должны использовать функцию time.

Прежде всего инициализируйте свои переменные времени, как вы можете видеть в ссылке, опубликованной выше. После, в цикле:

  • Put ВЫСОКИЙ ваш Datapin подключен к 50 СИД когда previousMonth != month.
  • Установите HIGH dataPin, подключенный к 10 светодиодам, когда daySum == 10 (так, когда previousDay != day вам нужно увеличить daySum, используя daySum++).