GROSIR KAOS POLOS & KAOS MURAH

modul sensor warna tcs230
kalibrasi dilakukan dengan cara mengganti mode filter. yang pertama filter diset mode merah kemudian frekuensinya dicatat dan perlakuan ini berlaku juga untuk filter hijau dan filter biru. nilai frekuensi yang diperoleh diasumsikan sebagai nilai maksimum atau 255 untuk R ,G dan B. frekuensi maksimum tersebut kemudian dibagi dengan 255 untuk mendapatkan resolusi 8 bit tiap warna. pada project ini, mode filter berganti terus-menerus secara otomatis dengan urutan R-G-B. untuk mengetahui setting dari filter silakan merujuk ke datasheet.
input yang saya gunakan adalah PORTB.1. tetapi anda bisa menggantinya sesuai dengan keinginan anda sendiri. secara berurutan S0,S1,S2,S3 dimasukkan pada PORTA.3 – PORTA.6 dari mikrokontroller. PORTA.7 untuk tegangan LED di sensor. data RGB tersebut akan ditampilkan pada LCD 16×2. sourcecode ditulis dalam bahasa C dengan kompiler CodeVisionAVR.
Berikut adalah potongan sourcecode yang bisa digunakan :
001 | /***************************************************** |
002 | This program was produced by the |
003 | CodeWizardAVR V1.25.3 Professional |
004 | Automatic Program Generator |
005 | © Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. |
007 |
008 | Project : |
009 | Version : |
010 | Date : 5/15/2009 |
011 | Author : GreenBlack |
012 | Company : LakoV |
013 | Comments: |
014 |
015 | Chip type : ATmega8535 |
016 | Program type : Application |
017 | Clock frequency : 11.059200 MHz |
018 | Memory model : Small |
019 | External SRAM size : 0 |
020 | Data Stack size : 128 |
021 |
022 | *****************************************************/ |
023 |
024 | #include <mega8535.h> |
025 | #include <stdio.h> |
026 | #include <delay.h> |
027 | #define redref (27795/255) |
028 | #define greenref (33066.7/255) |
029 | #define blueref (34720/255) |
030 |
031 | // Alphanumeric LCD Module functions |
032 | #asm |
033 | .equ __lcd_port=0x15 ;PORTC |
034 | #endasm |
035 | #include <lcd.h> |
036 |
037 | // Declare your global variables here |
038 |
039 | void main( void ) |
040 | { |
041 | // Declare your local variables here |
042 |
043 | // Input/Output Ports initialization |
044 | // Port A initialization |
045 | // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In |
046 | // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T |
047 | PORTA=0x00; |
048 | DDRA=0xFF; |
049 |
050 | // Port B initialization |
051 | // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In |
052 | // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T |
053 | PORTB=0x02; |
054 | DDRB=0x00; |
055 |
056 | // Port C initialization |
057 | // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In |
058 | // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T |
059 | PORTC=0x00; |
060 | DDRC=0x00; |
061 |
062 | // Port D initialization |
063 | // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In |
064 | // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T |
065 | PORTD=0x00; |
066 | DDRD=0x00; |
067 |
068 | // Timer/Counter 0 initialization |
069 | // Clock source: System Clock |
070 | // Clock value: Timer 0 Stopped |
071 | // Mode: Normal top=FFh |
072 | // OC0 output: Disconnected |
073 | TCCR0=0x00; |
074 | TCNT0=0x00; |
075 | OCR0=0x00; |
076 |
077 | // Timer/Counter 1 initialization |
078 | // Clock source: System Clock |
079 | // Clock value: Timer 1 Stopped |
080 | // Mode: Normal top=FFFFh |
081 | // OC1A output: Discon. |
082 | // OC1B output: Discon. |
083 | // Noise Canceler: Off |
084 | // Input Capture on Falling Edge |
085 | // Timer 1 Overflow Interrupt: Off |
086 | // Input Capture Interrupt: Off |
087 | // Compare A Match Interrupt: Off |
088 | // Compare B Match Interrupt: Off |
089 | TCCR1A=0x00; |
090 | TCCR1B=0x00; |
091 | TCNT1H=0x00; |
092 | TCNT1L=0x00; |
093 | ICR1H=0x00; |
094 | ICR1L=0x00; |
095 | OCR1AH=0x00; |
096 | OCR1AL=0x00; |
097 | OCR1BH=0x00; |
098 | OCR1BL=0x00; |
099 |
100 | // Timer/Counter 2 initialization |
101 | // Clock source: System Clock |
102 | // Clock value: Timer 2 Stopped |
103 | // Mode: Normal top=FFh |
104 | // OC2 output: Disconnected |
105 | ASSR=0x00; |
106 | TCCR2=0x00; |
107 | TCNT2=0x00; |
108 | OCR2=0x00; |
109 |
110 | // External Interrupt(s) initialization |
111 | // INT0: Off |
112 | // INT1: Off |
113 | // INT2: Off |
114 | MCUCR=0x00; |
115 | MCUCSR=0x00; |
116 |
117 | // USART initialization |
118 | // Communication Parameters: 8 Data, 1 Stop, No Parity |
119 | // USART Receiver: On |
120 | // USART Transmitter: On |
121 | // USART Mode: Asynchronous |
122 | // USART Baud rate: 9600 |
123 | UCSRA=0x00; |
124 | UCSRB=0x18; |
125 | UCSRC=0x86; |
126 | UBRRH=0x00; |
127 | UBRRL=0x23; |
128 |
129 | // Timer(s)/Counter(s) Interrupt(s) initialization |
130 | TIMSK=0x00; |
131 |
132 | // Analog Comparator initialization |
133 | // Analog Comparator: Off |
134 | // Analog Comparator Input Capture by Timer/Counter 1: Off |
135 | ACSR=0x80; |
136 | SFIOR=0x00; |
137 |
138 | // LCD module initialization |
139 | lcd_init(16); |
140 |
141 | count=0; |
142 | PORTA=0b10011000; |
143 |
144 | while (1) |
145 | { |
146 | // Place your code here |
147 | red_filter(); |
148 | delay_ms(50); |
149 | green_filter(); |
150 | delay_ms(50); |
151 | blue_filter(); |
152 | delay_ms(50); |
153 | lcd_gotoxy(0,0); |
154 | lcd_clear(); |
155 | sprintf (lcd_buffer, "R:%d G:%d B:%d" ,red,green,blue); |
156 | lcd_puts(lcd_buffer); |
157 | a=0; b=0; c=0; |
158 | }; |
159 | } |
Baca artikel lainnya :
mikrokontroll
- Microcontroller PART IV
- Microcontroller PART II
- Microcontroller PART I
- USART ATMEGA 16
- Proteus 7.8 sp2
- Inject USBasp langsung pada AVR Atmega32/
- Wireless Joystik PS2 + ATMega 8 + Bascom AVR = LOVE IT…
- MEMBUAT ALAT MATA-MATA DENGAN HP BEKAS
- Rangkaian tester servo
- FUNGSI TIMER
- Aplikasi Timer
- Mode 0 port serial
- Port Serial
- Sensor suhu DS1621 dengan AVR ATMega8535
- Downloader AVR USBasp
- Access MultiSensor / MultiChannel using TComPort Delphi and AVR Microcontroller
- MAX232 Driver
- PIC Project: GSM Car Security
- PIC Project: Clock Signboard
- VB Project: XBee Switch
- Serial To Display
- RFID Reader
- chipKIT Lesson: MAX7219
0 komentar:
Show Hide CommentsPosting Komentar