'센서'에 해당되는 글 6건

  1. 2015.01.15 MMA7260Q_3AXIS (2)
  2. 2011.08.02 적외선통신을 이용한 문자찍기!! (12)
  3. 2011.07.12 초음파센서를 이용한 거리측정 및 모터제어 (35)
  4. 2011.05.13 하드웨어 설계 (45)
  5. 2011.05.10 CDS 센서특성 (14)
  6. 2011.05.10 5V로 12V FAN 제어하기 (1)
2015.01.15 16:42

기존에 3축 가속도센서 모듈을 가지고 있기때문에 이를 활용.

- 감도 (1.5g/2g,4g/6g) 선택가능

- 저전압 설계 (2.2V ~ 3.6V)

- 방식은 ADC로 데이터 X,Y,Z 출력


 파일

 3AXIS.pdf



MMA7260Q의 경우 Zero g offset 값은 1.65입니다. (3.3V/2 = 1.65V)

Sleep Mode 진입시 : 3uA


또한 DSP의 ADC 분해능은 2^12=4096Bit이기때문에 Atmega 10Bit보다 정밀하게 측정 할 수 있다.


예를 들면 다음 아래와 같다.


10bit 분해능 : 3.3V / 1024 = 3.223mV

12bit 분해능 : 3.3V / 4096 = 0.805mV 


로 계산된다. 이는 10bit 보다 12bit가 약 4배 정도 분해능이 좋다고 할 수 있다. 

이에 자세한 내용은 추후 공부하면서 부가적으로 설명하겠다.



이는 기준점에 따라 X,Y,Z축이 변경 됨을 확인 할 수 있다.


다음편 연재....







'' 카테고리의 다른 글

MMA7260Q_3AXIS  (2) 2015.01.15
Posted by 숭덕이
안녕하세요 숭덕이 박제현입니다. 오랜만에 이렇게 글을 쓰는거 같네요 !!!
음 일요일날은 IR센서를 이용한 통신을 할 건데요 !! 간략하게 설명만 하고 일요일날 자료를 올리겠습니다.
많은 자료조사와 테스트는 해보지 않았으나 리모콘 수신용이면 발광부에 케리어만 실어주게 되면 데이터전송이 가능할거
같아 이렇게 구매를 해서 테스트 해볼 예정입니다. 빨리 테스트 해보고 싶지만 졸리네요 !!!!!!!



수광부(603LM)


발광부(CL-1L5)




                   출처 : http://www.devicemart.co.kr/mart7/mall.php?cat=049001000&query=view&no=6900


                                                                    603LM
                출처 : http://www.devicemart.co.kr/mart7/mall.php?cat=049001000&query=view&no=6899

                                                                  
                                                                        CL-1L5R

ADC 계산
16Mhz / 128 분주 = 125kHz
1 / 125000 = 0.000008 = 8us

채널0 을 가정해서 A/D한다면 최초에 25클럭이 소요되고 그 이후 13클럭이 되므로
( 25 + 13 ) * 8 = 304us

UART 계산

1/9600bps = 1.041666667

start(1bit) + data(8bit) + stop(1bit) = 총 10bit
1.041666667 * 10bit = 0.001041666667

2byte 전송시
0.001041666667 * 2 = 0.0020833333...

답은 : 2.0833333333ms


-----------------------------------------------------------------------------------------------------
자 저는 리모콘형식의 수광부와 발광부를 구매했고 38khz의 주파수로 테스트를 해보겠습니다.

38khz일떄 펄스 1개는 약 26us 나옵니다.

16Mhz / (1+410) = 0.0000256878 = 26us

1 / 0.0000256878 = 38khz 입니다. 계산은 다 나온거 같네요!!!

저도 처음으로 적외선통신을 해보는것이라 방식이 어려운거 같기도 하네요

일단 집에 가서 납땜 후 테스트까지는 몰라도 한번 해보겠습니다.

발광부에 트랜지스터를 사용해야하는데 그렇게 안하고 거리가 가까운곳에서 테스트 예정이기 떄문에

트랜지스터 없이 그냥 직렬로 연결해서 테스트하겠습니다.

일단 CP2102로 USB to Serial로 적외선통신값을 컴퓨터 하이퍼터미널에 찍기 위한 회로도 입니다.




 자 LED는 적외선통신시 CP2102를 통해 키보드로 1번을 눌렀을 시 적외선센서로 통신을 통해 반대편에 있는 LED로 수신을
 표시하기 위한 장치로 회로를 구성하였습니다.


아래 그림은 PB5포트에서 38khz PWM파형이 나오며, TX단자에서 데이터를 싫어주고 발광부로
내보내게 된다.


PB5와 TX단자를 NOR 했습니다. 둘 다 LOW 일때 HIGH가 출력이 되므로 LED에 PW ON이 됩니다.
RS-232 TX 파형은 아래 그림과 같이 LOW일때 데이터출력이 됩니다.




아래 그림은 위에 그림과 같은 건데 PB5와 TX단자를 NOR 했을 2포트의 입력이 LOW일때, 출력은 HIGH가 출력이 됨으로써
LED PW ON 이 됩니다.



수광부 603LM은 38khz의 Frequency를 가지고 있으며, Supply Voltage는 5.5V 이다.
이 단자는 RX에 물려서 TX에 나온 데이터 38khz를 갖는 데이터를 받아 처리한다.




2011년 8월 5일 새벽 12:26분 오늘은 흠냥 부품이 많이 없던 탓인지 휴 잘안되네!!! TX보내기 귀찮아서 while문안에
TX통신함수를 사용하여 1 ~ 4까지 반복문을 돌리고 수광부에서 1,2,3,4를 체크해서 LED 불키는것을 하는데 흠냥..
수광부 이놈의 시키가 왜 반응을 안하지 ㅡㅡ;;; 내일은 필히 2개의 과제를 끝내고 ARM과제를 하겟엉 기다려라...


Apple | iPhone 3GS | Normal program | Average | 1/10sec | F/2.8 | 3.9mm | ISO-800 | No flash function

 




 



603LM은 37.9khz의 주파수만 감지하는것이 아닙니다. 다른 주파수도 감지하지만 37.9khz에 대해서 감도가 제일 크다는것을 의미합니다. 적외선센서를 사용하면 발광부에서 수광부로 데이터를 전송하는데 대기중의 노이즈가 섞여 수신이 될 수도 있습니다. 이러한것을 조금이나마 줄이기 위해 발광부에 특정 주파수를 보내게 됩니다. 이러한 과정을 인코딩이라고 하며 또한 펄스파를 캐리어라고 부른다고 합니다. 저는 37.9khz를 사용했기때문에 1초에 37900번의 일정한 펄스파를 발광부에서 쏘게 됩니다. 
이 센서는 Band Pass Filter로 설계된 센서로 캐리어주파수는 증폭을 하고 그 외에 주파수는 증폭률이 캐리어주파수보다 작게 설정되어 있어 노이즈를 필터링에 용이 합니다.


 


 

 드디어 다했군요!!!! 일찍 퇴근 후에 바람 좀 쐬고 여유롭게 놀다가 10분만에 뚝!!!!!!!쿄쿄쿄 LED 한개가 DIE ^^
CP2102칩을 안가져와서 그냥 TX에 임의에 값을 넣어주고 쏴주었습니다. 지갑으로 가렸을때 LED가 멈추는것을 볼 수있습니다. LED가 멈추면 발광부에 캐리어를 싫어서 보내도 수신부에서 받지를 못하면 쓰레기값이 됩니다. 지갑을 치우는 순간 1초에 LED가 한칸씩 움직입니다.
                  

#include 
#include  

char rx; interrupt [USART0_RXC] void usart0_rx_isr(void)
{    
	rx=UDR0;     
	if(rx=='2')PORTB=2;    
	if(rx=='3')PORTB=4;    
	if(rx=='4')PORTB=8; 
} 

void TX0_CHAR(char Sdata){ while(!(UCSR0A&0x20)); UDR0=Sdata; } 

void main(void)
{    
	UCSR0A=0; UCSR0B=0x98; UCSR0C=6; UBRR0H=416/256; UBRR0L=416&0xFF;  //2400     
	DDRB=0xff; OCR1A=210;    
	TCCR1A=0x40; TCCR1B=9; TCCR1C=0x80;     
	#asm("sei")    
	
	while(1)
		{       
		TX0_CHAR('2');     delay_ms(1000);   
		TX0_CHAR('3');      delay_ms(1000);  
		TX0_CHAR('4');     delay_ms(1000);           
		}
}   
  
                                                  

Posted by 숭덕이
안녕하세요 숭덕이 박제현 입니다. 회사에서 일끝나고 또 의자에 앉아 이렇게 글을 남깁니다. 조금 있으면 블로그시작한지 음 기억이 안나요!!!!!!!!암튼 초음파로 거리측정하고 모터를 움직여보겠습니다..


                                                             데이터시트
 

 

 





Apple | iPhone 3GS | 2011:07:12 22:03:03

 주파수 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)
사용 편의성
3 )
MQ-6 이란 반도체식 가스 센서 선정


 
        -
     
LPG, 부탄, 프로판, LNG, 담배연기 등의 검출이 가능하다.


               전원부


전원단은 레귤레이터로 9V의 전압값을 5V로 낮추어 사용하였다. LM7805를 사용하였으며, 레귤레이터 주변에 캐패시터를 달아두어 전원노이즈 및 전원안정성을 보장하기 위해 사용하였다.

            MCU

MCU 사진은 첨부하지 않도록 하겠다. 다들 이 분야에 일을 하시는 분이라면 Atmega128이라는 칩을 알것이라는 존재하에 작성하였으니 참고바랍니다. 제가 회사에서 사용하는 칩은 STM32 ARM이지만 대략적으로 집에서 가지고 노는 칩은
Atmega128입니다.

         
          가스센서



가스 센서의 경우 5V 전압으로 연결하여 작동시켰습니다. 센서부분은 한쪽에 VCC를 다른 한쪽은 신호 출력으로 사용되어 MCU PORT로 연결했습니다. 출력 부분에 가변 저항으로 신호의 값을 변화시켜 임의에 값에 조절하게 해놓았습니다.
10K 고정 저항을 직렬로 연결하여 신호의 최대치를 2.5V를 넘지 않도록 분압을 시켰습니다.
ADC의 기준 전압을 내부 2.56V를 이용하였으므로 기준 전압 보다 높은 전압을 측정할 수 없기 때문에...


             경고 및 경보 관련 회로



위의 회로도는 LED3개를 이용하여 정상 상태일 때, 중간 경고 수준 상태일 때 최고 경고 수준 상태일 때를 각각의 LED ON 함으로써 시각적 표현을 하였습니다.






소스는 댓글에 남겨주시면 메일로 보내드립니다.





'AVR 8BIT > 가스+경보기' 카테고리의 다른 글

하드웨어 설계  (45) 2011.05.13
가스센서란?  (0) 2011.05.13
Posted by 숭덕이
조도 센서(CDS)

  – 조도 센서는 광센서의 가장 기본적인 센서로서, 빛의 밝기에 대하여 전기적인 성질로 변환시
     켜주는 역할을 하는 센서

  – CDS는 가장 보편적으로 사용되는 조도 센서로서 밝기에 비례하여 저항이 선형적으로 증가
    하는 것이 아니라 로그 그래프에 가까운 형태를 그리기 때문에 정확한 Lux 값을 구하기보다
     는 “밝다 / 어둡다” 정도만을 판별하기에 적합한 센서

  – 다른 이름으로는 광도전셀이라고 불리기도 하며 어두운 곳에서는 절연체와 같이 저항이 높아
     졌다가 가시광선이 닿으면 도체와 같이 저항이 낮아지는 성질을 가짐

   – 이 센서는 고감도, 소형, 저가격, 가시광선에 민감하다 등의 장점이 있지만 반응시간이 느려
     즉각적인 반응을 필요로 하는 센서에는 적합하지 않다. 광량이 많을 시 빨라지는 등 광량에
     따라 반응시간이 달라지긴 하지만 오히려 불완전한 요소가 될 수 있다.

   – 정확한 Lux의 수치를 측정하고 싶다면 포토다이오드 소자를 사용하여야 하며, CDS와 같이
     광센서의 일종이며 가시광선부터 적외선까지 다양한 영역의 광원을 감지할 수 있지만 가격이
     상대적으로 비싸고 주변회로가 복잡해진다는 단점이 있다. 하지만 밝기대비 저항 값이 선형적
     으로 나와서 수치화하기 좋고 프로그램 소스가 간단해진다는 장점도 있다.



     GL5516을 예를 들면 어두울때 200K옴 10Lux에서 5~10k옴으로 나와 있으므로 10LUX 측정 하려고 한다면
     저항은 7.5K옴을 사용 하면 가장 오차가 적은 입력을 받을 수 있다.
     AVR에서는 ADC 입력 후 2.5V에서 10Lux가 된다. (오차가 심하므로 범위를 둬야 한다.)



회로도 첨부












'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 숭덕이