Tartalomjegyzék:
- 1. lépés: Szükséges alkatrészek
- 2. lépés: Építse fel az áramkört
- 3. lépés: A kód
- 4. lépés: Alkalmazások
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:44
Szerettél volna valaha automatizált módon felismerni egy tárgy színét? Ha egy adott színű fényt rávilágít a tárgyra, és megnézi, mennyi fény tükröződik vissza, akkor meg tudja határozni, hogy milyen színű az objektum. Például, ha vörös fényt világít egy vörös tárgyra, akkor ez a fény visszaverődik. Ha kék fényt világít egy vörös tárgyra, a tárgy elnyeli a fény egy részét, és kevesebbet visszavert.
1. lépés: Szükséges alkatrészek
PIC 16F887 mikrokontrollert használtam, de szinte minden, amely impulzusszélesség-modulációs képességgel rendelkezik, működni fog. 1 RGB LED1 mikrokontroller1 normál piros LED1 1k ohmos ellenállás1 fotorezisztor (az ellenállást a rávilágított fény mennyiségétől függően változtatja meg) Egyes vezetékek egy színt észlel, nincs szüksége mikrokontrollerre - csak az érzékelni kívánt színű fényes LED -re van szüksége. A szabványos piros LED az "indikátor LED" - akkor világít, ha a megfelelő színt észleli.
2. lépés: Építse fel az áramkört
A vázlat meglehetősen egyszerű, és általános formában az alábbiakban látható. Az RGB LED külső tápellátását PWM jel táplálja. Elektromos szalagot helyezek a fotorezisztor köré, hogy a környezeti fény ne kerüljön be - csak a közvetlenül felette lévő fényt fogja észlelni.
3. lépés: A kód
Ezt a kódot egy Microchip PIC 16F887 -hez írták, de remélhetőleg megkapja az általános ötletet. A beépített potenciométert használtam a fejlesztőlapomon az RGB LED színspektrumának variálására (és nem megy át a teljes spektrumon, mert nincs 3 PWM modulom, de elég jó). #include #include #include "delay.c" #include #include #use delay (clock = 4000000) #FUSES INTRC, NOWDT, NOPUT, NOMCLR, NOPROTECT, NOCPD, NOBROWNOUT, NOIESO, NOFCMEN, NOLVP #byte CCP1CON = 0x17 bájt CCP2CON = 0x1D#bájt PWM1CON = 0x9Bint érték = 128; int p1 = 0; int p2 = 0; void my_setup_ccp1 (int8 érték) {output_low (PIN_C2); CCP1CON = érték; PWM1CON = 0;} void my_setup_ccp) {output_low (PIN_C1); CCP2CON = érték;} // =================================== void main () {// A4 = tápforrás fotodióda -kimenet_magas (PIN_A4); output_high (PIN_B1); setup_adc (ADC_CLOCK_INTERNAL); set_adc_channel (0); setup_adc_ports (sAN0); // Időzítő/megszakítás setupenable_interrupts_PP my_setup_ccp2 (CCP_PWM); setup_timer_2 (T2_DIV_BY_1, 128, 1); // setup_compare (2, COMPARE_PWM | COMPARE_TIMER2); while (1) {// Megakadályozza, hogy a PIC elaludjon.//SET PWM DUTY CYCLE output_5; // Az A3 érintkező a fotodióda kapcsolat, ha (bemenet (PIN_A3) == 1) output_high (PIN_A4); else output_low (PIN_A4); // Olvassa el a potenciométer értékét a LED színének megváltoztatásához = read_adc (); kapcsoló (érték) {eset 0: p1 = érték; output_low (PIN_C0); p2 = érték; szünet; 50. eset: p1 = érték; output_high (PIN_C0); p2 = érték; szünet; 100. eset: p1 = érték; output_high (PIN_C0); p2 = érték; szünet; 150. eset: output_high (PIN_C0); p1 = 50; p2 = érték; szünet; 200. eset: output_low (PIN_C0); p1 = 0; p2 = érték; szünet; 250. eset: p1 = 0; p2 = érték; output_low (PIN_C0); szünet; } p1 = érték; p2 = 128 - p1; set_pwm1_duty (p1); set_pwm2_duty (p2);}}
4. lépés: Alkalmazások
Egy ilyen egyszerű színérzékelő használható a robotikában, vagy olyan hűvös projektekben, mint a legók szín szerinti elkülönítése, az M & M -ek válogatása, vagy a színvakság segítőjeként. Remélhetőleg ez az oktatóanyag hasznos volt az Ön által tervezett projekt fejlesztésében!:) A LED -ek sok mindenre jók….
Ajánlott:
Színészlelés Pythonban OpenCV használatával: 8 lépés
Színészlelés Pythonban az OpenCV használatával: Üdv! Ez az utasítás arra szolgál, hogy útmutatást nyújtson, hogyan lehet kinyerni egy adott színt a képből a pythonban az openCV könyvtár használatával. Ha még nem ismeri ezt a technikát, ne aggódjon, az útmutató végén saját színét programozhatja
A gyorsulás felügyelete a Raspberry Pi és az AIS328DQTR használatával Python használatával: 6 lépés
A gyorsulás nyomon követése a Raspberry Pi és az AIS328DQTR használatával Python használatával: A gyorsulás véges, azt hiszem, a fizika egyes törvényei szerint.- Terry Riley A gepárd elképesztő gyorsulást és gyors sebességváltozásokat használ üldözés közben. A leggyorsabb lény a parton időnként kihasználja csúcssebességét a zsákmány elkapására. Az
Neopixel Ws2812 Rainbow LED izzás M5stick-C - Szivárvány futtatása a Neopixel Ws2812 készüléken az M5stack M5stick C használatával Arduino IDE használatával: 5 lépés
Neopixel Ws2812 Rainbow LED izzás M5stick-C | Szivárvány futása a Neopixel Ws2812-en az M5stack M5stick C használatával Arduino IDE használatával: Sziasztok, srácok, ebben az oktatási útmutatóban megtanuljuk, hogyan kell használni a neopixel ws2812 LED-eket, vagy led szalagot vagy led mátrixot vagy led gyűrűt m5stack m5stick-C fejlesztőtáblával Arduino IDE-vel, és elkészítjük szivárványos mintát vele
RF 433MHZ rádióvezérlés HT12D HT12E használatával - Rf távirányító készítése HT12E és HT12D használatával 433 MHz -en: 5 lépés
RF 433MHZ rádióvezérlés HT12D HT12E használatával | Rf távirányító létrehozása HT12E és HT12D használatával 433 MHz -en: Ebben az oktatóanyagban megmutatom, hogyan készítsünk RADIO távirányítót a 433 MHz -es adó vevőmodul használatával HT12E kódolással & HT12D dekódoló IC. Ebben az utasításban nagyon olcsó komponenseket küldhet és fogadhat, mint például: HT
Vezeték nélküli távirányító 2,4 GHz -es NRF24L01 modul használatával Arduino - Nrf24l01 4 csatorna / 6 csatornás adó vevő négykópás - Rc Helikopter - Rc sík az Arduino használatával: 5 lépés (képekkel)
Vezeték nélküli távirányító 2,4 GHz -es NRF24L01 modul használatával Arduino | Nrf24l01 4 csatorna / 6 csatornás adó vevő négykópás | Rc Helikopter | Rc sík Arduino használatával: Rc autó működtetése | Quadcopter | Drone | RC sík | RC csónak, mindig szükségünk van vevőre és adóra, tegyük fel, hogy az RC QUADCOPTER esetében szükségünk van egy 6 csatornás adóra és vevőre, és az ilyen típusú TX és RX túl költséges, ezért készítünk egyet