Arduino: какво може да се направи с него. Arduino за начинаещи: инструкции стъпка по стъпка. Програмиране и проекти на Arduino: Откъде да започна? Ардуино дизайни

В тази статия реших да събера пълен ръководство стъпка по стъпказа начинаещи в Arduino. Ще разгледаме какво е Arduino, какво трябва да започнете да учите, къде да изтеглите и как да инсталирате и конфигурирате средата за програмиране, как работи и как да използвате езика за програмиране и много повече, което е необходимо за създаване на пълноценен сложни устройства, базирани на семейството на тези микроконтролери.

Тук ще се опитам да дам съкратен минимум, за да разберете принципите на работа с Arduino. За по-пълно потапяне в света на програмируемите микроконтролери, обърнете внимание на други раздели и статии на този сайт. Ще оставя връзки към други материали на този сайт за по-подробно проучване на някои аспекти.

Какво е Arduino и за какво служи?

Arduino е електронен конструктивен комплект, който позволява на всеки да създава различни електромеханични устройства. Arduino се състои от софтуер и хардуер. Софтуерната част включва среда за разработка (програма за писане и отстраняване на грешки на фърмуера), много готови и удобни библиотеки и опростен език за програмиране. Хардуерът включва голяма гама микроконтролери и готови модули за тях. Благодарение на това работата с Arduino е много лесна!

С помощта на Arduino можете да научите програмиране, електроинженерство и механика. Но това не е просто образователен конструктор. Въз основа на него можете да направите наистина полезни устройства.
Започвайки от обикновени мигащи светлини, метеорологични станции, системи за автоматизация и завършвайки със системи за интелигентен дом, CNC машини и безпилотни летателни апарати. Възможностите дори не са ограничени от вашето въображение, защото има огромен брой инструкции и идеи за изпълнение.

Стартов комплект Arduino

За да започнете да изучавате Arduino, трябва да придобиете самата платка на микроконтролера и допълнителни части. Най-добре е да закупите стартов комплект Arduino, но можете сами да изберете всичко, от което се нуждаете. Препоръчвам да изберете комплект, защото е по-лесно и често по-евтино. Ето връзки към най-добрите комплекти и отделни части, които определено ще трябва да проучите:

Основен комплект Arduino за начинаещи:Купува
Голям комплект за обучение и първи проекти:Купува
Комплект допълнителни сензори и модули:Купува
Arduino Uno е най-основният и удобен модел от линията:Купува
Макет без запояване за лесно обучение и създаване на прототипи:Купува
Комплект проводници с удобни конектори:Купува
LED комплект:Купува
Резисторен комплект:Купува
Бутони:Купува
Потенциометри:Купува

Arduino IDE среда за разработка

За да пишете, отстранявате грешки и изтегляте фърмуер, трябва да изтеглите и инсталирате Arduino IDE. Това е много проста и удобна програма. На моя уебсайт вече описах процеса на изтегляне, инсталиране и конфигуриране на средата за разработка. Така че тук просто ще оставя връзки към последна версияпрограми и

Версия Windows Mac OS X Linux
1.8.2

Език за програмиране Arduino

Когато имате микроконтролерна платка в ръцете си и среда за разработка, инсталирана на вашия компютър, можете да започнете да пишете първите си скици (фърмуер). За да направите това, трябва да се запознаете с езика за програмиране.

Програмирането на Arduino използва опростена версия на езика C++ с предварително дефинирани функции. Както и в други C-подобни езици за програмиране, има редица правила за писане на код. Ето най-основните:

  • Всяка инструкция трябва да бъде последвана от точка и запетая (;)
  • Преди да декларирате функция, трябва да укажете типа на данните, върнат от функцията, или void, ако функцията не връща стойност.
  • Също така е необходимо да посочите типа данни, преди да декларирате променлива.
  • Коментарите са обозначени: // Inline и /* block */

Можете да научите повече за типовете данни, функциите, променливите, операторите и езиковите конструкции на страницата на Не е необходимо да запаметявате и запомняте цялата тази информация. Винаги можете да отидете в справочника и да разгледате синтаксиса на определена функция.

Целият фърмуер на Arduino трябва да съдържа поне 2 функции. Това са setup() и loop().

функция за настройка

За да работи всичко, трябва да напишем скица. Нека накараме светодиода да светне след натискане на бутона и да изгасне след следващото натискане. Ето първата ни скица:

// променливи с щифтове на свързани устройства int switchPin = 8; int ledPin = 11; // променливи за съхраняване на състоянието на бутона и светодиода boolean lastButton = LOW; boolean currentButton = LOW; булево ledOn = невярно; void setup() ( pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // функция за премахване на boolean debounse(boolean last) ( boolean current = digitalRead(switchPin); if(last != current) ( delay ( 5); current = digitalRead(switchPin); ) return current; ) void loop() ( currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) ( ledOn = !ledOn; ) lastButton = currentButton ; digitalWrite(ledPin, ledOn); )

// променливи с щифтове на свързани устройства

int switchPin = 8;

int ledPin = 11;

// променливи за съхраняване на състоянието на бутона и светодиода

boolean lastButton = LOW;

boolean currentButton = LOW;

булево ledOn = невярно;

void setup() (

pinMode(switchPin, INPUT);

pinMode(ledPin, ИЗХОД);

// функция за премахване на отскок

boolean debounse (boolean last ) (

булев ток = digitalRead(switchPin);

ако (последно!= текущо) (

забавяне (5);

ток = digitalRead(switchPin);

обратен ток ;

void loop() (

currentButton = debounse(lastButton);

if (lastButton == LOW && currentButton == HIGH ) (

ledOn = ! ledOn ;

lastButton = currentButton;

digitalWrite(ledPin, ledOn);

В тази скица създадох допълнителна функция за дебоунс за потискане на отскачането на контакта. На моя уебсайт има информация за отхвърляне на контакти. Не пропускайте да разгледате този материал.

ШИМ Ардуино

Широчинно-импулсната модулация (PWM) е процес на контролиране на напрежението с помощта на работния цикъл на сигнала. Тоест, използвайки ШИМ можем плавно да контролираме товара. Например, можете плавно да промените яркостта на светодиод, но тази промяна в яркостта се получава не чрез намаляване на напрежението, а чрез увеличаване на интервалите на ниския сигнал. Принципът на работа на ШИМ е показан на тази диаграма:

Когато приложим ШИМ към светодиода, той започва бързо да светва и да изгасва. Човешкото око не може да види това, защото честотата е твърде висока. Но когато снимате видео, най-вероятно ще видите моменти, когато светодиодът не свети. Това ще се случи при условие, че кадровата честота на камерата не е кратна на честотата на ШИМ.

Arduino има вграден модулатор на ширината на импулса. Можете да използвате ШИМ само на тези щифтове, които се поддържат от микроконтролера. Например Arduino Uno и Nano имат 6 PWM пина: това са щифтове D3, D5, D6, D9, D10 и D11. Пиновете може да се различават на други платки. Можете да намерите описание на таблото, което ви интересува

За да използвате PWM в Arduino, има функция. Тя приема като аргумент номера на щифта и стойността на PWM от 0 до 255. 0 е 0% запълване с висок сигнал, а 255 е 100%. Нека напишем проста скица като пример. Нека накараме светодиода да светне плавно, да изчакаме една секунда и да изчезне също толкова плавно и така до безкрайност. Ето пример за използване на тази функция:

// Светодиодът е свързан към пин 11 int ledPin = 11; void setup() ( pinMode(ledPin, OUTPUT); ) void loop() ( for (int i = 0; i< 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i >0; i--) (analogWrite(ledPin, i); забавяне(5); ))

// Светодиод, свързан към пин 11

int ledPin = 11;

void setup() (

pinMode(ledPin, ИЗХОД);

void loop() (

за (int i = 0; i< 255 ; i ++ ) {

analogWrite(ledPin, i);

забавяне (5);

забавяне (1000);

за (int i = 255; i > 0; i -- ) (

Поредица от статии и диаграми за обучение с любителски радио експерименти на Arduino за начинаещи. Това е такава любителска радиоконструктивна играчка, от която без поялник, ецване на печатни платки и други подобни всеки електронен чайник може да сглоби пълноценно работещо устройство, подходящо както за професионално прототипиране, така и за любителски експерименти в изследването на електроника.


Платката Arduino е предназначена предимно за обучение на начинаещи радиолюбители на основите на програмирането на микроконтролери и създаването на микроконтролерни устройства със собствените си ръце без сериозно теоретично обучение. Средата за разработка Arduino ви позволява да компилирате и заредите готов програмен код в паметта на платката. Освен това зареждането на кода е изключително просто.

Arduino откъде да започне за начинаещ

На първо място, за да работи с платката Arduino, начинаещ инженер по електроника трябва да изтегли програмата за разработка на Arduino; тя се състои от вграден текстов редактор, в който работим с програмен код, област за съобщения, прозорец за извеждане на текст (конзола ), лента с инструменти с бутони за често използвани команди и няколко менюта. За да изтеглите своите програми и да комуникирате, тази програма е свързана към платката Arduino чрез стандартен USB кабел.


Извиква се код, написан в средата на Arduino скица. Написано е в текстов редактор, който разполага със специални инструменти за вмъкване/изрязване, замяна/търсене на текст. По време на запазване и експортиране обясненията се появяват в областта за съобщения (вижте снимката в първия урок за начинаещи, точно по-долу) и може също да се показват грешки. Конзолата показва съобщения на Arduino, включително пълни отчети за грешки и друга полезна информация. Бутоните на лентата с инструменти ви позволяват да проверявате и записвате скица, да я отваряте, създавате и запазвате, да отваряте наблюдение на серийна шина и много повече.

И така, нека преминем към първия урок за схеми на Arduino за начинаещи инженери по електроника.

За удобство на начинаещите контролерът Arduino UNO вече има съпротивление и светодиод, свързан към пин 13 на конектора, така че не се нуждаем от външни радио елементи в първия експеримент.


Чрез зареждане на кода Arduino позволява на нашата програма да участва в инициализацията на системата. За да направим това, ние указваме на командите на микроконтролера, които той ще изпълни по време на първоначалното зареждане и след това напълно забравя за тях (т.е. тези команди ще бъдат изпълнени от Arduino само веднъж при стартиране). И именно за тази цел в нашия код избираме блок, в който се съхраняват тези команди. void setup(), или по-скоро в пространството във фигурните скоби на тази функция, вижте скицата на програмата.

Не забравяйте за брекети! Загубата на поне един от тях ще направи цялата скица напълно неизпълнима. Но не поставяйте и допълнителни скоби, тъй като това също ще доведе до грешка.

Код за изтегляне:
Скица с коментари и обяснения във файла 001-1_mig-led.ino

функция void loop()тук поставяме командите, които ще се изпълняват, докато Arduino е включен. След като започне изпълнението от първата команда, Arduino ще стигне до самия край и веднага ще отиде в началото, за да повтори същата последователност. И така безкраен брой пъти, докато платката получава захранване. В основата си void loop е основната функция, входната точка в Arduino.


функция забавяне(1000) забавя обработката на програмата с 1000 милисекунди. Всичко продължава във вечен цикъл цикъл ().

Основното заключение след разбирането на нашата първа програма на Arduino:Използвайки функциите за void loop и void setup, предаваме инструкциите си на микроконтролера. Всичко, което е вътре в блока за настройка, ще бъде изпълнено само веднъж. Съдържанието на модула за цикъл ще се повтаря в цикъл, докато Arduino остане включен.

В предишната програма имаше второ забавяне между включването и изключването на светодиода. Имаше един голям минус в най-простия код на начинаещ оператор Arduino, използван по-горе. За да поддържаме пауза между включването и изключването на светодиода за една секунда, използвахме функцията забавяне ()и следователно в този момент контролерът не може да изпълнява други команди в основната функция цикъл (). Коригиране на код във функция цикъл (), представен по-долу, решава този проблем.

Вместо да зададем стойността на HIGH и след това на LOW, ще получим стойността на ledPin и ще я обърнем. Да кажем, че ако е било ВИСОКО, ще стане НИСКО и т.н.

Второ Опция за код на Arduino за LED управлениеТук:

След това можете да замените функцията забавяне (). Вместо това е по-добре да използвате функцията милис(). Връща броя милисекунди, изминали от стартирането на програмата. Функцията ще препълни след приблизително 50 дни изпълнение на програмния код.

Подобна функция е микро (), който връща броя микросекунди, изминали от стартирането на програмния код. Функцията ще се върне на нула след 70 минути работа на програмата.

Разбира се, това ще добави няколко реда код към нашата скица, но несъмнено ще ви направи по-опитен програмист и ще увеличи потенциала на вашия Arduino. За да направите това, просто трябва да научите как да използвате функцията millis.

Трябва ясно да се разбере, че най-простата функция за забавяне поставя на пауза изпълнението на цялата програма Arduino, правейки я неспособна да изпълнява никакви задачи през този период от време. Вместо да спираме на пауза цялата си програма, можем да преброим колко време е минало, преди действието да завърши. Това, добре, се реализира с помощта на функцията millis(). За да направим всичко лесно за разбиране, ще разгледаме следната опция за мигане на светодиод без забавяне във времето.

Началото на тази програма е същото като всяка друга стандартна скица на Arduino.


Този пример използва два цифрови I/O пина на Arduino. Светодиодът е свързан към пин 8, който е конфигуриран като OUTPUT. Бутон е свързан към 9 чрез, който е конфигуриран като INPUT. Когато натиснем бутона, пин 9 се настройва на HIGH и програмата превключва пин 8 на HIGH, като по този начин включва светодиода. Отпускането на бутона нулира пин 9 на LOW. След това кодът превключва пин 8 на LOW, изключвайки светлинния индикатор.

За да контролираме пет светодиода, ще използваме различни манипулации с портовете на Arduino. За да направим това, ние директно ще запишем данни в портовете на Arduino, което ще ни позволи да зададем стойностите за светодиодите, използвайки само една функция.

Arduino UNO има три порта: б(цифрови входове/изходи от 8 до 13); ° С(аналогови входове); д(цифрови входове/изходи 0 до 7)

Всеки порт контролира три регистъра. Първият DDR указва дали щифтът ще бъде вход или изход. Използвайки втория PORT регистър, можете да зададете pin на HIGH или LOW. Използвайки третия, можете да прочетете информация за състоянието на краката на Arduino, ако работят като вход.

За да управляваме веригата, ще използваме порт B. За да направим това, ще настроим всички щифтове на порта като цифрови изходи. Порт B има само 6 крака. Битовете на регистъра DDRB трябва да бъдат зададени на "1" , ако щифтът ще се използва като изход (OUTPUT), и в "0" , ако планираме да използваме щифта като вход (INPUT). Порт битовете са номерирани от 0 до 7, но не винаги имат всичките 8 пина

Да речем: DDRB = B00111110;// задаване на порт B пинове 1 до 5 като изход и 0 като вход.

В нашата верига на светлините използваме пет изхода: DDRB = B00011111; // задаване на порт B пинове 0 до 4 като изходи.

За да запишете данни на порт B, трябва да използвате регистъра PORTB. Можете да запалите първия светодиод с помощта на командата за управление: PORTB = B00000001;, първи и четвърти светодиод: PORTB = B00001001и така нататък

Има два двоични оператора за смяна: наляво и надясно. Операторът за ляво преместване кара всички битове данни да се преместят наляво, докато операторът за десен преместване ги премества надясно.

Пример:

varA = 1; // 00000001
varA = 1 varA = 1 varA = 1

Сега нека се върнем към изходния код на нашата програма. Трябва да въведем две променливи: нагоре надолуще включва стойностите къде да се движите - нагоре или надолу и второто cylonще покаже кои светодиоди да светят.

Структурно такъв светодиод има един общ терминал и три терминала за всеки цвят. По-долу е дадена диаграма за свързване на RGB LED към платка Arduino с общ катод. Всички резистори, използвани в свързващата верига, трябва да бъдат с еднаква стойност от 220-270 ома.


За връзка с общ катод схемата на свързване на трицветен светодиод ще бъде почти същата, с изключение на това, че общият щифт ще бъде свързан не към земята (gnd на устройството), а към щифта +5 волта. Пиновете Червен, зелен и син и в двата случая са свързани към цифровите изходи на контролера 9, 10 и 11.

Ще свържем външен светодиод към деветия пин на Arduino UNO чрез съпротивление от 220 ома. За да контролирате плавно яркостта на последното, използвайте функцията analogWrite(). Той осигурява изход на ШИМ сигнал към крака на контролера. Освен това екипът pinMode()няма нужда да се обаждате. защото analogWrite(пин,стойност)включва два параметъра: pin - номер на пин за изход, value - стойност от 0 до 255.

Код:
/*
Примерен урок за начинаещ разработчик на Arduino, който разкрива възможностите на командата analogWrite() за прилагане на ефекта Fade на LED
*/
int яркост = 0; // LED яркост
int fadeAmount = 5; // стъпка на промяна на яркостта
unsigned long currentTime;
unsigned long loopTime;

Void setup() (
pinMode(9, ИЗХОД); // задайте пин 9 като изход
currentTime = millis();
loopTime = текущо време;
}

Void loop() (
currentTime = millis();
if(currentTime >= (loopTime + 20))(
analogWrite(9, яркост); // задайте стойността на пин 9

Яркост = яркост + fadeAmount; // добавете стъпка за промяна на яркостта, която ще бъде установена в следващия цикъл

// ако се достигне мин. или макс. стойности, тогава отиваме в обратната посока (обратно):
ако (яркост == 0 || яркост == 255) (
fadeAmount = -fadeAmount ;
}
loopTime = текущо време;
}
}

Работещ Arduino с енкодер

Енкодерът е проектиран да преобразува ъгъла на въртене в електрически сигнал. От него получаваме два сигнала (А и В), които са противоположни по фаза. В този урок ще използваме енкодера SparkFun COM-09117, който има дванадесет позиции на оборот (всяка позиция е точно 30°). Фигурата по-долу ясно показва как изходните данни A и B зависят един от друг, когато енкодерът се движи по или обратно на часовниковата стрелка.

Ако сигнал A премине от положително ниво към нула, ние четем стойността на изход B. Ако изход B е в положително състояние в този момент от време, тогава енкодерът се движи по посока на часовниковата стрелка, ако B извежда нулево ниво, тогава енкодерът се движи в обратна посока. Чрез четене на двата изхода можем да изчислим посоката на въртене с помощта на микроконтролер и чрез преброяване на импулси от изход А на енкодера, ъгъла на въртене.

Ако е необходимо, можете да използвате изчисления на честотата, за да определите колко бързо се върти енкодерът.

Използвайки енкодер в нашия пример за урок, ние ще регулираме яркостта на светодиода с помощта на ШИМ изхода. За да прочетем данни от енкодера, ще използваме метод, базиран на софтуерни таймери, който вече разгледахме.

Имайки предвид факта, че в бърз случай, можем да завъртим копчето на енкодера на 180° за 1/10 от секундата, тогава ще бъдат 6 импулса за 1/10 от секундата или 60 импулса за една секунда.

Реално не е възможно да се върти по-бързо. Тъй като трябва да проследим всички полупериоди, честотата трябва да бъде около 120 херца. За да сме напълно сигурни, нека вземем 200 Hz.

Тъй като в този случай използваме механичен енкодер, е възможно отскачане на контакта, а ниската честота идеално филтрира такова отскачане.


Въз основа на сигналите на програмния таймер е необходимо постоянно да се сравнява текущата стойност на изхода на енкодера А с предишната стойност. Ако състоянието се промени от положително на нула, тогава проверяваме състоянието на изход B. В зависимост от резултата от проучването на състоянието, увеличаваме или намаляваме брояча на стойността на яркостта на светодиода. Програмният код с времеви интервал около 5 ms (200 Hz) е представен по-долу:

Код за начинаещи на Arduino:
/*
** Енкодер
** За управление на яркостта на светодиода се използва енкодер от Sparkfun
*/

Int яркост = 120; // LED яркост, започва от половината
int fadeAmount = 10; // стъпка на промяна на яркостта
unsigned long currentTime;
unsigned long loopTime;
const int pin_A = 12; // щифт 12
const int pin_B = 11; // щифт 11
unsigned char encoder_A;
unsigned char encoder_B;
unsigned char encoder_A_prev=0;
void setup() (
// декларираме пин 9 като изход:
pinMode(9, ИЗХОД); // задайте пин 9 като изход
pinMode(pin_A, INPUT);
pinMode(pin_B, INPUT);
currentTime = millis();
loopTime = текущо време;
}
void loop() (
currentTime = millis();
if(currentTime >= (loopTime + 5))( // проверка на състоянията на всеки 5ms (честота 200 Hz)
encoder_A = digitalRead(pin_A); // прочете състоянието на изход A на енкодера
encoder_B = digitalRead(pin_B); // изход на енкодер B
if((!encoder_A) && (encoder_A_prev))( // ако състоянието се промени от положително на нула
ако (енкодер_B) (
// изход B е в положително състояние, което означава, че въртенето е по посока на часовниковата стрелка
// увеличаване на яркостта на сиянието, не повече от 255
ако (яркост + fadeAmount)
иначе(
// изход B е в нулево състояние, което означава, че въртенето е обратно на часовниковата стрелка
// намаляване на яркостта, но не под нулата
if(brightness - fadeAmount >= 0) яркост -= fadeAmount;
}

}
encoder_A_prev = енкодер_A; // запазваме стойността на A за следващия цикъл

AnalogWrite(9, яркост); // задайте яркостта на деветия щифт

LoopTime = текущо време;
}
}

В този пример за начинаещи ще разгледаме работата с пиезо емитер за генериране на звуци. За да направим това, нека вземем пиезоелектричен сензор, който ни позволява да генерираме звукови вълни в честотния диапазон 20 Hz - 20 kHz.

Това е аматьорски радиодизайн, при който светодиодите са разположени в целия обем. Използвайки тази схема, можете да генерирате различни светлинни и анимационни ефекти. Сложните диаграми могат дори да показват различни големи думи. С други думи, това е елементарен съраунд монитор

Серво задвижването е основният елемент в дизайна на различни радиоуправляеми модели, а управлението му с помощта на контролер е просто и удобно.


Програмата за управление е проста и интуитивна. Започва със свързване на файл, съдържащ всички необходими команди за управление на серво задвижването. След това създаваме серво обект, например servoMain. Следващата функция е setup(), в която указваме, че сервото е свързано към деветия пин на контролера.

Код:
/*
Ардуино Серво
*/
#включи
Серво servoMain; // Серво обект

Празна настройка()
{
servoMain.attach(9); // Серво, свързано към пин 9
}

void loop()
{
servoMain.write(45); // Завъртете сервото наляво на 45°
забавяне (2000); // Изчакайте 2000 милисекунди (2 секунди)
servoMain.write(0); // Завъртете сервото наляво с 0°
забавяне (1000); // Пауза 1 сек.

забавяне (1500); // Изчакайте 1,5 s.
servoMain.write(135); // Завъртете сервото надясно на 135°
забавяне (3000); // Пауза 3 сек.
servoMain.write(180); // Завъртете сервото надясно на 180°
забавяне (1000); // Изчакайте 1 s.
servoMain.write(90); // Завъртете сервото на 90°. Централна позиция
забавяне (5000); // Пауза 5 сек.
}

В основната функция цикъл (), подаваме команди към сервомотора, с паузи между тях.

Брояч Arduino на 7-сегментен индикатор

Този прост проект на Arduino за начинаещи включва създаване на верига на брояч, използвайки обикновен 7-сегментен дисплей с общ катод. Програмният код по-долу ви позволява да започнете да броите от 0 до 9, когато натиснете бутон.

Седемсегментен индикатор - представлява комбинация от 8 светодиода (последният отговаря за точката) с общ катод, които могат да се включват в желаната последователност, така че да създават числа. Трябва да се отбележи, че в тази схема, вижте фигурата по-долу, щифтове 3 и 8 са разпределени към катода.


Вдясно е таблица на съответствието между щифтовете на Arduino и щифтовете на LED индикатора.

Код за този проект:

номера на байтове = (
B11111100, B01100000, B11011010, B11110010, B01100110,
B10110110, B10111110, B11100000, B11111110, B11100110
};
void setup() (
for(int i = 2; i pinMode(i, OUTPUT);
}
pinMode(9, INPUT);
}
int брояч = 0;
bool go_by_switch = вярно;
int last_input_value = LOW;
void loop() (
if(go_by_switch) (
int switch_input_value = digitalRead(9);
if(last_input_value == LOW && switch_input_value == HIGH) (

}
last_input_value = switch_input_value;
) иначе (
забавяне (500);
брояч = (брояч + 1) % 10;
}
writeNumber(брояч);
}

Void writeNumber(int число) (
ако (номер 9) (
връщане;
}
байтова маска = числа;
байт currentPinMask = B10000000;
for(int i = 2; i if(mask & currentPinMask) digitalWrite(i,HIGH);
иначе digitalWrite(i,LOW);
currentPinMask = currentPinMask >> 1;
}
}

Можете значително да разширите потенциала на платките Arduino с помощта на допълнителни модули, които могат да бъдат свързани към PIN щифтовете на почти всяко устройство. Помислете за най-популярните и интересни разширителни модули или щитове, както се наричат ​​още.

Arduino е много популярен сред всички ентусиасти в дизайна. Тези, които никога не са чували за него, също трябва да бъдат запознати с него.

Какво е Arduino?

Как можете накратко да опишете Arduino? Най-добрите думи биха били: Arduino е инструмент, който може да се използва за създаване на различни електронни устройства. По същество това е истинска хардуерна изчислителна платформа с общо предназначение. Може да се използва за изграждане прости вериги, и за изпълнение на доста сложни проекти.

Дизайнерът се основава на неговия хардуер, който е входно-изходна платка. За програмиране на платката се използват езици, които са базирани на C/C++. Те се наричат ​​съответно Обработка/Окабеляване. От група C те са наследили изключителна простота, благодарение на която могат да бъдат усвоени много бързо от всеки човек, а прилагането на знанията на практика не е доста съществен проблем. За да разберете лекотата на работа, често се казва, че Arduino е за начинаещи магьосници-дизайнери. Дори децата могат да разберат дъските Arduino.

Какво можете да съберете върху него?

Приложенията на Arduino са доста разнообразни, той може да се използва както за най-простите примери, които ще бъдат препоръчани в края на статията, така и за доста сложни механизми, включително манипулатори, роботи или производствени машини. Някои занаятчии успяват да използват такива системи за производство на таблети, телефони, системи за наблюдение и сигурност на дома, “ умна къща"или просто компютри. Проектите на Arduino за начинаещи, с които дори и тези без опит могат да започнат, са в края на статията. Те дори могат да се използват за създаване на примитивни системи за виртуална реалност. Всичко това благодарение на доста гъвкавия хардуер и възможности, които предлага програмирането на Arduino.

Къде мога да купя компонентите?

Компонентите, произведени в Италия, се считат за оригинални. Но цената на такива комплекти не е ниска. Ето защо, редица компании или дори отделни лица правят занаятчийски методи за устройства и компоненти, съвместими с Arduino, които на шега се наричат ​​производствени клонинги. При закупуване на такива клонинги не може да се каже със сигурност, че те ще работят, но желанието да се спестят пари взема своето.

Компонентите могат да бъдат закупени като част от комплекти или отделно. Има дори предварително подготвени комплекти за сглобяване на автомобили, хеликоптери с различни видове управление или кораби. Комплект като този на снимката по-горе, произведен в Китай, струва $49.

Повече за оборудването

Платката Arduino е проста AVR микроконтролер, който беше флашнат с буутлоудър и има минимално необходимия USB-UART порт. Има и други важни компоненти, но в рамките на статията би било по-добре да се съсредоточим само върху тези два компонента.

Първо, за микроконтролера, механизъм, изграден върху една верига, в която се намира разработената програма. Програмата може да се влияе чрез натискане на бутони, получаване на сигнали от компонентите на творението (резистори, транзистори, сензори и т.н.) и т.н. Освен това сензорите могат да бъдат много различни по предназначение: осветление, ускорение, температура, разстояние, налягане, препятствия и т.н. Прости части могат да се използват като устройства за показване, от светодиоди и пищялки до сложни устройства, като графични дисплеи. Качеството се разглежда като двигатели, клапани, релета, серво, електромагнити и много други, които ще отнеме много, много време за изброяване. MK работи директно с някои от тези списъци, като използва свързващи проводници. Някои механизми изискват адаптери. Но след като започнете да проектирате, ще ви бъде трудно да се откъснете. Сега нека поговорим за програмирането на Arduino.

Научете повече за процеса на програмиране на дъската

Програма, която вече е готова за изпълнение на микроконтролер, се нарича фърмуер. Може да има или един проект, или проекти на Arduino, така че би било препоръчително да съхранявате всеки фърмуер в отделна папка, за да ускорите процеса на намиране необходими файлове. Той се зарежда върху кристала MK с помощта на специализирани устройства: програмисти. И тук Arduino има едно предимство - не се нуждае от програмист. Всичко е направено така, че програмирането на Arduino за начинаещи не е трудно. Написаният код може да бъде зареден в MK чрез USB кабел. Това предимство се постига не от някакъв предварително изграден програматор, а от специален фърмуер - буутлоудър. Буутлоудъра е специална програма, която стартира веднага след свързване и слуша дали има някакви команди, дали да флашне кристала, дали има Arduino проекти или не. Има няколко много привлекателни предимства при използването на буутлоудър:

  1. Използване само на един комуникационен канал, който не изисква допълнителни времеви разходи. Така че проектите на Arduino не изискват да свързвате много различни кабели и ще има объркване при използването им. Един USB кабел е достатъчен за успешна работа.
  2. Защита от криви ръце. Доста лесно е да доведете микроконтролера до тухлено състояние с помощта на директен фърмуер; не е нужно да работите усилено. Когато работите с буутлоудър, няма да имате достъп до потенциално опасни настройки (с помощта на програма за разработка, разбира се, в противен случай всичко може да бъде счупено). Следователно Arduino за начинаещи е предназначен не само от гледна точка на това, че е разбираем и удобен, но също така ще ви позволи да избегнете нежелани финансови разходи, свързани с неопитността на лицето, което работи с тях.

Проекти, за да започнете

Когато сте придобили комплект, поялник, колофон и спойка, не трябва веднага да извайвате много сложни структури. Разбира се, можете да ги направите, но шансът за успех в Arduino за начинаещи е доста нисък при сложни проекти. За да обучите и подобрите уменията си, можете да опитате да приложите няколко по-прости идеи, които ще ви помогнат да разберете взаимодействието и работата на Arduino. Като такива първи стъпки в работата с Arduino за начинаещи, можем да ви посъветваме да разгледате:

  1. Създайте такъв, който ще работи благодарение на Arduino.
  2. Свързване на отделен бутон към Arduino. В този случай можете да направите така, че бутонът да регулира светенето на светодиода от точка №1.
  3. Свързване на потенциометър.
  4. Управление на серво задвижване.
  5. Свързване и работа с трицветен светодиод.
  6. Свързване на пиезоелектричния елемент.
  7. Свързване на фоторезистор.
  8. Свързване на датчик за движение и сигнали за неговата работа.
  9. Свързване на сензор за влажност или температура.

Проекти за бъдещето

Малко вероятно е да се интересувате от Arduino, за да свържете отделни светодиоди. Най-вероятно сте привлечени от възможността да създадете своя собствена кола или летящ грамофон. Тези проекти са трудни за изпълнение и ще изискват много време и постоянство, но след като бъдат завършени, ще получите това, което искате: ценен опит в дизайна на Arduino за начинаещи.

Повечето инженери по електроника предпочитат да изграждат своите проекти на базата на микроконтролер, за който вече сме писали няколко пъти. В следващата статия ще разгледаме прости дизайни на електронни устройства за начинаещи и най-необичайните проекти, базирани на споменатия микроконтролер.

Първо, струва си да се запознаете с функционалността на микропроцесора Arduino Uno, върху който са изградени повечето проекти, както и да разгледате причините за избора на това устройство. По-долу са факторите, поради които един начинаещ изобретател трябва да избере Arduino uno:

  1. Доста лесен за използване интерфейс. Ясно е къде е контактът и къде да закачите свързващите проводници.
  2. Чипът на платката се свързва директно към USB порта. Предимството на тази настройка е, че серийната комуникация е много прост протокол, издържал изпитанието на времето, а USB прави свързването към модерни компютри много удобно.
  3. Лесно е да се намери централната част на микроконтролера, която е чипът ATmega328. Той има повече хардуерни функции като таймери, външни и вътрешни прекъсвания, PWM щифтове и множество режими на заспиване.
  4. Устройството е с отворен код, така че голям брой радиолюбители могат да коригират грешки и проблеми софтуер. Това улеснява отстраняването на грешки в проекти.
  5. Тактовата честота е 16 MHz, което е достатъчно бързо за повечето приложения и не ускорява микроконтролера.
  6. Много е удобно да контролирате мощността вътре в него и има вградена функция за регулиране на напрежението. Микроконтролерът може също да бъде изключен от USB порта без външен източник на захранване. Можете да свържете външен източник на захранване до 12 V. Освен това микропроцесорът сам ще определи необходимото напрежение.
  7. Наличие на 13 цифрови контакта и 6 аналогови контакта. Тези щифтове ви позволяват да свържете оборудване към платката Arduino uno от медии на трети страни. Щифтовете се използват като ключ за разширяване на изчислителната мощност на Arduino uno в реалния свят. Просто свържете вашите електронни устройства и сензори към конекторите, които съответстват на всеки от тези щифтове.
  8. Наличен е ICSP хедър за заобикаляне на USB порта и свързване директно с Arduino като серийно устройство. Този порт е необходим за нулиране на чипа, ако е повреден и вече не може да се използва на вашия компютър.
  9. Наличие на 32 KB флаш памет за съхранение на код на разработчици.
  10. Светодиодът на платката се свързва към цифров пин 13 за бързо отстраняване на грешки в кода и опростяване на процеса.
  11. И накрая, има бутон за нулиране на програмата на чипа.

Arduino е създаден през 2005 г. от двама италиански инженери, David Cuartilles и Massimo Banzi, с цел да позволят на учениците да се научат как да програмират микроконтролера Arduino uno и да подобрят своите електронни умения и да ги използват в реалния свят.

Arduino uno може да възприема заобикаляща среда, получава вход от различни сензори и е в състояние да влияе на околната среда и други изпълнителни механизми. Микроконтролерът се програмира с помощта на езика за програмиране Arduino (базиран на окабеляване) и средата за разработка Arduino (базиран на обработка).

Сега нека преминем директно към проекти на Arduino uno.

Най-лесният проект за начинаещи

Нека да разгледаме няколко прости и интересни проекта на Arduino uno, които дори и начинаещите в този бизнес могат да направят - алармена система.

Вече направихме урок по този проект -. Накратко какво се прави и как.

Този проект използва сензор за движение за откриване на движения и емисии с висок тон, както и визуален дисплей, състоящ се от мигащи LED светлини. Самият проект ще ви запознае с няколко добавки, които са включени в Arduino Beginner Kit, както и с нюансите на използването на NewPing.

Това е библиотека на Arduino, която ви помага да контролирате и тествате вашия сонарен сензор за разстояние. Въпреки че не е точно пълна защита на дома, той предлага идеално решение за защита на малки пространства като спални и бани.

За този проект вие ще са необходими:

  1. Ултразвуков пинг сензор – HC-SR04.
  2. Пиезо зумер.
  3. Светодиодна лента.
  4. Автомобилно осветление с RGB лента. В този урок за проект Arduino ще научите как да направите RGB вътрешно осветление на автомобил с помощта на платка Arduino uno.

Много автомобилни ентусиасти обичат да добавят допълнителни светлини или да надграждат вътрешните крушки към светодиоди, но с платформата Arduino можете да се насладите на повече контрол и детайлност чрез задвижване на мощни светодиоди и светлинни ленти.

Можете да промените цвета на осветлението, като използвате Android устройства(телефон или таблет) с помощта на приложението " Bluetooth RGB контролер“ (Dev Next Prototypes), който можете да изтеглите безплатно от Android PlayМагазин. Можете също да намерите електронна схема EasyEDA или да поръчате своя собствена базирана на Arduino схема на печатна платка.

Невероятни проекти на Arduino Uno

Повечето професионалисти в областта на разработването на електронни проекти на Arduino uno обичат да експериментират. В резултат на това се появяват интересни и изненадващи устройства, които са разгледани по-долу:

  1. Добавяне на IR дистанционно управление към вашата система от високоговорители. В потребителската електроника дистанционното управление дистанционное компонент електронно устройствокато телевизор, DVD плейър или друг домашен уред, използван за безжично управление на устройството от кратко разстояние. Дистанционното управление, на първо място, е удобно за хората и ви позволява да работите с устройства, които не са подходящи за директно управление на контролите.
  2. Аларма. Часовникът за реално време се използва за получаване на точно време. Тук тази система показва датата и часа на LCD дисплея и можем да настроим алармата с помощта на бутоните за управление. Веднага щом настъпи времето за алармата, системата издава звуков сигнал.
  3. Стъпков мотор. означава прецизен двигател, който може да се върти стъпка по стъпка. Такова устройство се прави с помощта на роботика, 3D принтери и CNC машини.

    За този проект вземете най-евтиния стъпков двигател, който можете да намерите. Двигателите са достъпни онлайн. Този проект използва крачкомер 28byj-48, който е подходящ за повечето други подобни проекти. Лесно се свързва към платката Arduino.
    - Ще ви трябват 6 кабела с женски към мъжки съединители. Просто трябва да свържете мотора към платката и това е! Можете също така да добавите малко парче лента към въртящата се глава, за да видите, че тя произвежда въртеливо движение.

  4. Ултразвуков сензор за разстояние. Този проект използва популярния , така че устройството да може да избягва препятствия и да се движи в различни посоки.

Когато приключите работата си, резултатът от вашите действия ще се появи на екрана. За да запазите нещата прости и ясни, препоръчително е да използвате LCD с I2C конвертор, така че имате нужда само от 4 кабела, за да се свържете към платката Arduino.

Мозъчен курсмлад борец за програмиране Ардуиноили откъде да започнете да се запознавате с тази платформа.

„Откъде да започна, Ваше Величество? - попита той. „Започнете отначало“, важно отговори кралят...“ (° С) Луис Карол Алиса в страната на чудесата

Стъпка 1: Да започнем от самото начало или как би било хубаво, ако Arduino беше безплатен

След като прочетох тонове учебници по Ардуино, след като измислихме куп полезни приложения за това нещо в ежедневието, от автоматизиране на храненето на риби в аквариум до робот сеялка за лична морава, разбираме, че без Ардуиноне можем да минем!

След като закупихме контролер, разбираме, че имаме една платка, но много идеи. Какво да правя? Умливни води до правилното решение.

Трябва да клонирате Arduino със собствените си ръце!

Стъпка 2: Събиране на всичко необходимо

За да ускорим процеса, ще използваме табло за развитие. Както е известно от техническите параметри на контролера ATmega 328 IC, за да го стартираме в минимална конфигурация, имаме нужда от:

− контролер Arduino Duemilanove(ще се използва като програмист);
− микросхема ATmega 328 IC ;
− 16 MHz кварцов резонатор;
− резистори 100 Ohm 3 бр.;
− кондензатори 22pF 2 бр.;
− Светодиоди 3 бр. с червен, зелен и жълт цвят на светене;
− стабилизатор на напрежение 5 V, например 7805;
− произволна 9 батерия с конектор за свързване;
− USB кабел;
− компютър или лаптоп с инсталиран софтуерен пакет Arduino IDE;
− макет и кабели.

Стъпка 3: Стартирайте оформлението



Поставяме чипа на контролера върху макетната платка.

Стъпка 4: Инсталирайте стабилизатора на напрежението и захранващите вериги

Инсталираме стабилизатора на напрежение L7805 на платката. Предназначението на щифтовете на микросхемата е 1 вход (7-20 волта), 2 корпуса, 3 изхода (5 волта). С помощта на монтажни проводници свързваме стабилизатора към източника на захранване и контролера, както е показано на снимките.

Стъпка 5: Свържете захранването към контролера

В съответствие с номерирането на щифтовете на контролера, ние го свързваме с монтажни проводници към изхода на стабилизатора на напрежението и общия проводник.

Съвет: Инсталационните проводници имат различни цветове на изолацията, опитайте се да използвате един и същ цвят проводници за всяка верига.

Стъпка 6: Свържете кварцовия резонатор



На платката поставяме резонатор и кондензатори на осцилаторната верига.

Процедурата по инсталиране е както следва:

− поставяме кондензатор 22pF между масата и 9-то краче на контролера;
− поставяме кондензатор 22pF между масата и 10-то краче на контролера;
− включваме резонатора между краката 9 и 10 на контролера;
− свързваме резистор 10 kOm между 1 крак на контролера и +5V (заобикаляме сигнала „Нулиране“).

Стъпка 7: Добавяне на индикатори за състояние на контролера

Ние свързваме светодиодите последователно с резистори 100 Ohm, между земята и нашия програматор.

Стъпка 7: Свържете макетната платка към програмната платка


Свързване на сглобения макет към платката Arduino Duemilanoveпо следния начин:

− свържете изхода на жълтия светодиод към 9 изход на конектора на програмиста, неговата пулсация ще ни покаже, че програмистът работи;
− свържете червения светодиоден изход към 8 изход на конектора на програматора, той сигнализира за възможни грешки;
− свържете изхода на зеления светодиод към 7 щифт на конектора на програмиста, неговият блясък показва обмен на данни между програмиста и микроконтролера.

Свързваме нашите дъски една към друга с останалите проводници, както е показано на фигурата, като не забравяме да свържете захранващите проводници + 5 VИ кадърмежду тях.

Стъпка 8: Преобразуване на платката Arduino Duemilanove в програматор

За да се зареди в микроконтролера ATmega 328интегрална схема bootloader трябва да се превърне в наш Arduino Duemilanoveв програмиста. Свързваме нашия монтаж към компютъра с помощта на USBкабел. Отворете средата за програмиране AndurinoIDE, изберете скицата (програмата) в нея AndurinoISPи го качете в Arduino Duemilanove. С мигането на жълтия светодиод се убеждаваме, че скицата е заредена в нашия програматор.

Стъпка 9: Заредете буутлоудъра

В AndurinoISP (елемент от менюто « Tools") изберете типа контролер, от който се нуждаем ( ATmega 328 IC). Даваме командата за зареждане на буутлоудъра „Записване на буутлоудъра“. Ние наблюдаваме съобщенията на AndurinoIDE, след като буутлоудърът приключи зареждането " Готово. Записването на буутлоудъра"нашият микроконтролер е готов да запише скица на проекта на нашия нов домашни продукти.

Стъпка 10: Възможни проблеми и решения






Възможните грешки при записване на буутлоудър и как да ги отстраните са показани в екранните снимки на програмата за отстраняване на грешки по-горе.

Тази статия не претендира да бъде пълно описание на програмирането. "от нулата"микроконтролер, но показва как, използвайки минимален набор от елементи, можете да започнете да правите „свой собствен“ Андурино.


Връх