Статьи

Подписаться на RSS

Популярные теги Все теги

LED cube 3x3x3

LED cube 3x3x3

Накопилось необходимое количество светодиодов (27 штук) и решил поиграться с LED кубом.

Все составляющие для проекта:

1. 27 светодиодов (9 зеленых, 9 желтых, 9 красных)

2. 3 полевых транзистора КП504

3. arduino uno

4. некоторое количество резисторов

Все  в сборе

И видео работы и некоторых эффектов:

Еще видео:

Скетч для управления LED кубом:

/*
Скетч для LED куба 3х3х3
Первое знакомство
*/
int layer[3] = {11,12,13}; //слои куба, 13-нижний,12-средний,11-верхний
int column[9] = {2,3,4,5,6,7,8,9,10}; /*столбы куба, первый крайний правый,
далее счет влево,2 и 3-крайний левый*/
int val1;
int val2;

void setup(){
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
val1 = 8;
val2 = 25;


}

void loop(){

sloi(2,1,0,6);
delay(val2);
sloi(1,2,0,3);
delay(val2);
sloi(0,2,1,0);
delay(val2);
sloi(2,1,0,3);
delay(val2);
sloi(1,2,0,3);
delay(val2);
sloi(0,2,1,3);
delay(val2);
sloi(2,1,0,0);
delay(val2);
sloi(1,2,0,3);
delay(val2);
sloi(0,2,1,6);
delay(val2);
sloi(1,2,0,6);
delay(val2);
sloi(1,2,0,3);
delay(val2);
sloi(1,2,0,0);
delay(val2);
delay(500);
sloi(2,1,0,7);
delay(val2);
sloi(1,2,0,4);
delay(val2);
sloi(0,2,1,1);
delay(val2);
sloi(2,1,0,4);
delay(val2);
sloi(1,2,0,4);
delay(val2);
sloi(0,2,1,4);
delay(val2);
sloi(2,1,0,1);
delay(val2);
sloi(1,2,0,4);
delay(val2);
sloi(0,2,1,7);
delay(val2);
sloi(1,2,0,7);
delay(val2);
sloi(1,2,0,4);
delay(val2);
sloi(1,2,0,1);
delay(val2);
delay(500);
sloi(2,1,0,8);
delay(val2);
sloi(1,2,0,5);
delay(val2);
sloi(0,2,1,2);
delay(val2);
sloi(2,1,0,5);
delay(val2);
sloi(1,2,0,5);
delay(val2);
sloi(0,2,1,5);
delay(val2);
sloi(2,1,0,2);
delay(val2);
sloi(1,2,0,5);
delay(val2);
sloi(0,2,1,8);
delay(val2);
sloi(1,2,0,2);
delay(val2);
sloi(1,2,0,5);
delay(val2);
sloi(1,2,0,8);
delay(500);

}

void diagonal(int a,int b,int c){ //a-номер led наверху,b-номер led в середине,c-нижний led
digitalWrite(layer[0],HIGH);
digitalWrite(layer[1],LOW);
digitalWrite(layer[2],LOW);
digitalWrite(column[a],HIGH);
delay(val1);
digitalWrite(layer[0],HIGH);
digitalWrite(layer[1],LOW);
digitalWrite(layer[2],LOW);
digitalWrite(column[a],LOW);
delay(val1);
digitalWrite(layer[1],HIGH);
digitalWrite(layer[0],LOW);
digitalWrite(layer[2],LOW);
digitalWrite(column[b],HIGH);
delay(val1);
digitalWrite(layer[1],HIGH);
digitalWrite(layer[0],LOW);
digitalWrite(layer[2],LOW);
digitalWrite(column[b],LOW);
delay(val1);
digitalWrite(layer[2],HIGH);
digitalWrite(layer[1],LOW);
digitalWrite(layer[0],LOW);
digitalWrite(column[c],HIGH);
delay(val1);
digitalWrite(layer[2],HIGH);
digitalWrite(layer[1],LOW);
digitalWrite(layer[0],LOW);
digitalWrite(column[c],LOW);
delay(val1);
}

void sloi(int a,int b,int c, int d){ //a-рабочий слой,b-выкл слой,c-выкл слой,d-номер светодиода
digitalWrite(layer[a],HIGH);
digitalWrite(layer[b],LOW);
digitalWrite(layer[c],LOW);
digitalWrite(column[d],HIGH);
delay(val1);
digitalWrite(layer[a],HIGH);
digitalWrite(layer[b],LOW);
digitalWrite(layer[c],LOW);
digitalWrite(column[d],LOW);
delay(val1);
}

Создал две функции diagоnal() и sloi(), они позволяют зажигать как отдельные диагонали, так и слои и также отдельные светодиоды.


Удачных совершений!



H-bridge

H-bridge на биполярных транзисторах

Обнаружились в закромах моторы постоянного тока (DC motor), и понадобилось ими управлять, заказывать motor shield для arduino было долго, поэтому пришлось изучить тему по H-bridge https://ru.wikipedia.org/wiki/H_%D0%BC%D0%BE%D1%81%D1%82 - полезная статья на Википедии. В сети из множества ресурсов хотелось бы отметить следующие, которые помогли мне в освоении азов:

1. http://avtoelectro.radioliga.com/device.php?show=h_bridges

2. http://www.robotroom.com/BipolarHBridge.html

3. http://radiohlam.ru/teory/h-bridge.htm - с расчетом

После изучения, началась подготовка к сборке, естественно проще было бы собрать на полевых транзисторах, но как оказалось найти под рукой полевой транзистор с p-каналом очень трудно. Оказались биполярные транзситоры структуры PNP (КТ816б) и их комплиментарная пара NPN КТ817, по предложенным статьям был произведен расчет, в управление к ним добавил КТ315, теперь от теории к практическим конструкциям.

В такой конструкции нет необходимости разводить печатную плату, взял кусочек текстолита и острым ножом разметил дорожки, облудил.

Детали для пайки:

Крупные фотографии конструкции H-bridge, первый:


Второй H-bridge:

Может неказисто выглядить но работает. На плате следующие выводы: два для питания, два для управления и два для подключения мотора постоянного тока.

Видео работы:



Проект "Метеостанция: Arduino + OpenWRT + mr3020" или умный дом?!. Часть 1

Пришло время, рассказать о задуманном проекте, много было перепробовано, много железа было превращено в кирпич! И в таких условия еще нет окончательной концепции устройства, ясно одно что будет устройство мониторинга, включающее мониторинг за метеопоказателями как улицы, так и дома, неоходима web-камера для наглядности погоды, с отправкой показаний на http://narodmon.ru/, плюс хочется иметь web-radio , плюс управление светом (включение/выключение), также окончательный вариант подразумевает наличие интернет-странички с которой можнопроизводить управление всем хозяйством и просмотром web-камеры и web-радио. 

    На данный момент имеется такая конфигурация:

http://31.10.78.138:20081/home/


Пока Switch не подключены, web-камера на экспериментах в другой области, температура работает, но датчики находяться в одном месте (2хDS18b20 и BMP180), каждые 5 мин данные отправляются на narodmon.ru. Паралельно тестирую другую конфигурацию на другом роутере mr3020 с openwrt, резльтаты будут позже!

Продолжение следует...