Мазмуну:

RaspberryPi: Светодиоддун кирип -чыгышы өчөт: 4 кадам (сүрөттөр менен)
RaspberryPi: Светодиоддун кирип -чыгышы өчөт: 4 кадам (сүрөттөр менен)

Video: RaspberryPi: Светодиоддун кирип -чыгышы өчөт: 4 кадам (сүрөттөр менен)

Video: RaspberryPi: Светодиоддун кирип -чыгышы өчөт: 4 кадам (сүрөттөр менен)
Video: Raspberry Pi 4: GPIO, Подключение кнопки и светодиодов с помощью транзисторного ключа 2024, Ноябрь
Anonim
RaspberryPi: Светодиоддун кирип -чыгышы
RaspberryPi: Светодиоддун кирип -чыгышы

Төмөнкү кадамдар LEDлардын кантип иштээрин көрсөтүү үчүн эксперименттер. Алар LEDди бирдей ылдамдыкта кантип өчүрүү керектигин жана аны кантип өчүрүү жана өчүрүү керек экенин көрсөтүшөт.

Сага керек болот:

  • RaspberryPi (Мен эски Пи колдонгом, менин Пи-3 колдонулат, бирок каалаган Пи иштейт.)
  • Breadboard
  • 5 мм кызыл LED
  • 330 ist Резистор (Критикалык эмес 220-560 work иштейт.)
  • Hookup Wire

Мен Адафруттан колдонгон Pi-өтүкчүнүн кереги жок, бирок бул нан бышырууну жеңилдетет.

WiringPi - бул RaspberryPi программасын C. үчүн жүктөө, орнотуу жана колдонуу боюнча инструкциялар үчүн китепканалардын жыйындысы

WiringPi орнотуу үчүн бул беттеги көрсөтмөлөрдү аткарыңыз:

Кабелдин тизмесин алуу үчүнPi пин номерлери буйрук сабында gpio readallга кирет.

Raspian wiringPi жаңы версияларында демейки боюнча орнотулган.

1 -кадам: Pulse Width Modulation

Импульстун туурасы модуляциясы
Импульстун туурасы модуляциясы
Импульстун туурасы модуляциясы
Импульстун туурасы модуляциясы
Импульстун туурасы модуляциясы
Импульстун туурасы модуляциясы

Жарык диоддору жарыктыгына карабай дайыма бирдей чыңалууда иштейт. Жарыктык квадрат толкундуу осциллятор менен аныкталат жана чыңалуу жогорку убакытта жарыктыгын аныктайт. Бул Pulse Width Modulation (PWM) деп аталат. Бул wiringPi pwmWrite (pin, n) функциясы тарабынан көзөмөлдөнөт, мында n 0ден 255ке чейин мааниге ээ. N = 2 болсо, анда LED n = 1ден эки эсе жарык болот. Жарыктык дайыма эки эсе көбөйөт. Ошентип, n = 255 n = 128ден эки эсе жарык болот.

N мааниси көбүнчө милдет цикли деп аталган пайыз менен көрсөтүлөт. Сүрөттөр 25, 50 жана 75% циклдердин осциллографтын издерин көрсөтөт.

2 -кадам: LED жана резистор

LED жана резистор
LED жана резистор

Бул кереги жок, бирок булардын бир нечесине ээ болуу нан бышырууну бир топ жеңилдетет.

LEDдин кыска жетегине резисторду кошуңуз. 220-560 Ом каршылыгын колдонуңуз.

3-кадам: Бирдей эмес караңгылатуу

Жада калса караңгылатуу
Жада калса караңгылатуу

Диаграммадагыдай схеманы куруңуз. Бул диоддун жарыгын өчүрүү схемасына окшош. Бул wiringPi pin 1ди колдонот, анткени сиз PWM иштетилген пин колдонушуңуз керек. Программаны түзүп, иштетиңиз. Сиз LED канчалык жарык болсо, ошончолук жайыраак экенин байкайсыз. Эң караңгылыкка жакындап калганда, ал абдан бат өчөт.

/******************************************************************

* Compile: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Execute: sudo./fade1 * * Башка пин номерлери башкача каралбаса, wiringPi номерлери. ************************************************ ****************/ #include int main () {wiringPiSetup (); // Орнотуу wiringPi pinMode (1, PWM_OUTPUT) тарабынан талап кылынат; // pwmSetMode (PWM_MODE_MS); // Белги/боштук режими int i; while (1) {for (i = 255; i> -1; i--) {pwmWrite (1, i); кечигүү (10); } үчүн (i = 0; i <256; i ++) {pwmWrite (1, i); кечигүү (10); }}}

Кийинки кадам, LEDди туруктуу ылдамдыкта кантип өчүрүү керектигин жана биринде билдирүү үчүн көрсөтөт.

4 -кадам: 4 -кадам: Өйдө жана ылдый бир үчүн () жана бирдей ченде

Светодиоддун туруктуу ылдамдыкта күңүрттөшү үчүн кечигүү () экспоненциалдык ылдамдыкта көбөйүшү керек, анткени жарым цикл айкындуулуктун жарымын дайыма чыгарат.

Сызык:

int d = (16-i/16)^2;

кечигүүнүн узундугун аныктоо үчүн жарыктыктын тескери квадратын эсептейт. Бул программаны түзүңүз жана иштетиңиз, ошондо сиз LED туруктуу ылдамдыкта өчүп -өчүп турганын көрөсүз.

/******************************************************************

* Compile: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Execute: sudo./fade2 * * Башка пин номерлери башкача каралбаса, wiringPi номерлери. ************************************************ ****************/ #include int main () {wiringPiSetup (); // Орнотуу wiringPi pinMode (1, PWM_OUTPUT) тарабынан талап кылынат; // pwmSetMode (PWM_MODE_MS); // Белги/боштук режими, ал эми (1) {int i; int x = 1; for (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // pwmWrite индексинин тескери квадратын эсептөө (1, i); кечигүү (d); if (i == 255) x = -1; // чокусунда багытын которуу}}}

Сунушталууда: