Проектирование и конструирование светодиодного куба на платформе Arduino
Основные типы микроконтроллеров и их архитектура. Изучены теоретические сведения о платформе Arduino. Загрузка скетча в плату Arduino. Выбор и обоснование платформы Bootloader. Разработка и проектирования LED-cube на базе микроконтроллера Arduino Nanо.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 11.03.2019 |
Размер файла | 6,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Резисторы необратимо превращают электрическую энергию в тепловую, но не накапливают какую-либо энергию, поэтому их называют неэнергоемкими.
Весьма широко используемый компонент практически всех электрических и электронных устройств.
Закон Ома для мгновенных значений тока и напряжения справедлив только в резистивных цепях.
Рисунок 12 - Устройство диода
Рисунок 13 - Светодиод
На данный момент резисторы применяют во многих областях науки. Ко всему прочему их принято считать самой распространенной деталью для создания плат и электрических схем.
Главная функция резистора - это контроль и ограничение действия тока. Ко всему прочему, эту деталь порой применяют для того чтобы поделить напряжение в сети.
Если говорить о принципе работы, то все сводится к математическому представлению. В этом случае любая деталь в цепи, через которую проходит сила тока будет зависеть от сформировавшегося в ней напряжения. Эта зависимости может быть описана с помощью закона Ома, а деталь рассматривают в качестве резистора.
В стандартной ситуации на резисторе будет рассеиваться тепло. Специалисты утверждают, что в электрических схемах необходимо будет использовать этот элемент для того чтобы рассеять нужную мощность. Помимо прочего необходимо будет предусмотреть, чтобы повышение температуры резистора не мешало работе деталей, расположенных от него по соседству. Основываясь на математической теории можно выполнить расчет напряжения, его сопротивление и показатель электрического тока.
Рисунок 14 - Обозначение резисторов
На всех электрических схемах резистор обозначают так, как показано на рисунке 14.
Следует также отметить, что мощность резисторов, носящую номинальный характер обычно указывают в таблице комплектующих. Но в большинстве своем используют стандартную мощность в 0, 25 или 0,125 Ватт. Если для создания схемы необходимо использовать резистор большей мощности, то его указывают в предварительном списке.
Интересный факт. В большинстве своем все резисторы имеют в своем составе серебро. А вот определенные варианты собирают при использовании золота, платины, палладия, тантала и рутения.
Рисунок 15 - Резистор
Рисунок 16 - Arduino nano 3.0
Рисунок 17 - Батарейка крона
Рисунок 18 - Тумблер
Рисунок 19 - Монтажный провод
Рисунок 20 - Корпус
Концептуальная схема светодиодного куба представлена на рисунке 21.
Рисунок 21 - Схема светодиодного куба
2.2 Сборка LED-cube
Сборку LED-cube рекомендуется начинать с диодов. Для того чтобы правильно собрать куб, необходимо разобраться где у светодиода плюс, а где минус. У светодиода плюсом является анод, это самая длинная ножка, а минусом является короткая ножка, катод.
Рисунок 22 - Диод
Чтобы спаять слои одинаковыми, нужно светодиоды закрепить. Можно взять пеноплекс и сделать в ней 16 отверстий. Расстояние между светодиодами должно быть чуть меньше самой длинной его ножки, чтобы можно было их соединить.
Рисунок 23 - Пеноплекс
Необходимо спаять 4 слоя светодиодов по 16 в каждом, а затем все 4 слоя спаять в один объёмный куб. Ставим первые 16 светодиодов в проделанные отверстия и отгибаем плюса так, чтобы все светодиоды соединились, как показано на рисунке 24. На всех слоях минуса (ножки торчащие вверх) должны находится на всех слоях в одинаковом положении, чтобы они были соединены между собой.
Рисунок 24 - 1 Слой диодов
Очень важно чтобы ножки торчащие вверх (минуса), на всех слоях находились в одинаковых местах, чтобы можно было легче соединить их в процессе объединения.
Рисунок 25 - Расположение диодов
Когда все 4 слоя будут собраны, они будут объединены в один слой. Далее необходимо соединить все отогнутые минуса.
Рисунок 26- 4 Слоя диодов
2.3 Загрузка скетча для LED-cube
Записывается алгоритм работы куба в контроллер, с помощью программы Arduino.
Подсоединяется Arduino Nano через микро USB к компьютеру.
Рисунок 27 - Подсоединение платы
Необходимо открыть скачанный скетч и должна запуститься программа Arduino. Затем нужно выбрать вкладку инструменты-плата-Arduino Nano.
Рисунок 28 - Выбор платы
Затем там же инструменты - процессор ATmega328.
Рисунок 29 - Выбор процессора ATmega328
Выбор порта COM 1
Рисунок 30 - Выбор порта
Чтобы загрузить скетч на плату Arduino необходимо выбрать на вкладке скетч пункт загрузка, как показано на рисунке 31.
Рисунок 31 - Загрузка скетча
Далее производится пайка проводов согласно рисунку 32. Крестиком указано место где будут крепиться 4 провода.
Рисунок 32 - Схема распределения диодов
Затем соединяются плюса, для этого используется 4 резистора. Если смотреть по оси Y, то слой 4(верхний) должен присоединиться к контакту А0, 3 к А1 , 2 к А2, 1 к А3.
Рисунок 33 - Схема распределения сопротивления
Производится пайка проводов питания. Плюс батарейки необходимо припаять к контакту UIN, а минус к GND. Эти контакты должны находиться на той же стороне что и контакты А0-А7. Тумблер был припаян между UIN и плюсом батарейки.
Рисунок 34 - Подключение питание
Рисунок 35 - Led Cube на платформе Arduino
2.4 Обоснование экономической целесообразности
В ходе реализации проекта был спроектирован и светодиодного LED-cube. При конструировании были приобретены основные элементные модули, а так же вспомогательные материалы. Полный перечень приобретенных компонентов приведен в таблице 5.
Таблица 5 - Перечень приобретенных компонентов
Наименование |
Цена, руб. |
|
Плата Arduno nano |
358,06 |
|
Светодиоды 64 шт |
600 |
|
Резистор на 680 Ом 4 шт |
5 |
|
Крона 9V |
60 |
|
Тумблер |
25 |
|
Монтажный провод 0.14 |
130 |
|
Пеноплекс |
25 |
|
Итого |
1203,06 |
Светодиодный LED-cube, сделанные своими руками, намного дешевле продаваемых в магазинах, так как компоненты LED-cube подбираются вами же и в случае выхода из строя некоторых компонентов не заставит труда заменить. Примерная стоимость LED-cube, сделанного своими руками составит 1203,06 рублей, а стоимость аналогичного устройства продаваемого в магазине - около 2000 рублей.
Таким образом, можно сделать вывод об экономической целесообразности проекта.
Заключение
В первом разделе дипломного проекта приведены основные сведения о микроконтроллерах, дано определение микроконтроллеров и их классификации, рассмотрена основные фирмы производящие микроконтроллеры. Основное внимание уделено микроконтроллеру Atmega328, который используется в представленном устройстве. Даны его подробные характеристики, разобрана структурная схема, приведена распиновка. В дипломном проекте рассмотрена работа модулей микроконтроллера в их взаимодействиях.
Во втором разделе описан процесс проектирования и разработки электронных часов на базе микроконтроллера Atmega328, приведены компоненты необходимые для сборки данного устройства, рассмотрена схема устройства, порядок сборки и подключения.
В третьем разделе рассмотрено экономическое обоснование использования LED-cube.
Использование в современном микроконтроллере достаточного мощного вычислительного устройства с широкими возможностями, построенного на одной микросхеме вместо целого набора, значительно снижает размеры, энергопотребление и стоимость построенных на его базе устройств.
Для достижения поставленной цели были решены следующие задачи:
- основные типы микроконтроллеров и их архитектура;
- рассмотрены основные теоретические сведения о платформе Arduino;
- проанализирована среда разработки платформы Arduino;
- спроектирован и сконструирован светодиодный куб на платформе Arduino.
Таким образом, цель дипломного проекта можно считать достигнутой.
Список использованных источников
1 Алексенко А.Г., Шагурин И.И. Микросхемотехника. - М.: Радио и связь, 2012г. 496 с.
2 Белов А.Б. Конструирование устройств на микроконтроллерах / Наука и Техника, 2013г. 255 с.
3 Бродин Б.В., Шагурин И.И. Микроконтроллеры: Справочник. - М.: ЭКОМ, 2013г.395 с.
4 Волович Г.И. Схемотехника аналоговых и аналого-цифровых электронных устройств. - М.: Издательский дом «Додэка XXI век», 2012г. 528 с.
5 Ленк Дж. Электронные схемы: Практическое руководство. Пер. с англ. - М.; Мир, 2012г. 343 с., ил.
6 Опадчий Ю.Ф., Глудкин О.П., Гуров А.И. Аналоговая и цифровая электроника (полный курс): Учебник для вузов. Под ред. О.П. Глудкина. - М.: Горячая линия - Телеком, 2014г. 768 с.: ил.
7 Павлов В.Н., Ногин В.Н. Схемотехника аналоговых электронных устройств: Учебник для вузов. - 2-е изд., испр. - М.: Горячая линия - Телеком, 2013г. 320 с.: ил.
8 Предко М. Руководство по микроконтроллерам. Том 1. / Пер. с англ. под ред.И. И. Шагурина и С.Б. Лужанского - М.: Постмаркет, 2012. 416 с.
9 Предко М. Руководство по микроконтроллерам. Том 2. / Пер. с англ. под ред.И. И. Шагурина и С.Б. Лужанского - М.: Постмаркет, 2012г. 488 с.
10 http://arduino-diy.com - Информационный ресурс с инструкциями и туториалами по использованию контроллеров Arduino
11 https://www.arduino.cc - Официальный сайт Arduino
Приложение А
4x4x4 LED Cube
Connection Setup:
Columns
[(x,y)-Pin]
(1,1)-13
(1,2)-12
(1,3)-11
(1,4)-10
(2,1)-9
(2,2)-8
(2,3)-7
(2,4)-6
(3,1)-5
(3-2)-4
(3-3)-3
(3,4)-2
(4,1)-1
(4,2)-0
(4,3)-A5
(4,4)-A4
Layers
[layer-Pin]
a-A0
b-A1
c-A2
d-A3
*/
//initializing and declaring led rows
int column[16]={13,12,11,10,9,8,7,6,5,4,3,2,1,0,A5,A4};
//initializing and declaring led layers
int layer[4]={A0,A1,A2,A3};
int time = 250;
void loop()
{
turnEverythingOff();//turn all off
flickerOn();
turnEverythingOn();//turn all on
delay(time);
turnOnAndOffAllByLayerUpAndDownNotTimed();
layerstompUpAndDown();
turnOnAndOffAllByColumnSideways();
delay(time);
aroundEdgeDown();
turnEverythingOff();
randomflicker();
randomRain();
diagonalRectangle();
goThroughAllLedsOneAtATime();
propeller();
spiralInAndOut();
flickerOff();
turnEverythingOff();
delay(2000);
}
//xxxxxxxxxxxxxxxxxxxxFUNCTIONSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/////////////////////////////////////////////////////////////flicker on
void flickerOn()
{
int i = 150;
while(i != 0)
{
turnEverythingOn();
delay(i);
turnEverythingOff();
delay(i);
i-= 5;
}
}
//////////////turn everything on and off by layer up and down NOT TIMED
void turnOnAndOffAllByLayerUpAndDownNotTimed()
{
int x = 75;
for(int i = 5; i != 0; i--)
{
turnEverythingOn();
for(int i = 4; i!=0; i--)
{
digitalWrite(layer[i-1], 1);
delay(x);
}
for(int i = 0; i<4; i++)
{
digitalWrite(layer[i], 0);
delay(x);
}
for(int i = 0; i<4; i++)
{
digitalWrite(layer[i], 1);
delay(x);
}
for(int i = 4; i!=0; i--)
{
digitalWrite(layer[i-1], 0);
delay(x);
}
}
}
//////////////////////////turn everything on and off by column sideways
void turnOnAndOffAllByColumnSideways()
{
int x = 75;
turnEverythingOff();
//turn on layers
for(int i = 0; i<4; i++)
{
digitalWrite(layer[i], 0);
}
for(int y = 0; y<3; y++)
{
//turn on 0-3
for(int i = 0; i<4; i++)
{
digitalWrite(column[i], 1);
delay(x);
}
//turn on 4-7
for(int i = 4; i<8; i++)
{
digitalWrite(column[i], 1);
delay(x);
}
//turn on 8-11
for(int i = 8; i<12; i++)
{
digitalWrite(column[i], 1);
delay(x);
}
//turn on 12-15
for(int i = 12; i<16; i++)
{
digitalWrite(column[i], 1);
delay(x);
}
//turn off 0-3
for(int i = 0; i<4; i++)
{
digitalWrite(column[i], 0);
delay(x);
}
//turn off 4-7
for(int i = 4; i<8; i++)
{
digitalWrite(column[i], 0);
delay(x);
}
//turn off 8-11
for(int i = 8; i<12; i++)
{
digitalWrite(column[i], 0);
delay(x);
}
//turn off 12-15
for(int i = 12; i<16; i++)
{
digitalWrite(column[i], 0);
delay(x);
}
//turn on 12-15
for(int i = 12; i<16; i++)
{
digitalWrite(column[i], 1);
delay(x);
}
//turn on 8-11
for(int i = 8; i<12; i++)
{
digitalWrite(column[i], 1);
delay(x);
}
//turn on 4-7
for(int i = 4; i<8; i++)
{
digitalWrite(column[i], 1);
delay(x);
}
//turn on 0-3
for(int i = 0; i<4; i++)
{
digitalWrite(column[i], 1);
delay(x);
}
//turn off 12-15
for(int i = 12; i<16; i++)
{
digitalWrite(column[i], 0);
delay(x);
}
//turn off 8-11
for(int i = 8; i<12; i++)
{
digitalWrite(column[i], 0);
delay(x);
}
//turn off 4-7
for(int i = 4; i<8; i++)
{
digitalWrite(column[i], 0);
delay(x);
}
//turn off 0-3
for(int i = 0; i<4; i++)
{
digitalWrite(column[i], 0);
delay(x);
}
}
}
/////////////////////////////////////////up and down single layer stomp
void layerstompUpAndDown()
{
int x = 75;
for(int i = 0; i<4; i++)
{
digitalWrite(layer[i], 1);
}
for(int y = 0; y<5; y++)
{
for(int count = 0; count<1; count++)
{
for(int i = 0; i<4; i++)
{
digitalWrite(layer[i], 0);
delay(x);
digitalWrite(layer[i], 1);
}
for(int i = 4; i !=0; i--)
{
digitalWrite(layer[i-1], 0);
delay(x);
digitalWrite(layer[i-1], 1);
}
}
for(int i = 0; i<4; i++)
{
digitalWrite(layer[i], 0);
delay(x);
}
for(int i = 4; i!=0; i--)
{
digitalWrite(layer[i-1], 1);
delay(x);
}
}
}
////////////////////////////////////////////////////////////flicker off
void flickerOff()
{
turnEverythingOn();
for(int i = 0; i!= 150; i+=5)
{
turnEverythingOff();
delay(i+50);
turnEverythingOn();
delay(i);
}
}
///////////////////////////////////////////around edge of the cube down
void aroundEdgeDown()
{
for(int x = 200; x != 0; x -=50)
{
turnEverythingOff();
for(int i = 4; i != 0; i--)
{
digitalWrite(layer[i-1], 0);
digitalWrite(column[5], 1);
digitalWrite(column[6], 1);
digitalWrite(column[9], 1);
digitalWrite(column[10], 1);
digitalWrite(column[0], 1);
delay(x);
digitalWrite(column[0], 0);
digitalWrite(column[4], 1);
delay(x);
digitalWrite(column[4], 0);
digitalWrite(column[8], 1);
delay(x);
digitalWrite(column[8], 0);
digitalWrite(column[12], 1);
delay(x);
digitalWrite(column[12], 0);
digitalWrite(column[13], 1);
delay(x);
digitalWrite(column[13], 0);
digitalWrite(column[14], 1);
delay(x);
digitalWrite(column[14], 0);
digitalWrite(column[15], 1);
delay(x);
digitalWrite(column[15], 0);
digitalWrite(column[11], 1);
delay(x);
digitalWrite(column[11], 0);
digitalWrite(column[7], 1);
delay(x);
digitalWrite(column[7], 0);
digitalWrite(column[3], 1);
delay(x);
digitalWrite(column[3], 0);
digitalWrite(column[2], 1);
delay(x);
digitalWrite(column[2], 0);
digitalWrite(column[1], 1);
delay(x);
digitalWrite(column[1], 0);
}
}
}
/////////////////////////////////////////////////////////random flicker
void randomflicker()
{
turnEverythingOff();
int x = 10;
for(int i = 0; i !=750; i+=2)
{
int randomLayer = random(0,4);
int randomColumn = random(0,16);
digitalWrite(layer[randomLayer], 0);
digitalWrite(column[randomColumn], 1);
delay(x);
digitalWrite(layer[randomLayer], 1);
digitalWrite(column[randomColumn], 0);
delay(x);
}
}
////////////////////////////////////////////////////////////random rain
void randomRain()
{
turnEverythingOff();
int x = 100;
for(int i = 0; i!=60; i+=2)
{
int randomColumn = random(0,16);
digitalWrite(column[randomColumn], 1);
digitalWrite(layer[0], 0);
delay(x+50);
digitalWrite(layer[0], 1);
digitalWrite(layer[1], 0);
delay(x);
digitalWrite(layer[1], 1);
digitalWrite(layer[2], 0);
delay(x);
digitalWrite(layer[2], 1);
digitalWrite(layer[3], 0);
delay(x+50);
digitalWrite(layer[3], 1);
digitalWrite(column[randomColumn], 0);
}
}
/////////////////////////////////////////////////////diagonal rectangle
void diagonalRectangle()
{
int x = 350;
turnEverythingOff();
for(int count = 0; count<5; count++)
{
//top left
for(int i = 0; i<8; i++)
{
digitalWrite(column[i], 1);
}
digitalWrite(layer[3], 0);
digitalWrite(layer[2], 0);
delay(x);
turnEverythingOff();
//middle middle
for(int i = 4; i<12; i++)
{
digitalWrite(column[i], 1);
}
digitalWrite(layer[1], 0);
digitalWrite(layer[2], 0);
delay(x);
turnEverythingOff();
//bottom right
for(int i = 8; i<16; i++)
{
digitalWrite(column[i], 1);
}
digitalWrite(layer[0], 0);
digitalWrite(layer[1], 0);
delay(x);
turnEverythingOff();
//bottom middle
for(int i = 4; i<12; i++)
{
digitalWrite(column[i], 1);
}
digitalWrite(layer[0], 0);
digitalWrite(layer[1], 0);
delay(x);
turnEverythingOff();
//bottom left
for(int i = 0; i<8; i++)
{
digitalWrite(column[i], 1);
}
digitalWrite(layer[0], 0);
digitalWrite(layer[1], 0);
delay(x);
turnEverythingOff();
//middle middle
for(int i = 4; i<12; i++)
{
digitalWrite(column[i], 1);
}
digitalWrite(layer[1], 0);
digitalWrite(layer[2], 0);
delay(x);
turnEverythingOff();
//top right
for(int i = 8; i<16; i++)
{
digitalWrite(column[i], 1);
}
digitalWrite(layer[2], 0);
digitalWrite(layer[3], 0);
delay(x);
turnEverythingOff();
//top middle
for(int i = 4; i<12; i++)
{
digitalWrite(column[i], 1);
}
digitalWrite(layer[2], 0);
digitalWrite(layer[3], 0);
delay(x);
turnEverythingOff();
}
//top left
for(int i = 0; i<8; i++)
{
digitalWrite(column[i], 1);
}
digitalWrite(layer[3], 0);
digitalWrite(layer[2], 0);
delay(x);
turnEverythingOff();
}
//////////////////////////////////////////////////////////////propeller
void propeller()
{
turnEverythingOff();
int x = 90;
for(int y = 4; y>0; y--)
{
for(int i = 0; i<6; i++)
{
//turn on layer
digitalWrite(layer[y-1], 0);
//a1
turnColumnsOff();
digitalWrite(column[0], 1);
digitalWrite(column[5], 1);
digitalWrite(column[10], 1);
digitalWrite(column[15], 1);
delay(x);
//b1
turnColumnsOff();
digitalWrite(column[4], 1);
digitalWrite(column[5], 1);
digitalWrite(column[10], 1);
digitalWrite(column[11], 1);
delay(x);
//c1
turnColumnsOff();
digitalWrite(column[6], 1);
digitalWrite(column[7], 1);
digitalWrite(column[8], 1);
digitalWrite(column[9], 1);
delay(x);
//d1
turnColumnsOff();
digitalWrite(column[3], 1);
digitalWrite(column[6], 1);
digitalWrite(column[9], 1);
digitalWrite(column[12], 1);
delay(x);
//d2
turnColumnsOff();
digitalWrite(column[2], 1);
digitalWrite(column[6], 1);
digitalWrite(column[9], 1);
digitalWrite(column[13], 1);
delay(x);
//d3
turnColumnsOff();
digitalWrite(column[1], 1);
digitalWrite(column[5], 1);
digitalWrite(column[10], 1);
digitalWrite(column[14], 1);
delay(x);
}
}
//d4
turnColumnsOff();
digitalWrite(column[0], 1);
digitalWrite(column[5], 1);
digitalWrite(column[10], 1);
digitalWrite(column[15], 1);
delay(x);
}
//////////////////////////////////////////////////////spiral in and out
void spiralInAndOut()
{
turnEverythingOn();
int x = 60;
for(int i = 0; i<6; i++)
{
//spiral in clockwise
digitalWrite(column[0], 0);
delay(x);
digitalWrite(column[1], 0);
delay(x);
digitalWrite(column[2], 0);
delay(x);
digitalWrite(column[3], 0);
delay(x);
digitalWrite(column[7], 0);
delay(x);
digitalWrite(column[11], 0);
delay(x);
digitalWrite(column[15], 0);
delay(x);
digitalWrite(column[14], 0);
delay(x);
digitalWrite(column[13], 0);
delay(x);
digitalWrite(column[12], 0);
delay(x);
digitalWrite(column[8], 0);
delay(x);
digitalWrite(column[4], 0);
delay(x);
digitalWrite(column[5], 0);
delay(x);
digitalWrite(column[6], 0);
delay(x);
digitalWrite(column[10], 0);
delay(x);
digitalWrite(column[9], 0);
delay(x);
///////////////////////////////////////spiral out counter clockwise
digitalWrite(column[9], 1);
delay(x);
digitalWrite(column[10], 1);
delay(x);
digitalWrite(column[6], 1);
delay(x);
digitalWrite(column[5], 1);
delay(x);
digitalWrite(column[4], 1);
delay(x);
digitalWrite(column[8], 1);
delay(x);
digitalWrite(column[12], 1);
delay(x);
digitalWrite(column[13], 1);
delay(x);
digitalWrite(column[14], 1);
delay(x);
digitalWrite(column[15], 1);
delay(x);
digitalWrite(column[11], 1);
delay(x);
digitalWrite(column[7], 1);
delay(x);
digitalWrite(column[3], 1);
delay(x);
digitalWrite(column[2], 1);
delay(x);
digitalWrite(column[1], 1);
delay(x);
digitalWrite(column[0], 1);
delay(x);
///////////////////////////////////////spiral in counter clock wise
digitalWrite(column[0], 0);
delay(x);
digitalWrite(column[4], 0);
delay(x);
digitalWrite(column[8], 0);
delay(x);
digitalWrite(column[12], 0);
delay(x);
digitalWrite(column[13], 0);
delay(x);
digitalWrite(column[14], 0);
delay(x);
digitalWrite(column[15], 0);
delay(x);
digitalWrite(column[11], 0);
delay(x);
digitalWrite(column[7], 0);
delay(x);
digitalWrite(column[3], 0);
delay(x);
digitalWrite(column[2], 0);
delay(x);
digitalWrite(column[1], 0);
delay(x);
digitalWrite(column[5], 0);
delay(x);
digitalWrite(column[9], 0);
delay(x);
digitalWrite(column[10], 0);
delay(x);
digitalWrite(column[6], 0);
delay(x);
//////////////////////////////////////////////spiral out clock wise
digitalWrite(column[6], 1);
delay(x);
digitalWrite(column[10], 1);
delay(x);
digitalWrite(column[9], 1);
delay(x);
digitalWrite(column[5], 1);
delay(x);
digitalWrite(column[1], 1);
delay(x);
digitalWrite(column[2], 1);
delay(x);
digitalWrite(column[3], 1);
delay(x);
digitalWrite(column[7], 1);
delay(x);
digitalWrite(column[11], 1);
delay(x);
digitalWrite(column[15], 1);
delay(x);
digitalWrite(column[14], 1);
delay(x);
digitalWrite(column[13], 1);
delay(x);
digitalWrite(column[12], 1);
delay(x);
digitalWrite(column[8], 1);
delay(x);
digitalWrite(column[4], 1);
delay(x);
digitalWrite(column[0], 1);
delay(x);
}
}
Размещено на Allbest.ru
...Подобные документы
Аппаратные средства с возможностью расширения и открытыми принципиальными схемами. Процесс работы с микроконтроллерами. Теоретические сведения о платформе Arduino. Установка драйверов для Arduino Duemilanove, Nano или Diecimila в Windows 7, Vista или XP.
курсовая работа [3,3 M], добавлен 26.09.2014Принципы работы цифрового компаса HMC5883L, платы Arduino UNO. Особенности шины I2C, ее недостатки и преимущества. Программа Fritzing, ее значение для построения схемы подключения цифрового компаса к Arduino UNO. Согласование уровней выхода со входом.
курсовая работа [1,4 M], добавлен 30.03.2014Упрощенная модель системы регулировки. Стандартный конструктив Ардуино с платами расширения. Внешний вид Ардуино Uno. Среда разработки Arduino. Встроенный текстовый редактор программного кода. Программа управления шаговым двигателем в однофазном режиме.
курсовая работа [4,5 M], добавлен 02.06.2015Понятие и виды микроконтроллеров. Особенности программирования микропроцессорных систем, построение систем управления химико-технологическим процессом. Изучение архитектуры микроконтроллера ATmega132 фирмы AVR и построение на его основе платформы Arduino.
курсовая работа [1,9 M], добавлен 13.01.2011Классификация электромагнитных подвесов. Построение математической модели стенда. Программная реализация пропорционально-интегрально-дифференциального регулятора. Описание микроконтроллера ATmega 328 и платы Arduino. Сборка и ввод стенда в эксплуатацию.
дипломная работа [2,6 M], добавлен 09.06.2014Особенности микроконтроллеров AVR семейства Mega. Работа ЖК-индикатора на твист-эффекте при напряжениях. Виды и параметры аккумуляторов, их сравнительный анализ. Описание структурной и принципиальной схемы лабораторного стенда отладочного модуля.
курсовая работа [961,3 K], добавлен 13.02.2016Опис актуальності завдання та область використання мікросхеми Arduino UNO. Особливості дослідження, проектування і розробки схем. Тахометр як прилад для вимірювання частоти обертання валів машин і механізмів. Перелік елементів адаптера інтерфейсу RS-232.
курсовая работа [2,9 M], добавлен 19.07.2014Понятие и функциональные особенности микроконтроллера, его структура и взаимодействие основных элементов, архитектура. Принципы работы светодиодного табло и порядок программирования микроконтроллера. Основные понятия и измерение надежности системы.
курсовая работа [108,1 K], добавлен 29.03.2014Разработка малогабаритного автомобильного термометра на базе микроконтроллера и требования к нему. Проектирование функциональной схемы, работа измерителя. Выбор элементной базы. Схема включения усилителя. Архитектура и элементы микроконтроллера.
контрольная работа [841,4 K], добавлен 22.05.2015Условия эксплуатации микропроцессорного устройства "Светодиодные фонари с электронным управлением" на базе МК ATtiny 15. Техническое описание микроконтроллера. Разработка структурной и электрической принципиальной схем, интерфейса управления и индикации.
курсовая работа [267,5 K], добавлен 01.05.2015Общие сведения о микроконтроллерах, их сфера применения. Построение электрической принципиальной схемы светодиодного табло на микроконтроллере PIC16C84. Расчет цепи схемы, программирование микроконтроллера. Особенности расчета надежности системы.
реферат [255,1 K], добавлен 25.03.2014Описание объекта и функциональная спецификация. Описание ресурсов МК: расположение выводов; исполнение микроконтроллера; особенности микроконтроллеров. Разработка алгоритмов устройства. Описание функциональных узлов МПС и алгоритма их взаимодействия.
курсовая работа [5,2 M], добавлен 27.12.2009Особенности проектирования микропроцессорного устройства "Цифровой осциллограф". Выбор микроконтроллера, описание периферийных устройств. Разработка принципиальной схемы устройства и программы для микроконтроллера, осуществляющей все функции устройства.
курсовая работа [923,5 K], добавлен 24.12.2012Анализ основных технических требований. Выбор и обоснование элементной базы, материалов конструкции, компоновочной схемы, метода и принципа конструирования. Разработка модуля управления климатом на базе микроконтроллера. Стандартная структура сети.
отчет по практике [1,1 M], добавлен 28.04.2015Назначение и условия эксплуатации светодиодного устройства на МК ATtiny 15. Микроконтроллер как микросхема, предназначенная для управления электронными устройствами. Обоснование его применения. Разработка структурной схемы светодиодного устройства.
курсовая работа [380,8 K], добавлен 04.04.2015Модернизация более ранней разработки устройства на базе микроконтроллера MCS-48, предназначенного для увлажнения дыхательной смеси. Проектная процедура ПЛИС типа SOPC, реализованная на базе микроконтроллера MCS-48. Проектирование структурной схемы.
курсовая работа [523,2 K], добавлен 03.05.2015Описание структурной и функциональной схем электронных часов, выбор элементной базы. Разработка счетчика времени с системой управления на базе микроконтроллера. Экономический расчет затрат на проектирование, разработку и сборку макета электронных часов.
дипломная работа [223,5 K], добавлен 26.07.2015Выбор структуры одноплатного микроконтроллера. Модули памяти микроконтроллера. Селектор адреса портов ввода/вывода и возможность изменения селектируемых адресов. Деление адресного пространства на окна. Нумерация точек в схеме цифрового фильтра.
курсовая работа [204,3 K], добавлен 10.11.2013Особенности микроконтроллера ATTINY семейства AVR. Описание ресурсов микроконтроллера ATTINY12: описание процессора, порты ввода/вывода, периферийные устройства, архитектура ядра. Разработка устройства со световыми эффектами на базе микроконтроллера.
курсовая работа [2,1 M], добавлен 24.06.2013Создание микропроцессорной системы на базе микроконтроллера, предназначенного для функциональной диагностики цифровых и интегральных микросхем. Разработка и расчёт блоков микроконтроллера, сопряжения, управления, питания, цифровой и диодной индикации.
курсовая работа [1,5 M], добавлен 28.01.2016