Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Ninanais mo na ba ang isang awtomatikong paraan upang makita ang kulay ng isang bagay? Sa pamamagitan ng nagniningning na ilaw ng isang tiyak na kulay sa bagay at pagtingin sa kung gaanong ilaw ang makikita, maaari mong sabihin kung ano ang kulay ng bagay. Halimbawa, kung pinapakita mo ang isang pulang ilaw sa isang pulang bagay, ang ilaw na iyon ay makikita sa likod. Kung sinasalamin mo ang isang asul na ilaw sa isang pulang bagay, ang object ay sumipsip ng ilan sa ilaw na iyon at mas kaunti sa mga ito ay makikita sa likod.
Hakbang 1: Kailangan ng Mga Bahagi
Gumamit ako ng isang PIC 16F887 Microcontroller, ngunit halos anumang may isang pulse-width-modulation na kakayahan ay gagana. 1 RGB LED1 Microcontroller1 Karaniwang pulang LED1 1k ohm risistor1 Photoresistor (binabago ang paglaban depende sa dami ng ilaw na lumiwanag dito) Ang ilang mga wire Kailangan ko lang ng microcontroller at RGB LED na magkaroon ng isang malawak na hanay ng mga detektor ng kulay, ngunit kung nais mo lamang ng isang circuit na nakakita ng isang kulay, hindi mo kailangan ng isang microcontroller - kailangan mo lamang ng isang maliwanag na LED ng kulay na nais mong tuklasin. Ang karaniwang pulang LED ay ang "tagapagpahiwatig LED" - nag-iilaw ito kapag nakita ang tamang kulay.
Hakbang 2: Buuin ang Circuit
Ang eskematiko ay medyo simple, at sa pangkalahatang anyo, ay ipinapakita sa ibaba. Ang RGB LED ay panlabas na pinapatakbo ng isang signal ng PWM. Inilagay ko ang electrical tape sa paligid ng photoresistor upang ang ilaw ng paligid ay hindi nakapasok - ang ilaw lamang na direkta sa itaas ay makikita.
Hakbang 3: Ang Code
Ang code na ito ay isinulat para sa isang Microchip PIC 16F887, ngunit sana makuha mo ang pangkalahatang ideya. Ginamit ko ang built-in na potensyomiter sa aking board ng pag-unlad upang ibahin ang kulay ng spectrum ng RGB LED (at hindi ito dumaan sa buong spectrum dahil wala akong 3 module na PWM, ngunit sapat na mabuti) Kasamang mga komento. #include #include #include "delay.c" #include #include #use delay (orasan = 4000000) #FUSES INTRC, NOWDT, NOPUT, NOMCLR, NOPROTECT, NOCPD, NOBROWNOUT, NOIESO, NOFCMEN, NOLVP # byte CCP1CON = 0x17 # byte CCP2CON = 0x1D # byte PWM1CON = 0x9Bint value = 128; int p1 = 0; int p2 = 0; void my_setup_ccp1 (int8 value) {output_low (PIN_C2); CCP1CON = value; PWM1CON = 0;} void my_setup_ccp2 {output_low (PIN_C1); CCP2CON = halaga;} // =_ void main () {// A4 = pinagmulan ng kuryente para sa photodiodeoutput_high (PIN_A4); output_high (PIN_B1); setup_adc (ADC_CLOCK_INTERNAL); set_adc_channel (0); setup_adc_ports (sAN0); // Timer / Interrupt setupenable_interrupts (INT_MIM); my_setup_ccp2 (CCP_PWM); setup_timer_2 (T2_DIV_BY_1, 128, 1); // setup_compare (2, COMPARE_PWM | COMPARE_TIMER2); habang (1) {// Pigilan ang pagtulog sa PIC. //SET PWM DUTY CYCLE output_high; // Pin A3 ang koneksyon sa photodiode kung (input (PIN_A3) == 1) output_high (PIN_A4); iba pa output_low (PIN_A4); // Basahin ang halaga ng potensyomiter upang baguhin ang kulay ng LED halaga = read_adc (); lumipat (halaga) {kaso 0: p1 = halaga; output_low (PIN_C0); p2 = halaga; pahinga; kaso 50: p1 = halaga; output_high (PIN_C0); p2 = halaga; pahinga; kaso 100: p1 = halaga; output_high (PIN_C0); p2 = halaga; pahinga; case 150: output_high (PIN_C0); p1 = 50; p2 = halaga; pahinga; case 200: output_low (PIN_C0); p1 = 0; p2 = halaga; pahinga; kaso 250: p1 = 0; p2 = halaga; output_low (PIN_C0); pahinga; } p1 = halaga; p2 = 128 - p1; set_pwm1_duty (p1); set_pwm2_duty (p2);}}
Hakbang 4: Mga Aplikasyon
Ang isang simpleng detektor ng kulay na tulad nito ay maaaring magamit sa robotics, o para sa mga cool na proyekto tulad ng paghihiwalay ng mga lego ayon sa kulay, pag-uuri ng M & Ms, o bilang tulong para sa pagkabulag ng kulay. Inaasahan kong ang itinuturo na ito ay kapaki-pakinabang sa pagpapahusay ng isang proyekto na nasa isip mo!:) Ang mga LED ay mabuti para sa maraming mga bagay ….