키트전자 KE-RC-B 코드비젼

Size: px
Start display at page:

Download "키트전자 KE-RC-B 코드비젼"

Transcription

1

2 키트전자 KE-RC-B 코드비젼 LED 점등 #include <mega128.h> #include <stdio.h> #include <delay.h> #define LT_FWD_L PORTB.0 좌측헤드라이트 #define LT_BRAKE PORTD.4 브레이크등 #define LT_BACK PORTD.5 후진등 #define LT_CURVE_L PORTD.6 좌측깜박이등 #define LT_CURVE_R_ON (PORTG =0x02) PG1 우측깜박이등 #define LT_CURVE_R_OFF (PORTG&=~0x02) PG1 우측깜박이등 #define LT_FWD_L_ON (PORTG =0x04) PG2 우측헤드라이트 #define LT_FWD_L_OFF (PORTG&=~0x04) PG2 우측헤드라이트 void main(void){

3 int i; DDRA=0xFF; DDRB=0xFD; DDRC=0xFF; DDRD=0x78; DDRD=0x70; DDRE=0x0C; DDRF=0; DDRG=0xFE; while(1){ 전체 led 점멸 for(i=0;i<3;i++){ LT_CURVE_L=1; LT_FWD_L=1; LT_FWD_L_ON; LT_CURVE_R_ON; LT_BACK=1; LT_BRAKE=1; delay_ms(400); LT_CURVE_L=0; LT_FWD_L=0; LT_FWD_L_OFF; LT_CURVE_R_OFF; LT_BACK=0; LT_BRAKE=0; delay_ms(100); led 순차점등 for(i=0;i<3;i++){ LT_CURVE_L=1; delay_ms(400); LT_CURVE_L=0; delay_ms(100); 좌측깜박이등 LT_FWD_L=1; delay_ms(400); LT_FWD_L=0; delay_ms(100); 좌측헤드라이트 LT_FWD_L_ON; delay_ms(400); LT_FWD_L_OFF; delay_ms(100); 우측헤드라이트 LT_CURVE_R_ON; delay_ms(400); LT_CURVE_R_OFF; delay_ms(100); 우측깜박이등 LT_BACK=1; delay_ms(400); LT_BACK=0; delay_ms(100); 후진등 LT_BRAKE=1; delay_ms(400); LT_BRAKE=0; delay_ms(100); 브레이크등 프로그램을작성할때의순서는출력부터소스를만들어서구동합니다. 출력이이상이없도록만들고난후에입력은체크를마친출력을이용해서확인합니다. 저항은 1K 를사용했으며, 밝게키고싶으면저항을낮추면됩니다. 20mA 고휘도 LED 경우에는일반적인정격전압은아래와같습니다. 백색, 청색, 녹색 3.2V 황색, 적색 2.1V 10mA 일반 LED 경우에는일반적인정격전압은적색, 황색, 녹색 2.1V입니다.. FND에사용되는적색 LED 경우에는 1.8V짜리도있습니다. 스코프가있는분은파형을측정해보세요 ( 저항과 LED에걸리는전압체크 ) 헤드라이트용 LED는고휘도백색을구입하지못하고녹색을구입했는데고휘도가아닌일반타입입니다. 20mA 정격의고휘도타입이든, 10mA 정격의일반타입이든 5V에 1K 저항을사용하여서작은전류를흘리고있으므로정격전압보다낮은전압이나타나게됩니다. 저항에걸리는전압 = 5V - LED전압저항에흐르는전류 = (5V - LED전압 ) / 1000(1K)

4 1K 저항에는대략 3V 가조금넘는전압이걸리니, 3mA 가조금넘겠습니다. 아래 LED 전압스코프사진을올립니다.

5

6 키트전자 KE-RC-B 코드비젼 lcd test #include <mega128.h> #include <stdio.h> #include <delay.h> #define lcd_rs PORTC.0 #define lcd_rw PORTC.1 #define lcd_e PORTC.2 #define SRF04_TRG3 PORTC.3 #define lcd_out PORTC PORTC.4~7 4bits flash char str1[]= "KIT ELECTRONICS "; flash char str2[]= " line tracer "; char str[30]; void lcddata(char d){ lcd_rs=1; lcd_out=(lcd_out&0x08) (d&0xf0) 1; lcd_e=1; lcd_e=0; delay_us(1); lcd_out=(lcd_out&0x08) (d<<4) 1; lcd_e=1; lcd_e=0; delay_us(50); void lcdcmd(char c){ lcd_rs=0; lcd_out=(lcd_out&0x08) (c&0xf0); lcd_e=1; lcd_e=0; delay_us(1); lcd_out=(lcd_out&0x08) (c<<4); lcd_e=1; lcd_e=0; delay_ms(5); void lcd_init(void){ delay_ms(50); DDRA=0xFF; lcd port output lcdcmd(0x28); lcdcmd(0x28); lcdcmd(0x28); lcdcmd(0x0c); lcdcmd(0x06); lcdcmd(0x01); delay_ms(30); void lcd_gotoxy(char x, char y){ if (y==0)lcdcmd(0x80+x); else if(y==1)lcdcmd(0xc0+x); else if(y==2)lcdcmd(0x94+x); else if(y==3)lcdcmd(0xd4+x); void lcd_puts(char *str){ while(*str)lcddata(*str++);

7 void lcd_putsf(char flash *str){ while(*str)lcddata(*str++); void main(void){ int i; DDRA=0xFF; DDRB=0xFD; DDRC=0xFF; DDRD=0x78; DDRD=0x70; DDRE=0x0C; DDRF=0; DDRG=0xFE; lcd_init(); lcd_gotoxy(0,0); lcd_putsf(str1); delay_ms(2000); while(1){ for(i=0;i<100;i++){ lcd_gotoxy(0,0); lcd_putsf(str2); sprintf(str," RC car %3d ",i); lcd_gotoxy(0,1); lcd_puts(str); delay_ms(10); 코드비젼 CLCD - 만든함수로 4비트구동하기 LED/FND/LCD 상기코드를일부수정해서만들었습니다. #define SRF04_TRG3 PORTC.3 PC3 을초음파센서용트리거신호로사용하기위해서코드가조금복잡해졌습니다. void lcddata(char d){ lcd_rs=1; lcd_out=(lcd_out&0x08) (d&0xf0) 1; lcd_e=1; lcd_e=0; delay_us(1); 데이터상위4비트전송 lcd_out=(lcd_out&0x08) (d<<4) 1; lcd_e=1; lcd_e=0; delay_us(50); 데이터하위4비트전송 void lcdcmd(char c){ lcd_rs=0; lcd_out=(lcd_out&0x08) (c&0xf0); lcd_e=1; lcd_e=0; delay_us(1); 컴맨드상위4비트전송 lcd_out=(lcd_out&0x08) (c<<4); lcd_e=1; lcd_e=0; delay_ms(5); 컴맨드하위4비트전송 색칠한부분은 PC3 출력을변경하지않기위한비트마스크용 AND 연산입니다. 컴맨드함수의마지막부분에사용된딜레이 5ms는대부분의컴맨드가저렇게긴딜레이를필요로하지않지만일부긴딜레이를요구하는컴맨드가있어서가장긴시간기준으로그보다좀더긴딜레이를사용했습니다. 줄여서문제가생기지않는다면줄여도됩니다. LCD 의기초가부족한분들은카페왼쪽 128LCD 강좌게시판의글을공부하시면됩니다. for(i=0;i<100;i++){ lcd_gotoxy(0,0); lcd_putsf(str2); sprintf(str," RC car %3d ",i); lcd_gotoxy(0,1); lcd_puts(str); delay_ms(10); 간단한테스트용코드라서설명이필요없을겁니다.

8 딜레이가짧아서숫자가명확히안보입니다. 딜레이는적당히늘리면됩니다. void lcdcmd(char c){ lcd_rs=0; lcd_out=(lcd_out&0x08) (c&0xf0); lcd_e=1; lcd_e=0; delay_us(1); lcd_out=(lcd_out&0x08) (c<<4); lcd_e=1; lcd_e=0; delay_ms(2); for(i=0;i<100;i++){ lcd_gotoxy(0,0); lcd_putsf(str2); sprintf(str," RC car %3d ",i); lcd_gotoxy(0,1); lcd_puts(str); delay_ms(10); 컴맨드함수의딜레이를 2ms로줄이고, 메인의 for() 문딜레이를삭제하고돌리면가장빠른루프타입이됩니다.

9 키트전자 KE-RC-B 코드비젼 RC_Servo test #include <mega128.h> #include <stdio.h> #include <delay.h> void RC_Servo(int angle){ angle : -90도 ~ +90도 int i; if(angle<-90)angle=-90; if(angle> 90)angle= 90; i=(angle)* ; OCR1A=i; PB5 void main(void){ int i,k; DDRA=0xFF; DDRB=0xFD; DDRC=0xFF; DDRD=0x78; DDRD=0x70; DDRE=0x0C; DDRF=0; DDRG=0xFE; TCCR1A=0xAA; TCCR1B=0x1B; ICR1=40000; FAST PWM, 0.5usec*40000=20msec=50Hz while(1){ servo 90도씩회전 for(i=0;i<3;i++){ RC_Servo(-90); delay_ms(350); RC_Servo( 0); delay_ms(350); RC_Servo( 90); delay_ms(350); RC_Servo( 0); delay_ms(350); servo 1도씩회전 RC_Servo(-90); delay_ms(1000); 초기위치로이동 for(k=-90;k<= 90;k++){ RC_Servo(k); delay_ms(20); cw for(k= 90;k>=-90;k--){ RC_Servo(k); delay_ms(20); ccw RC_Servo( 0); delay_ms(350); 카페서보모터소스에서는 24ms 주기로동작시키고있지만 TCCR1A=0xAA; TCCR1B=0x1A; OCR1A=3000; ICR1=47999; servo pwm 라인트레이서구동소스에서는 20ms로구동하고있습니다. TCCR1A=0x2A; TCCR1B=0x1B; ICR1=40000; FAST PWM, 0.5usec*40000=20msec=50Hz L298의 PWM 출력에타이머1의나머지두개를할당하기위해서 50Hz 주기로 DC모터와서보모터를함께구동하고있습니다.

10 pwm 모드를상세하게설명해드리긴시간상어렵고간단히설명하면 fast pwm모드 14에서는 ICR1이주기를결정하는레지스터이고 TCNT1이 0부터 ICR까지증가한후 ICR레지스터와같아지면다시 0부터증가합니다. PWM은 TCNT1 카운터가 0일때어떤값이출력되고중간에 OCR1과같아지면출력이반전됩니다. 반대로도출력할수있으며데이터시트에서아래두개의레지스터를공부하세요 TCCR1A=0xAA; TCCR1B=0x1A; 이설정으로는 TCNT0에서 high가출력되고 OCR1과같아지면 low가출력됩니다. TCCR1A=0xFE; 설정을바꾸면처음에 low가출력되다가 OCR1과같아지면 high가출력됩니다. ICR을 40000으로설정했으므로듀티 10% 를주기위해서는 TCCR1A=0xAA; TCCR1B=0x1A; 이설정에서는 OCR1A=4000; 을설정하면되지만 TCCR1A=0xFE; TCCR1B=0x1A; 이설정에서는 OCR1A= ; 으로설정해야합니다. 어느때필요하냐.. 처음부터 high이므로듀티0을출력해도아주짧은펄스가발생됩니다. 모터처럼아주작은전력에서는꿈쩍도하지않는부하는상관없지만 LED라든가민감한부하는문제가생길수도있고, 이런경우에사용하면됩니다. 예제의딜레이는제가테스트해서짧은시간으로설정한것인데딜레이가부족하면미처다이동하기전에다른각도로넘어가버릴수있습니다. 모터가지령받은각도까지이동할수있도록충분한딜레이를줘야합니다.

11

12 시리얼통신 왼쪽 DSUB 커넥터가블루투스설정시사용하는커넥터이고오른쪽은 UART0으로 PC와연결하는용도의 RS-232 커넥터입니다.

13 점퍼위치에따라서 FB155BC 가 AVR 과연결되거나 PC 와연결됩니다.

14 불루투스설정에관해서는 이글을참고하세요 키트전자 KE-RC-B 코드비젼 시리얼문자전송 test #include <mega128.h> #include <stdio.h> #include <delay.h> 시리얼0 수신인터럽트 void TX0_CH(char ch){ while(!(ucsr0a&0x20)); UDR0=ch; 송신함수 char RX0_CH(void) { while(!(ucsr0a&0x80)); return UDR0; 수신함수 interrupt [USART0_RXC] void usart0_rx_isr(void){ 수신인터럽트 unsigned char R0data; R0data=UDR0; 시리얼1 수신인터럽트 void TX1_CH(char ch){ while(!(ucsr1a&0x20)); UDR1=ch; 송신함수 char RX1_CH(void) { while(!(ucsr1a&0x80)); return UDR1; 수신함수 interrupt [USART1_RXC] void usart1_rx_isr(void){ 수신인터럽트 unsigned char R1data; R1data=UDR1; void main(void){ char k; DDRA=0xFF; DDRB=0xFD; DDRC=0xFF; DDRD=0x78; DDRD=0x70; DDRE=0x0C; DDRF=0; DDRG=0xFE; TCCR1A=0xAA; TCCR1B=0x1A; ICR1=40000; servo pwm while(1){ 시리얼문자전송 UCSR0B=0x18; UBRR0H=0; UBRR0L=103; 9600, 송신, 수신함수 UCSR1B=0x18; UBRR1H=0; UBRR1L=103; 9600, 송신, 수신함수 for(k='a';k<='z';k++){ TX0_CH(k); UART0 RS-232 TX1_CH(k); UART1 블루투스 delay_ms(100); 100ms마다알파벳대문자 A 부터 Z 까지전송하는간단한예제입니다.

15 아래쪽스코프 2번채널이 AVR에서송신하는데이터의 TTL 레벨파형이고위쪽스코프 1번채널이 MAX232를거친 RS-232 레벨의파형입니다. AVR TXD 단자는데이터를보내지않을때 high 레벨이며, RS-232 출력은 -12V( 실제로는 -5.7V) 입니다. 논리적으로반전되어있으므로 MAX232 데이터시트의논리기호는 NOT게이트로되어있습니다. 아래 MAX232 데이터시트그림참고

16

17 TI 사의 MAX232 데이터시트입니다 키트전자 KE-RC-B 코드비젼 DC모터 test #include <mega128.h> #include <delay.h> #define L298_2_EN PORTB.6 #define L298_1_EN PORTB.7 #define L298_2_A1 PORTE.2 #define L298_2_A2 PORTE.3 #define L298_1_A1_ON (PORTG =0x08) PG3 #define L298_1_A1_OFF (PORTG&=~0x08) PG3 #define L298_1_A2_ON (PORTG =0x10) PG4 #define L298_1_A2_OFF (PORTG&=~0x10) PG4 void motor_lf(void) { L298_2_EN=1; L298_2_A1=1; L298_2_A2=0; void motor_lb(void) { L298_2_EN=1; L298_2_A1=0; L298_2_A2=1; void motor_ls(void) { L298_2_EN=0; L298_2_A1=0; L298_2_A2=0; void motor_lss(void) { L298_2_EN=1; L298_2_A1=0; L298_2_A2=0; void motor_lsss(void){ L298_2_EN=1; L298_2_A1=1; L298_2_A2=1; void motor_rf(void) { L298_1_EN=1; L298_1_A1_ON; L298_1_A2_OFF; void motor_rb(void) { L298_1_EN=1; L298_1_A1_OFF; L298_1_A2_ON; void motor_rs(void) { L298_1_EN=0; L298_1_A1_OFF; L298_1_A2_OFF; void motor_rss(void) { L298_1_EN=1; L298_1_A1_OFF; L298_1_A2_OFF; void motor_rsss(void){ L298_1_EN=1; L298_1_A1_ON; L298_1_A2_ON; void main(void){ DDRA=0xFF; DDRB=0xFD; DDRC=0xFF; DDRD=0x78; DDRD=0x70; DDRE=0x0C; DDRF=0; DDRG=0xFE; while(1){ DC motor, 브레이크제어안함 motor_lf(); motor_rf(); delay_ms(2000); motor_ls(); motor_rs(); delay_ms(2000); motor_lb(); motor_rb(); delay_ms(2000); motor_ls(); motor_rs(); delay_ms(2000); DC motor, 브레이크제어, GND motor_lf(); motor_rf(); delay_ms(2000); motor_lss(); motor_rss(); delay_ms(2000); motor_lb(); motor_rb(); delay_ms(2000); motor_lss(); motor_rss(); delay_ms(2000); DC motor, 브레이크제어, VCC motor_lf(); motor_rf(); delay_ms(2000); motor_lsss(); motor_rsss(); delay_ms(2000); motor_lb(); motor_rb(); delay_ms(2000); motor_lsss(); motor_rsss(); delay_ms(2000);

18 포트로구동하는간단한예제입니다. DC모터는극성을바꿔줘서전류방향이바뀌면반대로회전을합니다. 이글에서 L298이어떻게동작하는지살펴보시고이해가안가는분들은질문해주시기바랍니다. 전원을넣지않은상태에서바퀴를잡고돌리면함께연결된바퀴가회전합니다. 회전시발생한전력으로연결된바퀴가회전하는것입니다. 모터 1개로테스트하는방법도있습니다. 모터선두개를숏트시켜둔채로모터축을회전시키면발생한전력이모터에인가되서회전을방해하게되서브레이크가걸립니다. 왼쪽바퀴 STOP 함수만보면 void motor_ls(void) { L298_2_EN=0; L298_2_A1=0; L298_2_A2=0; 이네이블신호를디저블시키는것으로서관성에의해서일정시간굴러가다가멈추게됩니다. void motor_lss(void) { L298_2_EN=1; L298_2_A1=0; L298_2_A2=0; 이네이블상태에서 A1,A2를 low로만들어서 L298 내부의 H브릿지중아래쪽두개의 TR을 ON시켜서모터전압을 GND에연결시키는것으로브레이크동작을합니다. void motor_lsss(void){ L298_2_EN=1; L298_2_A1=1; L298_2_A2=1; 이네이블상태에서 A1,A2를 high로만들어서 L298 내부의 H브릿지중윗쪽두개의 TR을 ON시켜서모터전압을 VCC에연결시키는것으로브레이크동작을합니다. 동작상태확인이어려우므로 LCD 표시를추가해야겠습니다 키트전자 KE-RC-B 코드비젼 DC모터 test (LCD 추가 ) #include <mega128.h> #include <stdio.h> #include <delay.h> #define lcd1_rs PORTC.0 #define lcd1_rw PORTC.1 #define lcd1_e PORTC.2 #define lcd1_out PORTC PORTC.4~7 4bits #define L298_2_EN PORTB.6 #define L298_1_EN PORTB.7 #define L298_2_A1 PORTE.2 #define L298_2_A2 PORTE.3 #define L298_1_A1_ON (PORTG =0x08) PG3 #define L298_1_A1_OFF (PORTG&=~0x08) PG3 #define L298_1_A2_ON (PORTG =0x10) PG4 #define L298_1_A2_OFF (PORTG&=~0x10) PG4

19 void lcd1data(char d){ lcd1_rs=1; lcd1_out=(lcd1_out&0x08) (d&0xf0) 1; lcd1_e=1; lcd1_e=0; delay_us(1); lcd1_out=(lcd1_out&0x08) (d<<4) 1; lcd1_e=1; lcd1_e=0; delay_us(50); void lcd1cmd(char c){ lcd1_rs=0; lcd1_out=(lcd1_out&0x08) (c&0xf0); lcd1_e=1; lcd1_e=0; delay_us(1); lcd1_out=(lcd1_out&0x08) (c<<4); lcd1_e=1; lcd1_e=0; delay_ms(5); void lcd1_init(void){ delay_ms(50); DDRA=0xFF; lcd port output lcd1cmd(0x28); lcd1cmd(0x28); lcd1cmd(0x28); lcd1cmd(0x0c); lcd1cmd(0x06); lcd1cmd(0x01); delay_ms(30); void lcd1_gotoxy(char x, char y){ if (y==0)lcd1cmd(0x80+x); else if(y==1)lcd1cmd(0xc0+x); else if(y==2)lcd1cmd(0x94+x); else if(y==3)lcd1cmd(0xd4+x); void lcd1_puts(char *str){ while(*str)lcd1data(*str++); void lcd1_putsf(char flash *str){ while(*str)lcd1data(*str++); void motor_rf(void) { L298_1_EN=1; L298_1_A1_ON; L298_1_A2_OFF; void motor_rb(void) { L298_1_EN=1; L298_1_A1_OFF; L298_1_A2_ON; void motor_rs(void) { L298_1_EN=0; L298_1_A1_OFF; L298_1_A2_OFF; void motor_rss(void) { L298_1_EN=1; L298_1_A1_OFF; L298_1_A2_OFF; void motor_rsss(void){ L298_1_EN=1; L298_1_A1_ON; L298_1_A2_ON; void motor_lf(void) { L298_2_EN=1; L298_2_A1=1; L298_2_A2=0; void motor_lb(void) { L298_2_EN=1; L298_2_A1=0; L298_2_A2=1; void motor_ls(void) { L298_2_EN=0; L298_2_A1=0; L298_2_A2=0; void motor_lss(void) { L298_2_EN=1; L298_2_A1=0; L298_2_A2=0; void motor_lsss(void){ L298_2_EN=1; L298_2_A1=1; L298_2_A2=1; void main(void){ char str[30]; DDRA=0xFF; DDRB=0xFD; DDRC=0xFF; DDRD=0x78; DDRD=0x70; DDRE=0x0C; DDRF=0; DDRG=0xFE; lcd1_init(); while(1){ DC motor, 브레이크제어안함 sprintf(str," break-off "); lcd1_gotoxy(0,0); lcd1_puts(str); motor_lf(); motor_rf(); delay_ms(500); motor_ls(); motor_rs(); delay_ms(2000); motor_lb(); motor_rb(); delay_ms(500);

20 motor_ls(); motor_rs(); delay_ms(2000); DC motor, 브레이크제어, GND sprintf(str," break-on GND "); lcd1_gotoxy(0,0); lcd1_puts(str); motor_lf(); motor_rf(); delay_ms(500); motor_lss(); motor_rss(); delay_ms(2000); motor_lb(); motor_rb(); delay_ms(500); motor_lss(); motor_rss(); delay_ms(2000); DC motor, 브레이크제어, VCC sprintf(str," break-on VCC "); lcd1_gotoxy(0,0); lcd1_puts(str); motor_lf(); motor_rf(); delay_ms(500); motor_lsss(); motor_rsss(); delay_ms(2000); motor_lb(); motor_rb(); delay_ms(500); motor_lsss(); motor_rsss(); delay_ms(2000); 실제바닥에놓고주행시키게되면 2초라는시간이상당히긴시간이므로 0.5초로짧게수정했습니다. 휴지위에놓고무부하로구동하는것보다바닥에놓고실제로주행해보면브레이크가있고없고의차이가뚜렷해집니다. PWM 제어를하면서브레이크를거는방법은 PWM100% 를주면 L298의이네이블이활성화되므로동일하게브레이크를걸수있습니다. 각자코드를만들어서시험해보세요

21 키트전자 KE-RC-B 코드비젼 센서 test #include <mega128.h> #include <stdio.h> #include <delay.h> #define lcd1_rs PORTC.0 #define lcd1_rw PORTC.1 #define lcd1_e PORTC.2 #define lcd1_out PORTC PORTC.4~7 4bits int adc_buf[8]; void lcd1data(char d){ lcd1_rs=1; lcd1_out=(lcd1_out&0x08) (d&0xf0) 1; lcd1_e=1; lcd1_e=0; delay_us(1); lcd1_out=(lcd1_out&0x08) (d<<4) 1; lcd1_e=1; lcd1_e=0; delay_us(50); void lcd1cmd(char c){ lcd1_rs=0; lcd1_out=(lcd1_out&0x08) (c&0xf0); lcd1_e=1; lcd1_e=0; delay_us(1); lcd1_out=(lcd1_out&0x08) (c<<4); lcd1_e=1; lcd1_e=0; delay_ms(5); void lcd1_init(void){ delay_ms(50); DDRA=0xFF; lcd port output lcd1cmd(0x28); lcd1cmd(0x28); lcd1cmd(0x28); lcd1cmd(0x0c); lcd1cmd(0x06); lcd1cmd(0x01); delay_ms(30); void lcd1_gotoxy(char x, char y){ if (y==0)lcd1cmd(0x80+x); else if(y==1)lcd1cmd(0xc0+x); else if(y==2)lcd1cmd(0x94+x); else if(y==3)lcd1cmd(0xd4+x); void lcd1_puts(char *str){ while(*str)lcd1data(*str++); void lcd1_putsf(char flash *str){ while(*str)lcd1data(*str++); void main(void){ char str[30];

22 int k; DDRA=0xFF; DDRB=0xFD; DDRC=0xFF; DDRD=0x78; DDRD=0x70; DDRE=0x0C; DDRF=0; DDRG=0xFE; ADMUX=0x40; lcd1_init(); while(1){ for(k=0;k<8;k++){ PORTA=~(1<<k); delay_us(90); 적외선 LED-ON 후 90us 후에 ADMUX=0x40 k; ADCSRA=0xC7; ADC 변환스타트시킵니다. delay_us(120); adc_buf[k]=adcw; 120us 후에변환이완료된값을저장하고 PORTA=0xFF; 적외선 LED-OFF 시킵니다. delay_ms(1); 채널딜레이 sprintf(str,"%4d%4d%4d%4d",adc_buf[0],adc_buf[1],adc_buf[2],adc_buf[3]); lcd1_gotoxy(0,0); lcd1_puts(str); sprintf(str,"%4d%4d%4d%4d",adc_buf[4],adc_buf[5],adc_buf[6],adc_buf[7]); lcd1_gotoxy(0,1); lcd1_puts(str); delay_ms(100); 라인센서는라인트레이서의가장중요한부분중하나입니다.

23 적외선 LED로적외선을쏘고, 포토센서로반사파를감지해서라인유무를측정하는회로이며기본회로를위에올렸습니다. 1차공구때에는우측의 103과 47K가없었으나펄스방식으로구동하기위해서추가한회로입니다. 펄스구동방식의장점은외란광의영향을덜받는다는것입니다. 빛을받으면포토센서에전류가흐르게되고 10K 저항에전압이걸리게됩니다. 전압의변화가 103을통해서넘어가게되고 ADC로입력받게됩니다. 예제소스에주석을달아놓았으니아래사진들과함께보시기바랍니다. 흰색 (A4 용지 ) 센싱 0번부터 7번까지센서값은위사진상으로가장위쪽 ( 진행방향으로볼때왼쪽 ) 이 0번이고아래쪽 ( 진행방향으로볼때오른쪽 ) 이 7번입니다.

24 LED 등을센서에가까이가져다대서외란광의영향을시험 검정색색종이

25 검정색색종이 검정색색종이 LED 등으로외란광의영향을테스트

26 청색과황색색종이

27 적색과녹색색종이

28 백색과검정색색종이

29

30 이사진은 LED의캐소드 (AVR 포트출력 ) 를측정한것입니다. 이정도의전류구동에 0.24V의전압이출력포트에걸린다고생각하시면됩니다. 무슨말이냐하면..AVR 출력포트로전류를드라이브많이할수록더높은전압이걸리게됩니다. 330 옴에 3.64V 가걸리니, 3.64V / 330 옴 = 약 11mA 가흐릅니다.

31 포토센서수신파형입니다. 파형이잘안보이니시간레인지를조절해야겠습니다. 옆의적외선LED에서쏜신호도약하게들어옵니다.

32 파형의시간은소스와비교해보면쉽게이해가갈겁니다.

33 위쪽신호는 103을통해서넘어간파형입니다. 이신호가 ADC핀에걸려서우리가사용하게됩니다. 2V가조금넘는신호라서 ADC변환시 440 정도로읽혀지고있습니다. 휴지위에올려두면센서면은바닥에서 8~9cm 떨어지게됩니다. 이정도거리에서도 ADC변환값은검정색보다더작은값이읽히므로낭떨어지감지는간단히됩니다. 관성때문에서지못해서떨어질수는있겠지만, 센싱에문제가없습니다. 물론거대한몸집을가지고서좁은책상위에서놀일은없습니다.^^ 안드로이드운영체계의장영실대상받은로봇이낭떨어지와칼라센싱이어렵다고해서색종이실험을해봤습니다.^^

34 키트전자 KE-RC-B 코드비젼 센서 test, 인터럽트방식 #include <mega128.h> #include <stdio.h> #include <delay.h> #define lcd1_rs PORTC.0 #define lcd1_rw PORTC.1 #define lcd1_e PORTC.2 #define lcd1_out PORTC PORTC.4~7 4bits bit adc_flag=0; char ADC_CH=0; int adc_buf[8]; char tm0_cnt=0; void lcd1data(char d){ lcd1_rs=1; lcd1_out=(lcd1_out&0x08) (d&0xf0) 1; lcd1_e=1; lcd1_e=0; delay_us(1); lcd1_out=(lcd1_out&0x08) (d<<4) 1; lcd1_e=1; lcd1_e=0; delay_us(50); void lcd1cmd(char c){ lcd1_rs=0; lcd1_out=(lcd1_out&0x08) (c&0xf0); lcd1_e=1; lcd1_e=0; delay_us(1); lcd1_out=(lcd1_out&0x08) (c<<4); lcd1_e=1; lcd1_e=0; delay_ms(5); void lcd1_init(void){ delay_ms(50); DDRA=0xFF; lcd port output lcd1cmd(0x28); lcd1cmd(0x28); lcd1cmd(0x28); lcd1cmd(0x0c); lcd1cmd(0x06); lcd1cmd(0x01); delay_ms(30); void lcd1_gotoxy(char x, char y){ if (y==0)lcd1cmd(0x80+x); else if(y==1)lcd1cmd(0xc0+x); else if(y==2)lcd1cmd(0x94+x); else if(y==3)lcd1cmd(0xd4+x); void lcd1_puts(char *str){ while(*str)lcd1data(*str++); void lcd1_putsf(char flash *str){ while(*str)lcd1data(*str++);

35 interrupt [TIM0_COMP] void timer0_comp_isr(void){ 매치인터럽트 if (tm0_cnt== 0){ PORTA=~(1<<ADC_CH); else if(tm0_cnt== 1){ ADMUX=0x40 ADC_CH; ADCSRA =0x40; else if(tm0_cnt==12){ if(++adc_ch>7){ ADC_CH=0; adc_flag=1; if(++tm0_cnt>12){ tm0_cnt=0; interrupt [ADC_INT] void adc_isr(void){ adc_buf[adc_ch]=adcw; PORTA=0xFF; void main(void){ char str[30]; DDRA=0xFF; DDRB=0xFD; DDRC=0xFF; DDRD=0x78; DDRD=0x70; DDRE=0x0C; DDRF=0; DDRG=0xFE; lcd1_init(); ADCSRA=0x8F; ADMUX=0x40; TCCR0=0x0A; OCR0=179; TIMSK=2; /8/(179+1)=11111Hz=90us SREG=0x80; while(1){ while(adc_flag==0); adc_flag=0; sprintf(str,"%4d%4d%4d%4d",adc_buf[0],adc_buf[1],adc_buf[2],adc_buf[3]); lcd1_gotoxy(0,0); lcd1_puts(str); sprintf(str,"%4d%4d%4d%4d",adc_buf[4],adc_buf[5],adc_buf[6],adc_buf[7]); lcd1_gotoxy(0,1); lcd1_puts(str); delay_ms(100); 메인에서구동하는것을 ADC와타이머0 두개의인터럽트를사용해서구동하는예제입니다. 분석이가능한분은잘분석해보세요^^ 만든사람도있으니만들어진것분석도가능하겠죠..^^ TV 리모콘과초음파센서는 128LCD 강좌의게시글을공부하면될것같습니다. 이상으로간단한설명을마칩니다. 위코드나설명에미흡한부분은메일로질문하여주시기바랍니다. 여기까지읽어주셔서감사합니다.^^

36

ATmega128

ATmega128 ATmega128 외부인터럽트실습 Prof. Jae Young Choi ( 최재영교수 ) (2015 Spring) Prof. Jae Young Choi 외부인터럽트실험 외부인터럽트를사용하기위해관렦레지스터를설정 일반적으로 I/O 포트에대한설정이끝난후에외부인터럽트나타이머 / 카운터설정 PE4~7 번까지 4 개의외부인터럽트 INT4~INT7 까지사용 외부인터럽트사용법요약

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 8주차중간고사 ( 인터럽트및 A/D 변환기문제및풀이 ) Next-Generation Networks Lab. 외부입력인터럽트예제 문제 1 포트 A 의 7-segment 에초시계를구현한다. Tact 스위치 SW3 을 CPU 보드의 PE4 에연결한다. 그리고, SW3 을누르면하강 에지에서초시계가 00 으로초기화된다. 동시에 Tact 스위치 SW4 를 CPU 보드의

More information

정보보안 개론과 실습:네트워크

정보보안 개론과 실습:네트워크 ` 마이크로프로세서설계및실습 12-13 주차강의자료 학습목표 A/D 변환기의제어방법을이해한다 능숙하게 A/D 변환기를제어할수있도록반복실습한다 2/28 아날로그 - 디지털변환회로 아날로그 - 디지털변환회로 (A/D 변환회로 ) 는, 아날로그전기신호를디지털전기신호로변환하는전자회로이다 A/D 컨버터 (ADC: Analog-to-digital converter) 라고도불린다

More information

UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ UL UART PORT1 void UAR

UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ UL UART PORT1 void UAR IMC-V0.1 예제소스파일 1. UART 소스코드 (page 1-3) 2. Encoder 소스코드 (page 4-7) 3. ADC 소스코드 (page 8-10) UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 7주차 AVR의 A/D 변환기제어레지스터및관련실습 Next-Generation Networks Lab. 3. 관련레지스터 표 9-4 레지스터 ADMUX ADCSRA ADCH ADCL 설명 ADC Multiplexer Selection Register ADC 의입력채널선택및기준전압선택외 ADC Control and Status Register A ADC 의동작을설정하거나동작상태를표시함

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 4 th Lecture 유명환 ( yoo@netplug.co.kr) 1 시간 (Time) 에대한정의 INDEX 2 왜타이머 (Timer) 와카운터 (Counter) 인가? 3 ATmega128 타이머 / 카운터동작구조 4 ATmega128 타이머 / 카운터관련레지스터 5 뻔뻔한노하우 : 레지스터비트설정방법 6 ATmega128

More information

2주차: 입출력 제어 복습

2주차: 입출력 제어 복습 마이크로프로세서 응용및실습 ` 13-14 주차 : 직렬통신 (2) 한철수 전자공학과 2/35 직렬통신과병렬통신 직렬통신 한가닥의선으로송수신할데이터를차례대로전송하는방식 장점 : 통신선로가적기때문에경제적임 단점 : 전송속도가느림. 송수신약속이복잡해짐 병렬통신 여러가닥의선으로동시에여러개의데이터를전송하는방식 장점 : 전송속도가빠름 단점 : 직렬통신보다비쌈 3/35

More information

가. 도트매트릭스제어하기 단일 LED와는다르게도트매트릭스를구동시는구동전류가프로세서에서출력되는전류보다사용량을더많이필요하기때문에 TTL 계열의 IC로구동시키기에는무리가따른다. 이러한문제를해결하기위해서사용전압, 전류정격이높은달링턴트랜지스터가어레이형태로들어있는 ULN2803을

가. 도트매트릭스제어하기 단일 LED와는다르게도트매트릭스를구동시는구동전류가프로세서에서출력되는전류보다사용량을더많이필요하기때문에 TTL 계열의 IC로구동시키기에는무리가따른다. 이러한문제를해결하기위해서사용전압, 전류정격이높은달링턴트랜지스터가어레이형태로들어있는 ULN2803을 CHAPTER 5 도트매트릭스제어하기 가. 도트매트릭스제어하기 가. 도트매트릭스제어하기 단일 LED와는다르게도트매트릭스를구동시는구동전류가프로세서에서출력되는전류보다사용량을더많이필요하기때문에 TTL 계열의 IC로구동시키기에는무리가따른다. 이러한문제를해결하기위해서사용전압, 전류정격이높은달링턴트랜지스터가어레이형태로들어있는 ULN2803을이용한다. 이 IC에는 8개의

More information

<4D F736F F D20BDBAC5D7C7CE20B6F3C0CEC6AEB7B9C0CCBCADB0ADC1C2202D203420C7C1B7CEB1D7B7A1B9D62E646F63>

<4D F736F F D20BDBAC5D7C7CE20B6F3C0CEC6AEB7B9C0CCBCADB0ADC1C2202D203420C7C1B7CEB1D7B7A1B9D62E646F63> 라인트레이서강좌 4. 프로그래밍 2005년 8월 1일류대우 (davidryu@newtc.co.kr) 1. 라인트레이서란? 라인트레이서는정해진주행선을따라움직이는자율이동로봇이다. 현재공장자동화부분에서이용되고있는무인반송차가라인트레이서이다. 라인트레이서의기본적인원리는주어진주행선을센서로검출하여이것에따라목적위치까지이동하는것이다. 라인트레이서는크게 3부분 - 컨트롤러부,

More information

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp l Y ( X g, Y g ) r v L v v R L θ X ( X c, Yc) W (a) (b) DC 12V 9A Battery 전원부 DC-DC Converter +12V, -12V DC-DC Converter 5V DC-AC Inverter AC 220V DC-DC Converter 3.3V Motor Driver 80196kc,PWM Main

More information

Microsoft PowerPoint - 08-MP-8-ADC

Microsoft PowerPoint - 08-MP-8-ADC 8. A/D 변환기 순천향대학교 컴퓨터학부 이 상 정 학습 내용 ATmega28 ADC ADC 개요 ADC 레지스터 ADC 프로그램 온도센서 프로그램 순천향대학교 컴퓨터학부 이 상 정 2 ATmega28 ADC 순천향대학교 컴퓨터학부 이 상 정 3 A/D 변환기 개요 물리적인 현상(전압, 전류,온도,속도,조도,습도,압력,속,,습,압력 )들은 아날로그 값이므로

More information

MAX232 MAXIM사에서생산되는 RS-232통신을가능토록해주는송수신 IC이다. 송수신드라이브를각각 2개씩가지고있다. AVR과컴퓨터가인식하는 0과 1의값이다르기때문에.. 마이컴컴퓨터 이차이를해결해주는것이다. 0 0V -10V 1 5V 10V TTL IC 의전원단자와다

MAX232 MAXIM사에서생산되는 RS-232통신을가능토록해주는송수신 IC이다. 송수신드라이브를각각 2개씩가지고있다. AVR과컴퓨터가인식하는 0과 1의값이다르기때문에.. 마이컴컴퓨터 이차이를해결해주는것이다. 0 0V -10V 1 5V 10V TTL IC 의전원단자와다 Code Vison AVR C ATmega 8535 RS232 시리얼통신 컨넥터와신호선 RS232 통신을위한컨넥터는 9핀과 25핀컨넥터가있으나, 최근에는 9핀컨넥터를많이사용한다. 실제데이터가송수신되는핀은 TXD(3) 와 RXD(2) 이고기능은다음과같다. 9 핀컨넥터의모습 TXD - Transmit Data 비동기식직렬통신장치가외부장치로데이터를보낼때, 직렬통신데이터가나오는신호선

More information

// 변수선언 unsigned char i; unsigned char FONT[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xD8, 0x80, 0x98}; //PORTA 를출력으로설정하고초기값은모두 0 PORTA = 0x00; DD

// 변수선언 unsigned char i; unsigned char FONT[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xD8, 0x80, 0x98}; //PORTA 를출력으로설정하고초기값은모두 0 PORTA = 0x00; DD Code Vison AVR C ATmega8535 ATmega8535 제어실습 Chapter 1 I / O 포트제어하기 FND 제어 FND에는 Vcc를이용하는애노드 (anode) 형과 Gnd를이용하는 cathode형이있다. LED가여러개모여있다생각하고 LED선택에따라문자와숫자를만들어낼수있다. 최대한많은영문자를만들기위해대문자와소문자를혼합한다. ( 표현가능한문자

More information

M16_32KIT_Manual.hwp

M16_32KIT_Manual.hwp M16/32KIT Mega 16/32 KIT Technical Manual AVRMALL http://www.avrmall.com/ September 20, 2004 Copyright (c) 2003,2004 AVRMALL All Rights Reserved. M16/32KIT Technical Manual September 20, 2004 Page 2 of

More information

ZPONZCMGOVQK.hwp

ZPONZCMGOVQK.hwp 졸업논문 2011. 11. 15. 1 초음파센서를이용한자동주차차량 Automatic Parking Car Using Ultrasonic Sensors 김정수, 김형필, 장호진 Jeong-su Kim, Hyoung-pil Kim, Ho-jin Jang 강원대학교 IT대학전기전자전공 E-mail: nextstep12@nate.com, kimhp@kangwon.ac.kr,jini870720@nate.com

More information

1. 제품소개 그림. 1.1 이란? DC 모터구동시하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 입니다. 또한당사 DEV 보드와 1P 점퍼클립케이블을이용하여연동이가능하며, 산업용 DC 모터의정회전, 역회전구동및속도제어시유용하게사용되는 입니다.

1. 제품소개 그림. 1.1 이란? DC 모터구동시하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 입니다. 또한당사 DEV 보드와 1P 점퍼클립케이블을이용하여연동이가능하며, 산업용 DC 모터의정회전, 역회전구동및속도제어시유용하게사용되는 입니다. 매뉴얼 (Model: ET-DCM) 이경남 L K 임베디드 서울북부기술인재학원 2013 LK EMBEDDED ET-DCM version 1.0 페이지 1 1. 제품소개 그림. 1.1 이란? DC 모터구동시하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 입니다. 또한당사 DEV 보드와 1P 점퍼클립케이블을이용하여연동이가능하며, 산업용

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - (Asynchronous Mode) - - - ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - UART (Univ ers al As y nchronous Receiver / T rans mitter) 8250A 8250A { COM1(3F8H). - Line Control Register

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

뉴티씨 (NEWTC) 2. FB-CY4E-DEV (FPGA 개발 키트) 구성도 Port Select SW 7 Segment Text LCD UART RS-232C JTAG PORTA (5V) Active Serial PORTB (5V) OSC. 50MHz Analog

뉴티씨 (NEWTC) 2. FB-CY4E-DEV (FPGA 개발 키트) 구성도 Port Select SW 7 Segment Text LCD UART RS-232C JTAG PORTA (5V) Active Serial PORTB (5V) OSC. 50MHz Analog 뉴티씨 (NEWTC) FPGA 개발 키트 (FB-CY4E-DEV) 매뉴얼 (주) 뉴티씨 ( NEWTC ) 1. FB-CY4E-DEV (FPGA 개발 키트) 소개 ALTERA 사의 FPGA(EP4CE6E22C8N)를 이용한 개발보드 입니다. USB 블래스터(FM-USBBLASTER) 를 이용하여 프로그램을 다운로드 가능 LCD, FND(7-Segment), 스위치

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee 목차 1. D/A 변환기 2. 병렬 D/A 변환기로 LED 밝기제어하기 3. 직렬 D/A 변환기로 LED 밝기제어하기 D/A 변환기 D/A 변환기 (Digital to Analog Converter) 디지털데이터를아날로그전압으로변환하는소자 A/D변환기와함께마이크로프로세서응용회로에서널리사용됨.

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)

More information

실험 5

실험 5 실험. OP Amp 의기초회로 Inverting Amplifier OP amp 를이용한아래와같은 inverting amplifier 회로를고려해본다. ( 그림 ) Inverting amplifier 위의회로에서 OP amp의 입력단자는 + 입력단자와동일한그라운드전압, 즉 0V를유지한다. 또한 OP amp 입력단자로흘러들어가는전류는 0 이므로, 저항에흐르는전류는다음과같다.

More information

untitled

untitled if( ) ; if( sales > 2000 ) bonus = 200; if( score >= 60 ) printf(".\n"); if( height >= 130 && age >= 10 ) printf(".\n"); if ( temperature < 0 ) printf(".\n"); // printf(" %.\n \n", temperature); // if(

More information

C++-¿Ïº®Çؼ³10Àå

C++-¿Ïº®Çؼ³10Àå C C++. (preprocessor directives), C C++ C/C++... C++, C. C++ C. C C++. C,, C++, C++., C++.,.. #define #elif #else #error #if #itdef #ifndef #include #line #pragma #undef #.,.,. #include #include

More information

BY-FDP-4-70.hwp

BY-FDP-4-70.hwp RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,

More information

목차 1. 키패드 (KeyPAD) 2. KeyPAD 를이용한비밀번호입력기

목차 1. 키패드 (KeyPAD) 2. KeyPAD 를이용한비밀번호입력기 Chapter. 13 KeyPAD 를이용한비밀번호입력기 HBE-MCU-Multi AVR Jaeheung, Lee 목차 1. 키패드 (KeyPAD) 2. KeyPAD 를이용한비밀번호입력기 키패드 (KeyPAD) 키패드 (KeyPAD) 마이크로컨트롤러활용에서사용자의입력을받아들이기위한장치 전화기, 컴퓨터, 핸드폰, 냉장고등거의모든가전제품에서사용 키패드인터페이스방식

More information

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고 CHAPTER 7 인터럽트 가. 레지스터구조이해하기 나. 엔코더제어하기 인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고급한일을처리한후에본래의일을다시수행하는것을말한다.

More information

lecture4(6.범용IO).hwp

lecture4(6.범용IO).hwp 제 2 부 C-언어를 사용한 마이크로컨트롤러 활용기초 66 C-언어는 수학계산을 위해 개발된 FORTRAN 같은 고급언어들과는 달 리 Unix 운영체제를 개발하면서 같이 개발된 고급언어이다. 운영체제의 특성상 C-언어는 다른 고급언어에 비해 컴퓨터의 하드웨어를 직접 제어할 수 있는 능력이 탁월하여 마이크로프로세서의 프로그램에 있어서 어셈블 리와 더불어 가장

More information

개요

개요 Application Note (003) 시리얼인터페이스 (RS232/RS422/RS485) Version 1.0 솔내시스템주식회사 1. 개요 는 RS232, RS422, RS485등 3개의시리얼인터페이스를지원합니다. 사용자는 의설정용유틸리티인 ezconfig를이용해서 3개의인터페이스중에서하나를선택하여설정할수있습니다. 1.1. RS232 Ground를기준으로한전압을이용해서통신하는형태입니다.

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

BS-K1217-M□□-3012_ProductGuide_KR_PDF

BS-K1217-M□□-3012_ProductGuide_KR_PDF READER/WRITER MADE IN JAPAN System [ASLINK ] S-K1217-M-3012..,.,....,,. S-K1217-M08-3012 S-K1217-M12-3012 S-K1217-M18-3012 S-K1217-M30-3012 2() () / 1 2 1 DC..,,.,,,..,....... ' ARW-04 (Ver.04-1.01 ),

More information

인터럽트 * 인터럽트처리메커니즘 ATmega128 인터럽트 2

인터럽트 * 인터럽트처리메커니즘 ATmega128 인터럽트 2 ATmega128 인터럽트 1 제 04 강 인터럽트 (Interrupt) 인터럽트개요외부인터럽트참고 ) FND 회로실습및과제 인터럽트 * 인터럽트처리메커니즘 ATmega128 인터럽트 2 인터럽트 ( 계속 ) ATmega128 인터럽트 3 * 인터럽트벡터 (P.104 표 7.1 참조 ) : 35 개 인터럽트 ( 계속 ) * 인터럽트허용 / 금지메커니즘 ATmega128

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

실험 5

실험 5 실험. apacitor 및 Inductor 의특성 교류회로 apacitor 의 apacitance 측정 본실험에서는 capacitor를포함하는회로에교류 (A) 전원이연결되어있을때, 정상상태 (steady state) 에서 capacitor의전압과전류의관계를알아본다. apacitance의값이 인 capacitor의전류와전압의관계는다음식과같다. i dv = dt

More information

온습도 판넬미터(JTH-05) 사양서V1.0

온습도 판넬미터(JTH-05)  사양서V1.0 온습도 조절기 Model:JTH-05 1. 제품 사양. [제품 구분] JTH-05A(입력 전원 AC), JTH-05D(입력 전원 DC) [전원 사양] JTH-05A 입력 전압 출력 전원 소비 전력 JTH-05D AC 90~240V DC 10~36V 12Vdc / Max.170mA Max.2W [본체 사이즈] ~ 온/습도 범위(본체): 사용 [0 ~ 50, 85%RH

More information

[8051] 강의자료.PDF

[8051] 강의자료.PDF CY AC F0 RS1 RS0 OV - P 0xFF 0x80 0x7F 0x30 0x2F 0x20 0x1F 0x18 0x17 0x10 0x0F 0x08 0x07 0x00 0x0000 0x0FFF 0x1000 0xFFFF 0x0000 0xFFFF RAM SFR SMOD - - - GF1 GF0 PD IDL 31 19 18 9 12 13 14 15 1 2 3 4

More information

(SW3704) Gingerbread Source Build & Working Guide

(SW3704) Gingerbread Source Build & Working Guide (Mango-M32F4) Test Guide http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History

More information

6_5상 스테핑 모터_ _OK.indd

6_5상 스테핑 모터_ _OK.indd 모델구성 적용모델 : 표준축형,, A 8K M 5 6 6 B Autonics motor 1: 은편축형만제공합니다. 2: Standard 결선방식은주문사양입니다. ( 단, 24각, A4K-G564(W), A8K-G566(W) 은제외입니다.) 모델구성 Q-42 모터형식 적용모델 : 기어드일체형,, 로터리액츄에이터형, 로터리액츄에이터 + A M 5 최대허용토크 모터상수

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - PLC제어응용-2차시.doc 과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,

More information

RVC Robot Vaccum Cleaner

RVC Robot Vaccum Cleaner RVC Robot Vacuum 200810048 정재근 200811445 이성현 200811414 김연준 200812423 김준식 Statement of purpose Robot Vacuum (RVC) - An RVC automatically cleans and mops household surface. - It goes straight forward while

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 6 th Lecture 유명환 ( yoo@netplug.co.kr) 1 2 통신 관련이야기 시리얼통신 관련이야기 INDEX 3 ATmega128 시리얼통신회로도분석 4 ATmega128 시리얼통신컨트롤러 (USART) 분석 5 ATmega128 시리얼통신관련레지스터분석 6 ATmega128 시리얼통신실습 1 통신 관련이야기 동기

More information

(6)

(6) 5-6. EV 모듈의 PWM 출력예제목표 : 본예제에서는 EV(Event Manager) 모듈의 PWM 출력에대해학습한다. DSP8x에는 3상 AC 모터를구동할수있는 조의 PWM과엔코더입력회로가있다. 본예제에서는이 PWM 출력을사용하여 DC 모터의속도를조절해보고, RC 회로로 PWM 를필터링하여사인파형을출력시켜본다. 사용회로고찰 : 3.3V AR Kx4 3

More information

1. 제품소개 1.1 제품소개 < 그림 1.1> 도트매트릭스모듈 하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 16x16 도트매트릭스모듈입니다. 또한당사 AVR, PIC, ARM(STM32F) 개발보드와 1P 점퍼클립케이블을이용하여연동이가능하

1. 제품소개 1.1 제품소개 < 그림 1.1> 도트매트릭스모듈 하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 16x16 도트매트릭스모듈입니다. 또한당사 AVR, PIC, ARM(STM32F) 개발보드와 1P 점퍼클립케이블을이용하여연동이가능하 16X16 도트매트릭스확장모듈 (P/N: LK-DOTM16) 이경남 L K 임베디드 2013 LK EMBEDDED version 3.0 페이지 1 1. 제품소개 1.1 제품소개 < 그림 1.1> 도트매트릭스모듈 하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 16x16 도트매트릭스모듈입니다. 또한당사 AVR, PIC, ARM(STM32F)

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

KMC.xlsm

KMC.xlsm 제 7 장. /S 에필요한내용 1] IGBT 취급시주의사항 ) IGBT 취급시주의 1) 운반도중에는 Carbon Cross로 G-E를단락시킵니다. 2) 정전기가발생할수있으므로손으로 G-E 및주단자를만지지마십시요. 3) G-E 단자를개방시킨상태에서직류전원을인가하지마십시요. (IGBT 파손됨 ) 4) IGBT 조립시에는사용기기나인체를접지시키십시요. G2 E2 E1

More information

중간고사

중간고사 중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX

More information

Lab 3. 실습문제 (Single linked list)_해답.hwp

Lab 3. 실습문제 (Single linked list)_해답.hwp Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp Lab 4. Circular singly-linked list 의구현 실험실습일시 : 2009. 4. 6. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 12. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Circular Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Circular

More information

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로 Lab. 1. I-V Characteristics of a Diode Lab. 6. 연산증폭기가산기, 미분기, 적분기회로 1. 실험목표 연산증폭기를이용한가산기, 미분기및적분기회로를구성, 측정및 평가해서연산증폭기연산응용회로를이해 2. 실험회로 A. 연산증폭기연산응용회로 (a) 가산기 (b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로 3. 실험장비및부품리스트

More information

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow

More information

61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&

More information

Microsoft Word - AM-2560PRO_V01 메뉴얼.doc

Microsoft Word - AM-2560PRO_V01 메뉴얼.doc ATMEGA 2560 모듈 ( Model : AM-2560PRO V01) 메뉴얼 ( 주 ) 뉴티씨 (NEWTC) 1 AM-2560Pro 소개 ATMega2560 16AU AVR 마이크로컨트롤러사용 256Kbit (32Kbyte) SRAM 내장 (ISSI IS62C256AL) 2줄짜리 2mm Header Pin이양쪽으로 50 핀씩배치되어있음. MAX3232 내장으로

More information

(b) 연산증폭기슬루율측정회로 (c) 연산증폭기공통모드제거비측정회로 그림 1.1. 연산증폭기성능파라미터측정회로

(b) 연산증폭기슬루율측정회로 (c) 연산증폭기공통모드제거비측정회로 그림 1.1. 연산증폭기성능파라미터측정회로 Lab. 1. I-V Characteristics of a Diode Lab. 1. 연산증폭기특성실험 1. 실험목표 연산증폭기의전압이득 (Gain), 입력저항, 출력저항, 대역폭 (Bandwidth), 오프셋전압 (Offset Voltage), 공통모드제거비 (Common-mode Rejection Ratio; CMRR) 및슬루율 (Slew Rate) 등의기본적인성능파라미터에대해서실험을통해서이해

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Kut-128_comm_board Kit 설명서 KUT-128_Com 실험키트 KUT-128_Com 실험키트의기능 (1) 초음파센서 4CH 7- Segment 가속도센서 자이로센서 RS-232 Wi-Fi Bluetooth Tex-LCD ATmega128 8EA LED ISP Connector 3Color Dotmatrix 1Color Dotmatrix 4EA

More information

COMFILE_VOL13_20140204.cdr

COMFILE_VOL13_20140204.cdr "다양한 산업현장에서 쓰이고 있는 컴파일 제품" 데이터 수집 데이터 수집용 필드 I/O 제품 "모드포트" 필드 I/O 전력 모니터링 로봇 제어 태양광 발전 트랙커 제어 CUPC-P80 CT1721C CB405 포장기 화력발전소-화력 감지 시스템 녹방지장치(용존산소제거장치) CT1721C CB280, CLCD-216 CUWIN3500 일회용 용기 성형기 항온항습기

More information

목차 1부. 보드 운영체제와 MCU 보드의 포트 2부. 전압과 전류 그리고 모터 드라이버 3부. 초음파 센서 4부. BOS Script 프로그래밍 5부. W2R -1 소개

목차 1부. 보드 운영체제와 MCU 보드의 포트 2부. 전압과 전류 그리고 모터 드라이버 3부. 초음파 센서 4부. BOS Script 프로그래밍 5부. W2R -1 소개 보스프로그램 언어 및 키트 활용에 관한 교육용 ppt (3차 수정) 목차 1부. 보드 운영체제와 MCU 보드의 포트 2부. 전압과 전류 그리고 모터 드라이버 3부. 초음파 센서 4부. BOS Script 프로그래밍 5부. W2R -1 소개 1부. 보드 운영 체제 와 MCU 보드의 포트 1-1.보드 운영 체제 (BOS :Board Operating System)

More information

KEY 디바이스 드라이버

KEY 디바이스 드라이버 KEY 디바이스드라이버 임베디드시스템소프트웨어 I (http://et.smu.ac.kr et.smu.ac.kr) 차례 GPIO 및 Control Registers KEY 하드웨어구성 KEY Driver 프로그램 key-driver.c 시험응용프로그램 key-app.c KEY 디바이스드라이버 11-2 GPIO(General-Purpose Purpose I/O)

More information

ATmega128 교재 - 8장 EEPROM.hwp

ATmega128 교재 - 8장 EEPROM.hwp 8.1 EEPROM 과 Flash Memory ATmega128에는프로그램메모리로서 128KB의플래시메모리를내장하고있고데이터메모리로서 4KB의 EEPROM을내장하고있다. EEPROM과플래시메모리는하나의뿌리에서발전해온매우유사한메모리이지만사용방법이서로다르다. 이것들은오늘날독립된메모리소자로서도널리사용되고있으므로충분히알아둘필요가있다. EEPROM(Electrically

More information

1

1 1 2 3 4 5 6 b b t P A S M T U s 7 m P P 8 t P A S M T U s 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Chapter 1 29 1 2 3 4 18 17 16 15 5 6 7 8 9 14 13 12 11 10 1 2 3 4 5 9 10 11 12 13 14 15

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729> 1주차 ATmega128의구조와메모리 Next-Generation Networks Lab. 1. ATmega128의특징 고성능, 저전력의 8 비트마이크로컨트롤러 진보된 RISC 구조 대부분단일클럭에서실행되는강력한 133개의명령어구조 16MHz에서거의 16MIPS로동작 32개의 8 bit 범용작업레지스터와추가된주변장치제어레지스터 2 사이클내에서수행되는강력한곱셈기내장

More information

Microsoft PowerPoint - 제5장 인터럽트 (HBE-MCU-Multi AVR).ppt [호환 모드]

Microsoft PowerPoint - 제5장 인터럽트 (HBE-MCU-Multi AVR).ppt [호환 모드] Chapter. 5 인터럽트 HBE-MCU-Multi AVR Jaeheung, Lee 목차 1. 폴링과인터럽트그리고인터럽트서비스루틴 2. ATMega128 인터럽트 3. 인터럽트로 LED 점멸시키기 4. 인터럽트로스톱워치만들기 인터럽트 1. 폴링과인터럽트그리고인터럽트서비스루틴 2. ATMega128 인터럽트 3. 인터럽트로 LED 점멸시키기 4. 인터럽트로스톱워치만들기

More information

CodevisionAVR C compiler 사용법 ( 요약 ) (1) 1.1 마이크로프로세서시스템회로도및동작 마이크로콘트롤러 ATmega128 내부회로도 AVR 의구조및종류 ATmega128 Pin 배치및내장 I/O 종류 A

CodevisionAVR C compiler 사용법 ( 요약 ) (1) 1.1 마이크로프로세서시스템회로도및동작 마이크로콘트롤러 ATmega128 내부회로도 AVR 의구조및종류 ATmega128 Pin 배치및내장 I/O 종류 A Lecture Note ATmega128 인터페이스 프로그래밍 원서 : 알기쉽게배우는 AVR ATmega128, 신동욱, 오창헌, Ohm 사 2014. 3. CodevisionAVR C compiler 사용법 ( 요약 ) (1) 1.1 마이크로프로세서시스템회로도및동작 1 1.2 마이크로콘트롤러 ATmega128 내부회로도 2 2.1 AVR 의구조및종류 3 2.2

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Text-LCD Device Control - Device driver Jo, Heeseung M3 모듈에장착되어있는 Tedxt LCD 장치를제어하는 App 을개발 TextLCD 는영문자와숫자일본어, 특수문자를표현하는데사용되는디바이스 HBE-SM5-S4210 의 TextLCD 는 16 문자 *2 라인을 Display 할수있으며, 이 TextLCD 를제어하기위하여

More information

Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역

Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역 Section 03 인터럽트활성화와인터럽트서비스루틴연결 33/82 Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역인터럽트활성화비트가 1 로셋되었을때

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

DTS-L300-V2 Specification Page 1 of 14 비접촉온도측정 원거리온도측정 High Accuracy Digital Interface : SPI Arduino UNO 예제코드제공 제품설명 DTS-L300-V2는접촉을하지않고원하는물체표면에온도를 50

DTS-L300-V2 Specification Page 1 of 14 비접촉온도측정 원거리온도측정 High Accuracy Digital Interface : SPI Arduino UNO 예제코드제공 제품설명 DTS-L300-V2는접촉을하지않고원하는물체표면에온도를 50 Page 1 of 14 비접촉온도측정 원거리온도측정 High Accuracy Digital Interface : SPI Arduino UNO 예제코드제공 제품설명 DTS-L300-V2는접촉을하지않고원하는물체표면에온도를 500ms 이내에정확하게측정할수있는온도센서모듈입니다. DTS-L300-V2는온도계산프로세서를내장하고있어정확한온도값을출력합니다. (Master

More information

Microsoft Word - DCMD-1000 사용자 메뉴얼.docx

Microsoft Word - DCMD-1000 사용자 메뉴얼.docx DCDM-1000(Ver.1.0 DC모터 드라이버 (DCMD-1000) 사용 설명서 V1.0 Last updated : March 6, 2014 1 / 10 DCDM-1000(Ver.1.0) 목차 1 소개 및 특징 1.1 소개 1.2 사양 1.3 특징 2 DC모터 드라이버(DCMD-1000) 사용법 2.1 전체결선도 2.2 Pin 설명 및 모드 설정 방법 2.3

More information

<4D F736F F D20C0DBC7B0C6ED5FBDBAC5D7C7CE20B6F3C0CEC6AEB7B9C0CCBCAD20B0B3B9DF2E646F63>

<4D F736F F D20C0DBC7B0C6ED5FBDBAC5D7C7CE20B6F3C0CEC6AEB7B9C0CCBCAD20B0B3B9DF2E646F63> 테핑라인트레이서개발하기 류대우 (davidryu@newtc.co.kr) 1. 센서보드 적외선센서 1. 적외선센서 (Photo Sensor) 라인트레이서나마이크로마우혹은다른마이크로로봇에서센서로사용하는것중가장많이사용하는것이 photo sensor입니다. 거리의측정에도사용되지만원거리는잘사용하지않고근거리를측정하고자할때사용되기도하며물체의유 / 무등많은곳에서사용되고있습니다.

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2 제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.

More information

Microsoft Word - PEB08_USER_GUIDE.doc

Microsoft Word - PEB08_USER_GUIDE.doc 0. PEB08 이란? PEB08(PIC EVALUATION BOARD 8bits) 은 Microchip 8bit Device 개발을쉽고편리하게할수있는보드입니다. 1. 다양한 8bit Device 지원 기존대부분의 8bit 보드의경우일부 Pin-Count만지원을하였지만, PEB08은 PIC10, PIC12, PIC16, PIC18의 DIP Type Package의모든

More information

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

<4D F736F F F696E74202D2037C0E55FC0CEC5CDB7B4C6AEC0C720B5BFC0DB2E707074>

<4D F736F F F696E74202D2037C0E55FC0CEC5CDB7B4C6AEC0C720B5BFC0DB2E707074> 7 장. 인터럽트의동작 한국산업기술대학교 이응혁교수 WWW.ROBOTICSLAB.CO.KR 1 7.1 인터럽트 (Interrupt) 개요 인터럽트개념 프로그램이수행되고있는동안에어떤조건이발생하여수행중인프로그램을일시적으로중지시키게만드는조건이나사건의발생 비동기적으로처리 다른프로그램이수행되는동안여러개의사건을처리할수있는메커니즘 인터럽트가발생하면마이크로컨트롤러는현재수행중인프로그램을일시중단하고,

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

untitled

untitled while do-while for break continue while( ) ; #include 0 i int main(void) int meter; int i = 0; while(i < 3) meter = i * 1609; printf("%d %d \n", i, meter); i++; return 0; i i< 3 () 0 (1)

More information

PowerPoint Presentation

PowerPoint Presentation 신호조절 (Signal Conditioning) 메카트로닉스 시스템의 구성 ECU 인터페이스 회로 (시그널 컨디셔닝) 마이컴 Model of 기계 시스템 인터페이스 회로 (드라이빙 회로) 센서 액츄에이터 (구동기) 기계 시스템 PN 접합 다이오드 [1] 다이오드의 DC 해석과 등가모델 [1] 다이오드의 DC 해석과 등가모델 [1] 다이오드 응용회로 [1] 다이오드

More information

Section 03 트랜지스터를이용한스위칭동작 16/45 트랜지스터의직류특성 활성 직류상황에서전류 I C 는전류 I B 보다 h FE 배만큼더많은전류가흐름» 베이스와이미터가순방향으로바이어스» 컬렉터와베이스가역방향으로바이어스 차단 만일 I B 가 0[A] 이면컬렉터전류

Section 03 트랜지스터를이용한스위칭동작 16/45 트랜지스터의직류특성 활성 직류상황에서전류 I C 는전류 I B 보다 h FE 배만큼더많은전류가흐름» 베이스와이미터가순방향으로바이어스» 컬렉터와베이스가역방향으로바이어스 차단 만일 I B 가 0[A] 이면컬렉터전류 Section 03 트랜지스터를이용한스위칭동작 15/45 스위치 ON/OFF 의전기적특성 트랜지스터와기계적인스위치를이용한 LED ON/OFF 동작비교 LED 를켜기위한회로 ([ 그림 5-6]) Section 03 트랜지스터를이용한스위칭동작 16/45 트랜지스터의직류특성 활성 직류상황에서전류 I C 는전류 I B 보다 h FE 배만큼더많은전류가흐름» 베이스와이미터가순방향으로바이어스»

More information

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습니다. 여러분모두 Windows 에서 hex editor(hex dump, hex viewer) 라는것을사용해보셨을겁니다. 바로바이너리파일을 16 진수

More information

HBE-MCU-Multi 로배우는 마이크로컨트롤러 (AVR 편 ) 마이크로컨트롤러기능 제 6 장타이머와카운터

HBE-MCU-Multi 로배우는 마이크로컨트롤러 (AVR 편 ) 마이크로컨트롤러기능 제 6 장타이머와카운터 HBE-MCU-Multi 로배우는 마이크로컨트롤러 (AVR 편 ) 마이크로컨트롤러기능 제 6 장타이머와카운터 타이머와카운터 1. 클럭과카운터 2. ATMega128 의타이머 / 카운터 3. 8 비트타이머 / 카운터의일반동작모드 4. 타이머로 LED 점멸시키기 5. 타이머로디지털시계만들기 타이머 / 카운터 타이머와카운터 정확한시간의측정이필요하다.( 자명종과스톱워치

More information

SMT-1722-1922-Kor.indd

SMT-1722-1922-Kor.indd SMT-2231 사용 설명서 첨부물 포장상자 개봉 후 제품은 튼튼하고 평평한 곳이나 설치장소에 놓고, 다음 내용물이 전부 있는지 체크하세요. TFT LCD 모니터 리모컨&건전지 VGA 신호케이블 전원코드 모니터 설치안내서 사용설명 CD 조작부 설명 전면조작부 적외선 센서 리모컨 센서 수신부 / PIP 동작중인 기능의 레벨증가 및 OSD메뉴 선택합니다.

More information

Microsoft Word - AM-SLCD_시리얼 LCD_ 메뉴얼.doc

Microsoft Word - AM-SLCD_시리얼 LCD_ 메뉴얼.doc 영문시리얼 LCD 모듈 ( Model : AM-SLCD) 메뉴얼 뉴테크놀로지컴패니 (N.T.C) 1 AM-SLCD ( 영문시리얼 LCD 모듈 ) 소개 영문 Character LCD 를 Serial 을이용하여터미널모드와커맨드모드로제어할수있다. 터미널모드는시리얼로출력되는 ASCII Code 데이터를 LCD 화면에보여주는기능이다. 커맨드모드는통신커맨드에해당하는데이터를수신하여

More information

OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech

OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech 1. 제품소개 1) 제품특징 OSTSen-PIR100은 UART 인터페이스를통하여인체모션감지 (PIR) 데이터를제공하는센서모듈입니다. 이센서모듈은사용자가편리하게다양한분야에적용할수있도록소형으로제작되었습니다. ( PIR: Pyroelectric

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information