[SENSOR]/기타센서2010. 10. 14. 13:30

근접센서 테스트

근접센서 테스트
맥슨모터 제어기 DIO를 이용하여 근접센서 테스트를 했었는데...
센싱이 안되는 현상이 발생한다.
 
문제의 원인은 데이터시트에 IO범위가 정확하게 나타나 있지 않아서 혼동이 있었던것 같다.
24V모터를 사용하고 IO전원을 5V를 입력하기 때문에 당연히 IO입력범위가 5V일거라 생각해서 출력 전압을 분압하였는데...
IO에 대해 좀더 자세한 데이터 시트를 찾아 보니 입력범위가 0~27V이다. 분압할 필요가 없던것이다.
 
그냥 풀업 저항 하나만 연결하니 잘 동작한다.
 
 
 
근접센서 연결 커넥터
두개의 근접센서가 연결되는데 지난번 연결 했던 센서가 위치가 바껴 있어서 커넥터를 다시 수정했다. 또 다음에 혼동하지 않도록 정리 해두는것이 좋을것 같다.

 
 
 

Posted by nexp

댓글을 달아 주세요

[SENSOR]/기타센서2010. 4. 16. 14:15

[BMP085] - 압력(고도)센서 테스트

[BMP085] - 압력(고도)센서 테스트



BMP085는 Bosch 사의 고정밀 압력센서이다. 대기압을 측정할 수 있고 정밀하기 때문에 주로 고도 센서로 많이 활용을 한다.
I2C방식으로 인터페이스 되므로 기존 STM32센서 보드를 이용하여 테스트 가능한 호환보드를 만들어 대기압을 측정해 보았다.



BMP085 테스트 결과
엘리베이터 1층에서 4층까지 문을 닫았다 열16비트 모드라 19비트의 SCP1000 보다 정밀도가 떨어지는것 같다.



SCP1000을 이용한 고도에 따른 압력 측정 결과



Posted by nexp
TAG BMP085

댓글을 달아 주세요

[SENSOR]/기타센서2010. 4. 5. 20:44

[USB-UltraSensor] USB 다채널 초음파 센싱 보드 제작

[USB-UltraSensor] USB 다채널 초음파 센싱 보드 제작


최대 16개의 초음파 센서모듈의 데이터를 USB로 수집할 수 있는 모듈 보드를 제작했다.
PC에서 다수의 초음파 센서를 수집할 수 있는 보드가 필요해서 알아보다 시중에 구하기가 쉽지 않아 USB로 여러가지 기능을 할 수 있는 보드로 제작 해 보았다. MCU는 Cortex-M3 STM32를 이용하였다.



부가 기능으로 24V이하의 전원을 On/Off할 수 있는 포트 제어 기능이 포함되어 있다.



Posted by nexp

댓글을 달아 주세요

[SENSOR]/기타센서2010. 1. 22. 12:31

ASSEN GPS 모듈 제작

ASSEN GPS 모듈 제작




USB센서 인터페이스 보드와 테스트

Posted by nexp

댓글을 달아 주세요

[SENSOR]/기타센서2009. 6. 9. 12:41

[HMC6352] Compass센서 테스트 - MyUSB-Sensor Board

[HMC6352] Compass센서 테스트 - MyUSB-Sensor Board

myCompass 가 myMCU-EXP보드에서는 잘 동작하지만 myUSB에서 정상동작하지 않는 현상이 발생
상당히 오래동안 고생했는데 알고 보니 myUSB의 확장보드쪽 전원 3.3V가 회로적으로 잘못 기입하여 공급이 않되고 있었다.
myUSB의 3.3V를 Main보드와 연결해서 전원해결.
동작은 잘한다.
 
하지만 이상하게 반응속도가 너무 느리다. 값이 변하지 않는것은 아닌데... 업데이트 속도가 상당히 느린 현상 발생
Read시 2개의 데이터를 가져오는데 처음에는 ACK를 보내야 하고 두번째 바이트는 ACK를 보내지 않아야 하한다.




보통 I2C메모리의 Read 타이밍 - ACK는 DATA Low이다.




myCompass.c 의 함수 수정
unsigned int myCompassRead(unsigned char reg)
{
    :
 
 //data = i2c_readNak()<<8;                 // i2c Data Read
 //data |= i2c_readNak();                      // i2c Data Read 
 data = i2c_readAck()<<8;
 data |= i2c_readNak();
 
}
 
 
STM32에서는 ACK를 보내기 위해 아래와 같이 수정
unsigned char i2c_readAck(void)
{
 unsigned char data = 0;
 
    I2C_AcknowledgeConfig(I2C_ID, ENABLE);
    while(1) 
    {
        //Test on EV7 and clear it
        if(I2C_CheckEvent(I2C_ID, I2C_EVENT_MASTER_BYTE_RECEIVED)) 
        {     
            data = I2C_ReceiveData(I2C_ID);
            break;
        }  
    }
    I2C_AcknowledgeConfig(I2C_ID, DISABLE);  
   
    return data;
}
 
unsigned char i2c_readNak(void)
{
 unsigned char data = 0;
    while(1) 
    {
        //Test on EV7 and clear it
        if(I2C_CheckEvent(I2C_ID, I2C_EVENT_MASTER_BYTE_RECEIVED)) 
        {     
            data = I2C_ReceiveData(I2C_ID);
            break;
        }  
    }
  
    return data;
}
Posted by nexp

댓글을 달아 주세요