Эксперимент Маячок


Прочтите перед выполнением



бет13/45
Дата13.02.2023
өлшемі1,82 Mb.
#67503
түріЗакон
1   ...   9   10   11   12   13   14   15   16   ...   45
Прочтите перед выполнением

  • Биполярный транзистор

  • Светодиодные сборки

Список деталей для эксперимента

  • 1 плата Arduino Uno

  • 1 беспаечная макетная плата

  • биполярный транзистор

  • 1 светодиодная шкала

  • резистор номиналом 1 кОм

  • 10 резисторов номиналом 220 Ом

  • 13 проводов «папа-папа»

Принципиальная схема

Схема на макетке

Обратите внимание

  • Светодиодная шкала — это несколько светодиодов в одном корпусе. Нам нужно чтобы питание шло к их анодам, а катоды направлялись к земле. Скорее всего на вашей шкале аноды находятся со стороны маркировки. Если шкала не светится, когда должна, попробуйте перевернуть ее.

  • База биполярного транзистора — это его средняя ножка. Если повернуть транзистор плоской стороной к себе, ножками вниз, то левая ножка это коллектор, а правая — эмиттер.

  • Если эту схему собрать без резистора между базой транзистора и портом Arduino, мы практически устроим короткое замыкание порта на землю. Рано или поздно это выведет из строя транзистор или ножку микроконтроллера.

  • Зачем здесь вообще транзистор? Без него такое количество светодиодов будет потреблять больше тока, чем 40 мА, которые может себе позволить цифровой пин платы. Поэтому мы берем питание из порта 5V, рассчитанного на ток до 500 мА, а на цифровой порт ставим транзистор, чтобы с помощью малого тока управлять большим.

  • В данном случае мы включили 10 светодиодов параллельно, каждый через отдельный резистор. Включать их через один резистор неправильно: даже светодиоды из одной партии имеют минимальный разброс вольт-амперных характеристик, вследствие чего они:

    • Светились бы с различной яркостью

    • Из-за минимальной разницы во времени включения, больший ток, прошедший через первый включившийся светодиод, мог бы вывести его из строя. И так по цепочке.

Скетч
p060_pulse_bar.ino
#define CONTROL_PIN 9
// переменные верхнего уровня, т.е. объявленные вне функций,
// называют глобальными. Их значения сохраняются всё время,
// пока работает микроконтроллер
int brightness = 0;
void setup()
{
pinMode(CONTROL_PIN, OUTPUT);
}
void loop()
{
// увеличиваем значение яркости на единицу, чтобы нарастить
// яркость. Однако яркость не должна быть более 255, поэтому
// используем операцию остатка от деления, чтобы при
// достижении значения 255, следующим значением снова стал 0
// Y % X — это остаток от деления Y на X;
// плюс, минус, делить, умножить, скобки — как в алгебре.
brightness = (brightness + 1) % 256;
// подаём вычисленный ШИМ-сигнал яркости на пин с базой
// управляющего транзистора
analogWrite(CONTROL_PIN, brightness);
// ждём 10 мс перед следующим наращиванием яркости. Таким
// образом, полный накал будет происходить в течение
// 256×10 = 2560 мс
delay(10);
}


Достарыңызбен бөлісу:
1   ...   9   10   11   12   13   14   15   16   ...   45




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет