Новогодняя Ёлка (Конструктор для пайки)
Описание: arduino — совместимый конструктор для пайки «Новогодняя Ёлка» Время сборки: 1,5 час Уровень умения: Продвинутый |
|
Необходимые инструменты и расходные материалы:
Компьютер, лазерный принтер, текстолит, маркер для печатных плат Edding 792 0.8 мм черный), хлорное железо, утюг, ацетон, мини дрель (сверла диаметром: 0,8 — 1 мм),
ножовка по металлу, паяльная станция, пинцет, флюс, припой.
Конструктор разработан участниками проекта ARDUMAKERS™ (Романцовым Алексеем и Тен Сергеем)
Этот конструктор состоит из двух частей, «Stand Shield» и самой Ёлки которая будет к нему припаиваться.
Ёлка
Ёлка состоит из двух плат, на которых расположены 64 светодиода. Таким образом, что они собираются в матрицу 8х8
Stand Shield
Stand Shield — это подставка для Ёлки, на нём расположены два сдвиговых регистра, микросхема Дарлингтона и
микрофон с предусилителем.
Благодаря сдвиговым регистрам можно сократить количество пинов для подключения к матрице.
Требуемые компоненты
Наименование | Кол-во |
---|---|
Печатная плата «Stand Shield» | 1 |
Печатная плата «Ёлка» | 2 |
ULN2803ADWR, Матрица из восьми транзисторов Дарлингтона, 500мА, 50В, SO18 | 1 |
74HC595D.118, 8-и битный сдвиговый регистр с выходным регистром-защелки и тремя состояниями, [SO-16] | 2 |
KP-2012EC, Светодиод красный 2х1.2х1.1 12мКд | 19 |
KPT-2012SYCK, Светодиод желтый 80мКд SMD | 19 |
KP-2012SGD, Светодиод зеленый 2х1.2×1.1 12мКд | 18 |
BL-LS0805DNB, Светодиод SMD 0805, синий 130″ 38мКд 470нМ (Blue) | 8 |
0.125Вт 0805 360 Ом, 1%, Чип резистор (SMD) (мы использовали 1 кОм т.к их у нас больше в наличии ) | 8 |
1 am sot-23 2n3904 smd 40 в 200ma npn транзистор | 1 |
0.125Вт 0805 100 кОм, 1%, Чип резистор (SMD) | 1 |
0.125Вт 0805 10 кОм, 1%, Чип резистор (SMD) | 2 |
ECM-30A, 4.5 В, 10 мм, Микрофон электретный | 1 |
Кер.ЧИП конд. 0.1 мкФ X7R 50В 10% 0805, GRM21BR71H104K | 2 |
Схема подключения матрицы
//******************************************************
// Проект ARDUMAKERS
// Код программы Новогодняя Ёлка
// http://ardumakers.ru
// источник: Beginning Arduino — Michael McRoberts
//******************************************************
int latchPin = 8;
int clockPin = 12;
int dataPin = 11;
int counter = 0;
int LEDs[8][8] = {
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0}
};
void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void blankLED()
{
int x = 0;
int y = 0;
for (x = 0; x < 8; x++)
{
for (y = 0; y < 8; y ++)
{
LEDs[x][y] = 0;
}
}
}
void lightLED()
{
byte columnbitsToSend = 0;
byte rowbitsToSend = 0;
int x = 0;
int y = 0;
for (x = 0; x < 8; x++)
{
columnbitsToSend = 0;
rowbitsToSend = 0;
for (y = 0; y < 8; y ++)
{
if (LEDs[x][y] == 1)
{
bitWrite(rowbitsToSend, y, HIGH);
}
}
digitalWrite(latchPin, LOW);
bitWrite(columnbitsToSend, x, HIGH);
shiftOut(dataPin, clockPin, MSBFIRST, columnbitsToSend);
shiftOut(dataPin, clockPin, MSBFIRST, rowbitsToSend);
digitalWrite(latchPin, HIGH);
delay(2);
}
}
void loop()
{
LEDs[random(8)][random(8)] = 1;
if (counter > 200)
{
blankLED();
counter = 0;
}
lightLED();
counter++;
}
|
скачать скетч |