среда, 4 сентября 2013 г.

Arduino UNO R3. Hello World ver. 2!

Список ссылок на статьи:
1. Arduino UNO R3, Hello World!
2. Arduino UNO R3. Hello World ver. 2!

Привет. Сейчас вечер среды, а значит у меня высвободилась минутка и можно написать статейку. О чём сегодня будет? Сегодня опять будем приветствовать мир, да да, не плюйтесь сильно. Но я считаю, что так и надо. Только вот моргать мы будем не внутренним светодиодом, а подключённым извне. Добро пожаловать под кат.

Для начала я пошлю Вас.. ан другой ресурс, читать матчасть. Светодиоды бывают всякие разные, и конечно же тем, кто впервые с ними сталкивался, приходится думать, а какой резистор подключать? И нужен ли он вообще? Чтобы данный вопрос был исчерпан я нашёл для Вас отличную статью, хоть и многобукв, но она интересна и информативна. Прошу сначала ознакомится с ней

Ознакомились? Хорошо,поехали дальше. И да, нужно будет софт какой нибудь удобный,чтобы схемы чертить. Пока как нибудь набросаем так. В общем, для это лабораторки нам понадобится ардуинка, пин-плата(в дырках вся которая, для краткости буду называть её пин-плата), один резистор на 220 Ом(к-ч-ч-б-б)(коричневый-чёрный-чёрный-бардовый-бардовый - это маркировка), один светодиод(мне попался синий), 3 проводка типа папа(которые надо втыкать). 
Небольшая матчасть(снова):
когда я в первый раз столкнулся с пин-платой(макетная плата по правильному) я не понял как там что соединено. На самом деле всё было достаточно просто. 

Там, где + и - соединения идут горизонтально(если говорить по картинке), а те, что отмечены букво-цифрами - вертикально. То есть если подключить самый левый угловой пин и самый правый угловой, то они буду связаны. С буквами наоборот. Все дырки с а1 до е1 соединены, так же как и с f1 до j1. Запутано пояснил, но при сборке станет ясно. Приведём саму схему:


Да,мне пока лень рисовать, картинку я украл. Но не суть, всё равно по ней не особо то и поймёшь, что куда. Если кратко:
1. Берём красный провод(обычно в электронике красный - это "+", а чёрный - "-") соединяем + платы и питание 3.3V на ардуине.
2. Берём чёрный провод и соединяем _ платы с любым GND(это значит земля или минус) разъёмом.
3. Втыкаем светодиод на плату как на картинке, запоминаем,что короткий контакт - минус, длинный - плюс(на светодиоде).
4. соединяем минус светодиода резистором с минусом GND(или просто с минусом).
5. Соединяем 13 разъём ардуино с плюсом светодиода.
6. Подаём на ардуино питание и смотрим, как синхронно мигают внутренний и внешний светодиод.

Это всё, у меня получилось что-то вроде этого:


Я не мастер фотошопа(у меня вообще его нет), но одно фото получилось ламповым. И гугл чёт глючит, не заливает фоты сразу.
Так, что же ещё можно сделать. Мигать то надоело! По сути можно менять программу так, что мигать будет по разному. Но можно ввести ещё один эффект - управление яркостью светодиода. Рассмотрим наш код из прошлой статьи:

/* Мигание
* включает светодиод на 1 секунду, выключает на 1 секунду,
* функция вызывается по кругу
* Created 1 June 2005 By David Cuartielles
* http://arduino.cc/en/Tutorial/Blink
* based on an orginal by H. Barragan for the Wiring i/o board
*/
int ledPin = 13; // светодиод подключен к выходу 13
// Функция начальных установок setup() вызывается 1 раз в начале скетча
void setup() { // устанавливаем 13 контакт в режим вывода:
pinMode(ledPin, OUTPUT); }
// функция loop() вызывается по кругу
// пока Arduino подключен к питанию
void loop() {
digitalWrite(ledPin, HIGH); // включение светодиода
delay(1000); // задержка 1 сек
digitalWrite(ledPin, LOW); // выключение светодиода
delay(1000); // задержка 1 сек
}

Новая функция называется analogWrite(ledPin, new number); Параметры указаны в скобках.
newnumber – любое число из диапазона 0...255. 0 будет соответствовать отключенному светодиоду, 255 — максимальная яркость.
ledPin - номер порта, куда подключен светодиод.

В шаблонах так же есть программа-мигалка, которая демонстрирует  мягкое мигание светодиода. Её можно найти File > Examples > 3.Analog > Fading. 
Текст программы:

int ledPin = 13;   

void setup()  { 

void loop()  { 
  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) { 
    analogWrite(ledPin, fadeValue);         
    delay(30);                            
  } 

  for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) { 
    analogWrite(ledPin, fadeValue);         
    delay(30);                            
  } 
}


Прошиваем ардуино и смотрим.
Имея даже эти две функции и балуюсь с одним светодиодом можно много чего сделать. Но наверное Вам надоело, да? Тогда вот домашнее задание: используя полученные сегодня знание собрать массив из 8 светодиодов. И заставить их мягко мигать поочерёдно с задержкой 1 секунда между светодиодами. Кто справится без гугла - тот молодец! На этом я заканчиваю свою статью, в следующей мы рассмотрим сборку массива светодиодов и написание программы для него. Статья будет примерно в выходные. Всем спасибо за внимание и пока!

Комментариев нет:

Отправить комментарий