'소스'에 해당되는 글 4건

  1. 2011.07.12 초음파센서를 이용한 거리측정 및 모터제어 (35)
  2. 2011.05.12 트래커 SOURCE
  3. 2011.05.11 완성 --(1)
  4. 2011.05.10 5V로 12V FAN 제어하기 (1)
안녕하세요 숭덕이 박제현 입니다. 회사에서 일끝나고 또 의자에 앉아 이렇게 글을 남깁니다. 조금 있으면 블로그시작한지 음 기억이 안나요!!!!!!!!암튼 초음파로 거리측정하고 모터를 움직여보겠습니다..


                                                             데이터시트
 

 

 





 주파수 40Khz 
 최대 측정거리 3~4M 
 최소 측정거리 1CM 
 입력전압 5V 
 초당 측정횟수  1000ms(1초) 한번 측정시 50ms 1초당 약 20회
 입력신호 10usec 
 소비전류 4mA 
 크기 43 * 20 * 17 mm 
 스펙참조   (http://eleparts.co.kr/front/productdetail.php?productcode=005035002004000009&sort=)
 SRF-05 Single Pin Mode 



 

SRF-05에 제가 쓸 핀은 VCC,Echo,Trigger,Gnd 4개의 핀으로 회로와 초음파를 사용해보겠습니다.
초음파는 민감하고 잘 고장나는 센서이므로 회로도를 잘 보고 결선을 해주셔야 합니다. 이제 한번 이 센서를 먼저 분석해보도록 하겠습니다. 현재 가지고 있는 센서가 예전에 쓰던건데 고장난것인지 아닌지는 정확하게 모르겠으나 일단 초음파센서에 대해 적고 그 다음 빠른시일내에 테스트 해보겠습니다.

데이터시트에 보시면 타이밍 다이어그램이 있습니다. 그 그림을 가지고 설명을 드리겠습니다.


자 이 센서의 타이밍도 입니다. 정확한 펄스를 안맞춰도 되지만 정확한 값을 받지는 못하겠죠? 그래서 데이터시트에 나와있는 그대로 하면 좋습니다. 값은 나와도 값이 정확하지가 않으면 센서는 무용지물입니다.

처음 타이밍도를 보면 10us동안에 High로 되어 있습니다. 그 다음 Low로 내려간 상태에서 거리측정이 되시는것을 보실 수 있습니다. 10us의 펄스를 가하게 되면 2번째의 그림에서와 같이 8 cycles의 초음파가 발생합니다.


자 여기서 58us일때는 cm로 계산이 되며 148us는 inches로 계산된다고 나와있네요 제가 항상 실수하는것이
데이터시트를 정확하게 안보고 일단 만들어보고 그 다음에 실수한 부분을 찾는 다는 겁니다.
잘못되긴 했어도 만드는것이 재미있다 보니 어쩔 수 없이 안되더군요.

흠냥 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

초음파의 음파속도는 340m/s 입니다. 초음파는 음파를 발생하고 벽이나 장애물에 부딪치고 돌아오는 시간을 계산해보면 S= V * T/2 로 했을시 거리가 나오게 됩니다. 조금 어렵네요 저는 수학을 잘 못해서............



저도 예전에 한 2년전에 초음파센서로 거리측정한 후에 한번도 사용해보지를 못해서 정확하지는 않아서 인터넷을 찾아보니 1 ~ 2M 까지는 오차가 거의 없고 그 이상에서 1cm 정도 오차가 난다고 합니다... 참고하세요



 

자 이제 LCD에 대해 간단하게만 설명해야겠죠?????


자 집에 없는게 없군요 LCD도 있고 ^^ 일단 회로를 봐야겠군요

그냥 간단히 하고 넘어가겠습니다. LCD는 그다지 그렇게 많은 설명이 필요없을거 같습니다. 1번핀은 GND네요
당연히 GND는 연결을 해야겠지요?? 자 다음은 VDD 저는 여기에 5V를 연결하겠습니다. ㅋㅋㅋㅋ
자 이제 새로운게 나왔네요 Vo 흠 머지 Contrast 음 LCD에 선명도를 나타내는군요 !!!!   원래 가변저항을 써야하는데 제가 가난한 나머지 1k옴을 연결하고 GND와 연결하겠습니다.  가변저항을 연결하실때는 10K옴 가변저항을 사용하세요.
생각해보니까 이렇게 하난하나 설명하는거 보다 그냥 회로도를 올려드리는게 좋을거 같습니다. 다음에 한번에 해서 올려드리겠습니다...............


LCD TEST 완료....



주말에 조금 노느냐고 공부를 못했습니다. 지금 시간이 7월 17일 11시 24분 입니다.

지금 막 초음파 센서를 가지고 거리측정을 해봤습니다.

동영상을 찍어서 올리려고 했는데 전송잭을 안가져와서 그냥 일단 사진으로만 올리도록 하겠습니다





 #include <mega128.h>
#include <stdio.h>
#include <delay.h>
#include <lcd.h>
#asm
   .equ __lcd_port=0x1B ;PORTA
#endasm

#define Trigger         PORTD.4 //초음파 트리거
#define Echo            PINE.4 //초음파 에코

unsigned int i=0;
char s[21];


unsigned int getEcho(void){
    unsigned int range;
    while(!Echo);                  // Wait for echo pin to go high
    TCNT1=0; TCCR1B=2;            // 1:8 prescaler = 0.5us
    while(Echo);                   // Wait for echo pin to go low
    TCCR1B=8; range=TCNT1/116;   // the range in CM
    return(range);
}

void main(void){
    unsigned int range;
    DDRB=0x60;
    DDRD=0x10;
    DDRE=0x00;
    TCCR1A=0; TCCR1B=8;    // Set timer up in CTC mode
    delay_ms(100); lcd_init(16);
    while(1){    
        Trigger=1; delay_us(10); Trigger=0;    // 10uS
        range = getEcho(); 
        lcd_gotoxy(0, 0); sprintf(s,"Bongpjh");   lcd_puts(s);
        lcd_gotoxy(0, 2); sprintf(s,"Jae Hyun=%u cm", range); lcd_puts(s);
      
   
        if(range<30)
       {
       PORTB=0x20, delay_us(1300)  , PORTB=0x00, delay_ms(23);
       }                                                            
        else if(range<50)
       { 
       PORTB=0x20, delay_us(1050)  , PORTB=0x00, delay_ms(23);
       }
    
    
    }
  }



Posted by 숭덕이

댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. 이민철

    안녕하세요.자료 잘봤습니다.제가 이걸로 과제전 해보려고 하는데 지금 만드신거는 초음파를 손에 닿을때마다
    거리를 측정하나요?혹시 버튼으로도 제어가 가능하나요?

    2011.10.05 11:28 [ ADDR : EDIT/ DEL : REPLY ]
    • 폴링방식으로 계속 측정이 가능하며 버튼으로 동작하게 할 수도 있습니다...

      2011.10.05 11:54 신고 [ ADDR : EDIT/ DEL ]
  3. 차수현

    800w bldc모터 36v 도 제어가 가능할까요 ㅠ?
    거리가 3m정도가 되면을 원래시속에서 5km정도로 가도록 해보고 싶은데
    사실 고등학생이여서 모르는게 많아요 ㅠㅠ
    꼭도전해보고싶은거라서요ㅎ
    대략적으로 어떻게 해야하는지좀 부탁드려요 ...ㅠㅠ 어떻게든 해보겠습니다,~!!
    디스바이즈에서 보니까 레이져센서 같은거는 5v 던데 36v같이 높은단위는 어떻게해야하고
    또 회로도 구성을 해도 c언어를 다룰줄 알아야 쓸 수 있나요 ?

    2011.11.11 00:10 [ ADDR : EDIT/ DEL : REPLY ]
    • 숭덕이

      음 모터제품명도 모르겠고 음 데이터시트를 봐야 알 수 있지 않을가요??

      올데이터시트에 가서 제품명 치면 그 제품에 대한 상세정보가 나옵니다.

      2011.11.11 12:15 [ ADDR : EDIT/ DEL ]
  4. 익명

    비밀댓글입니다

    2011.11.17 10:06 [ ADDR : EDIT/ DEL : REPLY ]
  5. 김민근

    저기 궁금한게 있어 글남깁니다.lcd연결에서 15와16번핀도 연결이 되야하나요?? 위에 그라운드와 5V입력이 되는거 같은데.. 연결이 되야하나요???

    2011.11.19 19:02 [ ADDR : EDIT/ DEL : REPLY ]
  6. 궁금한것이 있는데 초음파센서를 이용해서 값을 측정할때 다른요소는 상관안해도 되나요?
    예를 들어 주변환경의 빛이나 어두운 환경이라던지 등등

    2012.02.08 22:01 [ ADDR : EDIT/ DEL : REPLY ]
  7. 강희원

    댓글달구 가라고 옆에서 아들이 그러네요..... 울 아들이 무척 좋아해서 한 번 만들어 보려 합니다.
    다음에 도움 부탁 드립니다.

    2012.02.15 23:49 [ ADDR : EDIT/ DEL : REPLY ]
    • 숭덕이

      알겠습니다^^ 다음에 연락주세요~~

      2012.02.16 21:29 [ ADDR : EDIT/ DEL ]
  8. 김승호

    지금 졸업작품으 고민하는도중 필요한게 여기 있었네요!
    빨간색 기판이랑 LCD 제품이 뭔지좀 알고싶네요 ㅎ 그리고 저렇게 프로그램을 짜서 회로에 어떻게 입력을하나요 .?
    지금 하려는것의 구동방식이.. 버튼을누르면 전동실린더 밀리고 전동실린더 앞에 있는 초음파센서가 벽을감지해서 10cm정도 거리에서 작동이 정지되는 방식인데.. 조언좀부탁드립니다 ㅠㅠ

    2012.03.19 13:51 [ ADDR : EDIT/ DEL : REPLY ]
    • 숭덕이

      무슨 말씀을 드려야 할지 모르겠습니다.
      AVR책을 사셔서 대충 한번 읽어보시고
      천천히 따라해보시면서 응용해보세요!!!

      2012.03.21 22:13 [ ADDR : EDIT/ DEL ]
  9. 안녕하세요..

    폐사는 충남 아산에 소재하고 있는 자동차부품기업입니다.
    먼저 회사소개서 링크하여 송부하오니 참조바랍니다.

    파일명 : 광진_국문.wmv, URL : http://webdisk.kwangjin-kr.com:80/cgi-bin/nbox.cgi?page=DiskLinkDown®info=20111024182551746521

    폐사 선행개발품 중 초음파센서를 제어해야 하는 아이템이 있습니다.
    하여 초음파센서 제어가 가능 하시다면 회신 부탁드리겠습니다.

    간략히 설명드리면, 초음파센서의 신호를 받아 당사 기구물을 제어하는 ECU 개발입니다.
    귀사에서 정책적으로 개발에 참여의사가 있으시다면 연락주십시오.

    010-3246-8133, 041-421-5886

    이상/수고하십시오

    2012.03.27 13:22 [ ADDR : EDIT/ DEL : REPLY ]
  10. jack


    질문하나드리겠습니다.

    의료용 목적으로 사용시에, 초음파센서를 이용하여 척추의 움직임의 변위도 측정할 수 있는지좀 알려주세요~

    2012.05.17 10:40 [ ADDR : EDIT/ DEL : REPLY ]
  11. 익명

    비밀댓글입니다

    2012.10.30 21:30 [ ADDR : EDIT/ DEL : REPLY ]
  12. 나나

    여기에 사용된 부품좀 알수 있을까요??
    양면기판, SRF-05 또 뭐가 필요한가요??

    2012.12.24 14:29 [ ADDR : EDIT/ DEL : REPLY ]
  13. 나나

    상세하게 부탁합니다. 와이여 등등,,,

    2012.12.24 14:30 [ ADDR : EDIT/ DEL : REPLY ]
    • 숭덕이

      LCD 20X4, MEGA128 , SFR(초음파), 저항 및 캐패시터, HS-311
      사용하였습니다. 와이어는 일반적은 래핑와이어 입니다.

      2012.12.27 09:42 [ ADDR : EDIT/ DEL ]
  14. 박형규

    잘 보고 가요 항상 참고 하는데 도움이 되어요..^^

    2013.02.05 15:35 [ ADDR : EDIT/ DEL : REPLY ]
  15. 이석훈

    저기 죄송한데 에이티메가 128 입문 단계인데..

    저기 atm 128 회로를 자세히 볼수있을까요??

    정보있으시면 lsh2077@naver.com 으로 메일 한통 쏴주실수잇나요?ㅎㅎ

    2013.02.19 19:46 [ ADDR : EDIT/ DEL : REPLY ]
  16. 익명

    비밀댓글입니다

    2013.05.14 16:31 [ ADDR : EDIT/ DEL : REPLY ]
  17. 센스쟁이

    ATMEGA 말고
    msp430으로 만들어보려하는데 코딩이 많이 다른가요..?

    2013.06.01 12:04 [ ADDR : EDIT/ DEL : REPLY ]
  18. 신명헌

    ATmega128초보자입니다.

    위의 그림의 센서와 ATmega128 이용하여 거리측정계를 제작하고자합니다만

    회로와 소스파일을 공유가 가능한지 궁금합니다.

    shinmh2623@naver.com으로 보내주시면 감사하겠습니다.

    2013.11.11 21:18 [ ADDR : EDIT/ DEL : REPLY ]
  19. 익명

    비밀댓글입니다

    2015.06.02 15:23 [ ADDR : EDIT/ DEL : REPLY ]
  20. 공학도

    전자공학 배우는 학생입니다.
    위와 같은 실험을 직접 해보는 중인데 제가 부족한게 많네요.

    소스 헤더파일과 회로도를 받아 볼 수 있을까요?

    꼭 부탁 드립니다..
    kimje0713@naver.com

    2015.06.02 15:42 [ ADDR : EDIT/ DEL : REPLY ]
  21. 익명

    비밀댓글입니다

    2015.12.08 12:54 [ ADDR : EDIT/ DEL : REPLY ]

원본소스는 아닙니다. 참고로 사용하실 분만 가져가서 수정하셔서 사용해주세요. 
온도센서도 함께 되어있는데 분해능을 정확하게 하지않았으며, 소스에서 수정 후 사용바랍니다.

퍼가실때는 필히 댓글 남겨주시기 바랍니다.



#pragma opt-
#include 
#include 
#include 

#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include  


char str[30];
int ADC_I;
float ADC_F;

void CH1(void);
void CH2(void);
void CH3(void);
void CH4(void);
void RC_Motor(int angle){ // angle : -90도 ~ +90도
    int i;
    if(angle<-90)angle=-90;
    if(angle> 90)angle= 90;
    i=(angle+ 90)*20 +1500;
    OCR1A=i; //PB5
   
}


void main(void){
  
  DDRB=0xff;  
  TCCR1A=0xAA; // FAST PWM
  TCCR1B=0x1A; // 8분주=0.5usec
  OCR1A=3000;  // 1500usec=0도
  
  ICR1=47999;  // 0.5usec*48000=24000usec=41.67Hz
  DDRF=0xff;
  PORTF=0xff;
  DDRC=0xff;

   lcd_init(16);
  
  
  while(1){
  CH1();  
  CH2();  
  CH3(); 
  CH4();                      
          }
  }

void CH1(void){
  ADMUX=0;
  ADCSRA=0xE7; //프리런닝 ADC0 한개만 사용 함 
  delay_ms(50); 
  ADC_I=ADCW;
  ADC_F=(float)ADC_I * 5.0/1023.0;
  lcd_gotoxy(0, 0);
  sprintf(str,"CDS0 = %4.2f V", ADC_F); 
  lcd_puts(str);
 delay_ms(50); 
 if(ADC_F < 4.95){
    RC_Motor(-100);  
    delay_ms(1000);}
   
  };


void CH2(void){
  ADMUX=1;
  ADCSRA=0xE7; //프리런닝 ADC0 한개만 사용 함 
  delay_ms(50); 
  ADC_I=ADCW;
  ADC_F=(float)ADC_I * 5.0/1023.0;
  lcd_gotoxy(0, 1); 
  sprintf(str,"CDS1 = %4.2f V", ADC_F); 
  lcd_puts(str);
  delay_ms(50);
    if(ADC_F < 4.95){
    RC_Motor(-30);  
    delay_ms(1000);
    
    }
        
  };
 
void CH3(void){
  ADMUX=2;
  ADCSRA=0xE7; //프리런닝 ADC0 한개만 사용 함  
    delay_ms(50);
  ADC_I=ADCW;
  ADC_F=(float)ADC_I * 5.0/1023.0;
  lcd_gotoxy(0, 2);
  sprintf(str,"CDS2 = %4.2f V", ADC_F); 
  lcd_puts(str);
  delay_ms(50);
  if(ADC_F < 4.95){
    RC_Motor(30);  
    delay_ms(1000);
    }
    
      
  };
                 
                   
void CH4(void){
  ADMUX=3;
  ADCSRA=0xE7; //프리런닝 ADC0 한개만 사용 함  
  delay_ms(50);
  ADC_I=ADCW;
  ADC_F=(float)ADC_I * 100/204.8;
  lcd_gotoxy(0, 3);
  sprintf(str,"LM35DZ = %4.2f ", ADC_F); 
  lcd_puts(str);
  delay_ms(50); 
  };





'AVR 8BIT > CDS 태양트래커' 카테고리의 다른 글

트래커 SOURCE  (0) 2011.05.12
완성 --(2)  (8) 2011.05.12
완성 --(1)  (0) 2011.05.11
HS-311  (3) 2011.05.10
CDS 센서특성  (14) 2011.05.10
Posted by 숭덕이

댓글을 달아 주세요




메인보드다 CPU는 Atmega128 MCU를 사용했으며 CLCD에 CDS 3개를 사용했다...
좀 더 확실하게 사진만 올리고 완성--(2)에 소스와 회로도를 첨부하고 자세한 설명을 거기서 하도록 하겠다.



CDS다.. 빛을 전기로 바꿔주는 역활을 하는 센서로 3개 해가 뜨는 방향으로 두면 빛의 세기에 따라 모터가 회전한다.




HS-311 모터이다. 5V로 제어하였으며 PWM으로 OCR 제어했다.... 동영상은 다음에 첨부하도록 하겠다..

솔라셀이다. 빛을 전기로 바꿔주는 솔라셀 친환경적이다. 솔라셀 살 돈이 부족하여 싼거로 구매하여 붙여놨다.
배터리로 연결해놨는데 일단 모터에 붙여놨는데 모터가 동작하면서 떨어졌다....먼가 부족해 ^^

 회로도  ORCAD로 첨부해드리겠습니다.
 소스 코드비젼으로 작성하였습니다 
 동영상 다음에 연재하겠습니다. 
 질문  질문은 삼가하겠습니다. 다만 질책은 받겠습니다.




 

'AVR 8BIT > CDS 태양트래커' 카테고리의 다른 글

트래커 SOURCE  (0) 2011.05.12
완성 --(2)  (8) 2011.05.12
완성 --(1)  (0) 2011.05.11
HS-311  (3) 2011.05.10
CDS 센서특성  (14) 2011.05.10
Posted by 숭덕이

댓글을 달아 주세요

2N2222 트랜지스터 데이터시트


시뮬레이션 한 결과(프로테우스)

 2N2222A - NPN TR 40V/0.8A/0.5W/300MHz
모터는 기본적으로 두배 이상의 전류가 흐를 수 있도록 회로를 설계해야한다.

(TR)
AVR(혹은 8051) 포트를 TR 베이스에 연결 해서 TR을 동작 시킨 다고 하면
베이스 저항은 2K~4.7K 정도를 많이 사용 합니다.(범용 TR 경우)
NPN TR은 포트 출력이 0V이면 동작 안하고 5V일 때에 동작 합니다.
PNP TR은 포트 출력이 5V이면 동작 안하고 0V일 때에 동작 합니다.


 VCEO:
베이스(B)를 오픈했을 때에 컬렉터(C)와 이미터(E)에 걸리는 최대전압.
(단순히 VCE로 표시하는 경우도 있다)

IC:
최대 컬렉터(C) 전류.

PC:
주위온도(Ta)=25℃에서 연속해서 소비시킬 수 있는 최대 컬렉터(C) 손실(방열기 없음)

hFE:
이미터(E) 접지에서의 직류에 대한 전류증폭률(IC÷IB).

fT:
주파수를 높여가면 증폭 능력이 저하하는데, 베이스 전류(IB)와 컬렉터 전류(IC)가 같아지는 주파수.
[직류증폭을 할 수 없게 되는 주파수(트랜지션 주파수)]

 






'AVR 8BIT > 12V 온도 팬제어' 카테고리의 다른 글

완성--(1)  (0) 2011.05.11
LM35DZ 온도센서 특성  (5) 2011.05.10
5V로 12V FAN 제어하기  (1) 2011.05.10
Posted by 숭덕이

댓글을 달아 주세요

  1. 하드웨어좀..

    안녕하세요 지금위 2N2222A 소자를보고 사용해볼라하는 학생입니다.
    저도 5V로 12V짜리 팬을 돌려볼라하는데요
    5V에 2K옴 연결해서 배이스에 집어넣구
    커넥터엔 팬을달구 전압인가안하고
    에미터에 그라운드를 집어넣었는데 안되서요 혹시 제가하는방법이틀린건가여??
    커넥터에 걸리는전압이 1.5v가략나오구여

    2012.12.01 15:20 [ ADDR : EDIT/ DEL : REPLY ]