Ваш браузер устарел. Рекомендуем обновить его до последней версии.




 



 


Delphi

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Управление светодиодами

Возьмем простейший случай – управление работой одного светодиода. Последовательно со светодиодом необходимо подключить резистор 220 Ом для понижения напряжения. Обязательно нужно учесть полярность подключения. На фото анод светодиода подключен на 12-ый пин и катод на землю GND. Ниже приведенный скетч заставляет вспыхивать светодиод. За длинной вспышкой идут пять коротких.

 

 

 

//            ___Светодиод___

void setup()  // начальные установки
{
pinMode(12, OUTPUT);  // инициализация 12-го цифрового пина
}                                                       // для вывода

void loop()  // рабочий цикл
{
digitalWrite(12, HIGH);  // подать сигнал на 12-ый пин
delay(2000);  // задержка 2 сек
digitalWrite(12, LOW);  // убрать сигнал с 12-го пина
delay(2000);  // задержка 2 сек

digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
delay(200);

digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
delay(200);

digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
delay(200);

digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
delay(200);

digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
delay(2000);

}

 

Оптимизируем программный код за счет применения циклической конструкции for. Теперь скетч будет более компактным.

 

//            ___Светодиод___
//            применен цикл for

void setup()
{
pinMode(12, OUTPUT);
}

void loop()
{
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12, LOW);
delay(1000);

for(int i=1; i<10; i++)  //  цикл for 
    {          //  начало
         digitalWrite(12, HIGH);
         delay(200);
         digitalWrite(12, LOW);
         delay(200);
     }          //  конец цикла

digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
delay(1000);
}

 

Соберем установку, например, из 5-и светодиодов. Классическое подключение нескольких светодиодов предусматривает отдельный резистор для каждого из них. Я решил поставить один общий резистор. Схема заработала правильно. Но недостатком стало слабое понижение яркости свечения светодиодов с включением каждого последующего светодиода. Поэтому советую все таки каждый светодиод подключать через отдельный резистор. В установке задействованы 4, 6, 8, 10 и 12-й пины.  Ниже привожу два возможных скетча.

 

//        ___Бегущий огонек___

void setup()

{
pinMode(12, OUTPUT);
pinMode(10, OUTPUT);
pinMode(8, OUTPUT);
pinMode(6, OUTPUT);
pinMode(4, OUTPUT);
}

void loop()

{
digitalWrite(12, HIGH);
delay(200);
digitalWrite(12, LOW);

digitalWrite(10, HIGH);
delay(200);
digitalWrite(10, LOW);

digitalWrite(8, HIGH);
delay(200);
digitalWrite(8, LOW);

digitalWrite(6, HIGH);
delay(200);
digitalWrite(6, LOW);

digitalWrite(4, HIGH);
delay(500);
digitalWrite(4, LOW);
}

 

//         ___Приливная волна___
void setup()
{
pinMode(12, OUTPUT);
pinMode(10, OUTPUT);
pinMode(8, OUTPUT);
pinMode(6, OUTPUT);
pinMode(4, OUTPUT);
}

void loop()
{
digitalWrite(12, HIGH);
delay(200);

digitalWrite(10, HIGH);
delay(200);

digitalWrite(8, HIGH);
delay(200);

digitalWrite(6, HIGH);
delay(200);

digitalWrite(4, HIGH);
delay(400);

digitalWrite(4, LOW);
delay(200);
digitalWrite(6, LOW);
delay(200);
digitalWrite(8, LOW);
delay(200);
digitalWrite(10, LOW);
delay(200);
digitalWrite(12, LOW);

delay(1000);
}

Flag Counter
Яндекс.Метрика
200stran.ru: показано число посетителей за сегодня, онлайн, из каждой страны и за всё время
Besucherzahler russain brides
счетчик посещений

Выбери лучшее!

allbest