Агуулгын хүснэгт:

RGB LED ашиглан өнгө илрүүлэх: 4 алхам
RGB LED ашиглан өнгө илрүүлэх: 4 алхам

Видео: RGB LED ашиглан өнгө илрүүлэх: 4 алхам

Видео: RGB LED ашиглан өнгө илрүүлэх: 4 алхам
Видео: 50 необычных, но невероятных автомобилей с 2002 по 2022 год 2024, Долдугаар сарын
Anonim
RGB LED ашиглан өнгө илрүүлэх
RGB LED ашиглан өнгө илрүүлэх

Та объектын өнгийг илрүүлэх автомат аргыг хүсч байсан уу? Тухайн объект дээр тодорхой өнгийн гэрэл тусгаж, хичнээн их гэрэл тусаж байгааг харснаар тухайн объект ямар өнгөтэй болохыг мэдэх боломжтой болно. Жишээлбэл, хэрэв та улаан объект дээр улаан гэрэл тусгавал тэр гэрэл тусах болно. Хэрэв та улаан объект дээр цэнхэр гэрэл асаах юм бол тэр гэрэл нь түүний зарим хэсгийг шингээж, бага хэсгийг нь буцааж тусгах болно.

Алхам 1: Шаардлагатай эд анги

Шаардлагатай эд ангиуд
Шаардлагатай эд ангиуд

Би PIC 16F887 микроконтроллер ашигласан боловч импульсийн өргөний модуляц хийх чадвартай бараг бүх төхөөрөмж ажиллах болно. 1 RGB LED1 Микроконтроллер1 Стандарт улаан LED1k ом эсэргүүцэл 1 Фоторезистор (гэрэлтсэн гэрлийн хэмжээнээс хамаарч эсэргүүцлийг өөрчилдөг) Зарим утас Би зөвхөн микроконтроллер болон RGB LED -ийг өргөн өнгөт мэдрэгчтэй байлгах хэрэгтэй, гэхдээ хэрэв та зөвхөн хэлхээтэй байхыг хүсвэл нэг өнгийг илрүүлдэг, танд микроконтроллер хэрэггүй - танд зөвхөн тодруулахыг хүссэн өнгөний тод LED хэрэгтэй. Стандарт улаан LED нь "заагч LED" бөгөөд зөв өнгө илэрсэн үед асдаг.

Алхам 2: Хэлхээг бий болгох

Цахилгаан хэлхээг бий болгох
Цахилгаан хэлхээг бий болгох
Цахилгаан хэлхээг бий болгох
Цахилгаан хэлхээг бий болгох

Схем нь маш энгийн бөгөөд ерөнхий хэлбэрээр доор харуулав. RGB LED нь ХОУХ -ны дохиогоор тэжээгддэг бөгөөд би фоторезисторын эргэн тойронд цахилгаан соронзон хальсыг байрлуулдаг тул орчны гэрэл орохгүй болно.

Алхам 3: Код

Энэ кодыг Microchip PIC 16F887 -д зориулж бичсэн боловч ерөнхий ойлголтыг олж чадна гэж найдаж байна. Би хөгжлийн самбар дээрх суурилуулсан потенциометрийг ашиглан RGB LED-ийн өнгөний спектрийг өөрчилсөн (мөн энэ нь бүхэл бүтэн спектрийг дамжуулдаггүй, учир нь надад 3 ХОУХШ-ийн модуль байхгүй, гэхдээ хангалттай сайн) Сэтгэгдлүүдийг оруулсан болно. #include #include "delay.c" #include #include #use delay (clock = 4000000) #FUSES INTRC, NOWDT, NOPUT, NOMCLR, NOPROTECT, NOCPD, NOBROWNOUT, NOIESO, NOFCMEN, NOLVP #byt CCP1 byte CCP1 байт CCP2CON = 0x1D#байт PWM1CON = 0x9Bint утга = 128; int p1 = 0; int p2 = 0; void my_setup_ccp1 (int8 утга) {output_low (PIN_C2); CCP1CON = утга; PWM1CON = 0;} my_setup_ccp2 -ийг хүчингүй болгох (int_setup_ccp2) {output_low (PIN_C1); CCP2CON = утга;} // ================================ void main () {// A4 = photodiodeoutput_high (PIN_A4); output_high (PIN_B1); setup_adc (ADC_CLOCK_INTERNAL); set_adc_channel (0); setup_adc_ports (sAN0); // Timer/Interrupt setupenable_interrups (IN_TMTM) my_setup_ccp2 (CCP_PWM); setup_timer_2 (T2_DIV_BY_1, 128, 1); // setup_compare (2, COMPARE_PWM | COMPARE_TIMER2); while (1) {// PIC -ийг унтахаас сэргийлнэ. // Пин A3 бол фотодиодын холболт бөгөөд хэрэв (оролт (PIN_A3) == 1) гаралт_ өндөр (PIN_A4); else output_low (PIN_A4); // LED утгын өнгийг өөрчлөхийн тулд потенциометрийн утгыг уншина уу = read_adc (); switch (утга) {тохиолдол 0: p1 = утга; output_low (PIN_C0); p2 = утга; завсарлага; тохиолдол 50: p1 = утга; гаралтын_ өндөр (PIN_C0); p2 = утга; завсарлага; тохиолдол 100: p1 = утга; гаралтын_ өндөр (PIN_C0); p2 = утга; завсарлага; тохиолдол 150: гаралтын_ өндөр (PIN_C0); p1 = 50; p2 = утга; завсарлага; тохиолдол 200: output_low (PIN_C0); p1 = 0; p2 = утга; завсарлага; тохиолдол 250: p1 = 0; p2 = утга; output_low (PIN_C0); завсарлага; } p1 = утга; p2 = 128 - p1; set_pwm1_duty (p1); set_pwm2_duty (p2);}}

Алхам 4: Өргөдөл

Өргөдөл!
Өргөдөл!

Ийм энгийн өнгө илрүүлэгчийг робот техникт ашиглах, эсвэл легог өнгөөр нь ялгах, M&M -ийг ангилах, өнгөний харалган байдлыг арилгах зэрэг гайхалтай төслүүдэд ашиглаж болно. Энэхүү заавар нь таны бодож байсан төслийг сайжруулахад тусалсан гэж найдаж байна!:) LED нь маш олон зүйлд сайн байдаг.

Зөвлөмж болгож буй: