«ан€тие є4 ÷икл ForЕ - ѕроект Arduino в лицее є17 г. —еверодвинска


»сточник: parshev.wordpress.com



¬ котором мы рассмотрим применение алгоритмической конструкции цикл ЂForї и поработаем с ChipKit Basic I/O Shield.

Ќам понадоб€тс€:

  • ChipKit Uno32
  • ChipKit Basic I/O Shield.

ћожно работать и без ChipKit Basic I/O Shield, собрав на монтажной плате примерно такую схему:

ѕримерна€ схема дл€ Arduino

” нас же есть ChipKit Basic I/O Shield, на котором уже есть замечательный р€д из 8 диодов, Ђсид€щихї на 26-33 пине.

Ќаша задача:

реализовать различные движени€ огоньков диодов с помощью цикла.

«ачем вообще цикл, если мы уже делали огонЄк без вс€ких циклов? (если не считать, что у нас вообще всЄ находитс€ в  цикле loop()

Ќу, давайте начнЄм писать программу, как обычно с инициализации портов:
void setup () {
pinMode (26, OUTPUT);
pinMode (27, OUTPUT);
pinMode (28, OUTPUT);
pinMode (29, OUTPUT);
pinMode (30, OUTPUT);
pinMode (31, OUTPUT);
pinMode (32, OUTPUT);
pinMode (33, OUTPUT);
}

”жас!  уча одинаковых команд. ѕочти одинаковых.
  счастью, мы можем написать команду pinMode один раз и заставить еЄ повтор€тьс€ многократно дл€ различных значений некоторой переменной величины.
ќбозначим эту переменную буквой i.
“у же процедуру перепишем, использу€ цикл:
void setup () {
for (int i=26; i<=33; i++) {
pinMode (i, OUTPUT);
}
}

ѕо русски это можно прочитать так: к целочисленной переменной i, котора€ вначале равна 26 прибавл€ть 1 (i++), пока еЄ значение меньше либо равно 33. ѕри каждом значении переменной i будут выполн€тьс€ операции, записанные в фигурных скобках (тело цикла).
“аким образом обе написанные процедуры выполн€ют одни и те же команды, но втора€ более компактна и профессиональна.
ƒа, кстати, если ¬ы работаете без ChipKit Basic I/O Shield, то заголовок цикла будет таким: for (int i=6; i<=13; i++)

»дЄм далее. –еализуем простой огонЄк, бегущий от диода на 26 пине, до диода на 33. Ѕудем называть диоды по номеру их пина: 26, 27, 28 диодЕ
void loop() {
for (int i=26; i<=33; i++) {
digitalWrite(i,HIGH);
delay(50);
digitalWrite(i,LOW);
}
}

ѕрограмма целиком:
void setup () {
for (int i=26; i<=33; i++) {
pinMode (i, OUTPUT);
}
}
void loop() {
for (int i=26; i<=33; i++) {
digitalWrite(i,HIGH);
delay(50);
digitalWrite(i,LOW);
}
}

ѕрошиваем, получаетс€ так: видео или так без ChipKit Basic I/O Sheld видео

“еперь пусть у нас последовательно зажгутс€ все диоды, а потом последовательно погаснут (видео):

void setup () {
for (int i=26; i<=33; i++) {
pinMode (i, OUTPUT);
}
}
void loop() {

//ѕоследовательно включаем диоды

for (int i=26; i<=33; i++) {
digitalWrite(i,HIGH);
delay(50);
}

// » последовательно их выключаем

for (int i=26; i<=33; i++) {
digitalWrite(i,LOW);
delay(50);
}

}

ј может, пусть огонЄк бегает туда-сюда (видео)?

void setup () {
for (int i=26; i<=33; i++) {
pinMode (i, OUTPUT);
}
}
void loop() {

//¬ одну сторону

for (int i=26; i<=33; i++) {
digitalWrite(i,HIGH);
delay(50);
digitalWrite(i,LOW);

}

// » в другую (изменЄн заголовок цикла):

for (int i=33; i>=26; i--) {
digitalWrite(i,HIGH);
delay(50);
digitalWrite(i,LOW);
}

}

ћожно придумать и другие способы движени€ огонька. Ќапример так:

»ли так дл€ варианта без ChipKit Basic I/O Shield, дл€ 5 диодов на 8-12 пинах (здесь используетс€ вложенный цикл, т.е. цикл, выполн€емый циклом).

void setup () {
for (int i=8; i<=12; i++) {
pinMode (i, OUTPUT);
}
}
void loop() {
for (int i=12; i>=8; i--) {
for (int k=8; k<=i; k++){
digitalWrite(k,HIGH);
delay(100);
digitalWrite(k,LOW);
}
digitalWrite(i,HIGH);
}
}

ј вот так этот выгл€дит если использовать обычную монтажную плату: видео

«адание.

ѕопробуйте с помощью цикла for построить различные схемы движени€ огонька.

Ќа этом пока всЄ.

 ќЌ≈÷ «јЌя“»я.

”дачных экспериментов!


Ќа нашем сайте доступна подборка инструкций и учебных пособий по ардуино. ќзнакомитьс€ и скачать можно в этом разделе: —качать инструкции - книги по ардуино.

 лючевые слова:
диод
резистор
курс микроэлектроники
arduino
микросхема
скетч
плата јрдуино ”но
ћикроконтроллер
ѕлатформа Arduino
pinMode
OUTPUT
digitalWrite
ChipKit
Shield
јрдуино
цикл
программа
диоды
схема
последовательно
движени€
видео
–оботы на платформе јрдуино
робот
робототехника


¬ернутьс€ в рубрику:

ѕроекты на платформе јрдуино

¬озможно ¬ас заинтересует:

ѕроект Arduino в лицее є17 г. —еверодвинска
ѕроект Arduino в лицее є17 г. —еверодвинска



≈сли вы хотите видеть на нашем сайте больше статей то кликните ѕоделитьс€ в социальных сет€х! —пасибо!
—мотрите также:

ќбратите внимание полезна€ информаци€.