ATMEGA128 모듈에 연결
WAT-AVR128 모듈의 PORTA는 LED, PORTB는 DIP SWITCH, PORTC는 FND SELECT, PORTE는 FND DATA, PORTE는 ADC 에 연결하여 PC 프로그램에서 제어 및 상태를 실시간으로 모니터링 하는 예제입니다.
WAT-AVR128 모듈 | WAT-IO&ADC 모듈 |
PORTA | FND DATA |
PORTB | |
PORTC | FND SELECT, ROTARY SWITCH |
PORTD | DIP SWITCH |
PORTE | LED |
PORTF | ADC |
윈도우 코드(VC++ 6.0) (통신 처리 부분)
try { // 이번에 수신된 데이터 m_byteArray(QUEUE) 에 넣기 for( int i=1; i<=nRcvSize; i++ ) { m_byteArray.Add(m_CommPort.m_byRcvBuf[i]); }
// 시작 신호 체크 while(m_byteArray.GetSize()>0) { if(m_byteArray.GetAt(0) != 0x02) { m_byteArray.RemoveAt(0); continue; } else { break; } }
CString strData; CString strTemp; if(m_byteArray.GetSize()>=10) { if(m_byteArray.GetAt(0) == 0x02 && m_byteArray.GetAt(9) == 0x03) { // DIP SWITCH 체크 byteTemp = m_byteArray.GetAt(1);
UpdateData(TRUE); m_bDIP8 = ((byteTemp & 0x80)!=0x80); m_bDIP7 = ((byteTemp & 0x40)!=0x40); m_bDIP6 = ((byteTemp & 0x20)!=0x20); m_bDIP5 = ((byteTemp & 0x10)!=0x10); m_bDIP4 = ((byteTemp & 0x08)!=0x08); m_bDIP3 = ((byteTemp & 0x04)!=0x04); m_bDIP2 = ((byteTemp & 0x02)!=0x02); m_bDIP1 = ((byteTemp & 0x01)!=0x01);
// 로터리 스위치 값 읽기 m_strRotary.Format("%d",m_byteArray.GetAt(2));
// CDS 값 읽기 uiTemp = m_byteArray.GetAt(3); uiTemp <<=8; uiTemp += m_byteArray.GetAt(4); m_prgCDS.SetPos(1023 - uiTemp);
// 가변저항 값 읽기 uiTemp = m_byteArray.GetAt(5); uiTemp <<=8; uiTemp += m_byteArray.GetAt(6); m_prgVR.SetPos(1023 - uiTemp);
// 화면 갱신 UpdateData(FALSE); }
// 마지막에 처리한 데이터 보기 for(int i=0;i<10;i++) { strTemp.Format( "%02X ", m_byteArray.GetAt(i) ); strData+=strTemp+ " "; } strData+= "\n";
m_byteArray.RemoveAt(0,10); }
m_ReceiveData = strData; UpdateData(FALSE);
} catch (CException* ) {
} |
윈도우 프로그램에서 FND에 5634, LED 모두 OFF 값을 전송하며 ATMEGA128 보드에서 딥 스위치4번 OFF, CDS값 최대, 가변저항 값 최소, 로터리 스위치 값 3을 전송되면 아래와 같이 됩니다.
< WAT-IO&ADC에 연결한 윈도우 프로그램 >
윈도우 프로그램에서 FND에 5667, LED 3,5,7번 ON 값을 전송하며 ATMEGA128 보드에서 딥 스위치1,3,5,7,번 ON, CDS값 최대, 가변저항 값 최대, 로터리 스위치 값 9을 전송되면 아래와 같이 됩니다.
다운로드
매뉴얼: WAT-IO_ADC매뉴얼.pdf
- [2015/01/08] Character LCD 예제 (3737)
- [2014/11/28] 간단한 유니폴라 스텝모터 구동 (3883)
- [2014/11/28] 컴퓨터-아두이노 간의 블루투스 통신 (채팅) (4806)
- [2013/04/11] WAT-AVR128_PLUS 모듈 ()
- [2012/12/03] WAT-AVR128 EXT (AVR128용 확장보드) ()
- [2011/10/27] WAT-USB AVR ISP ()
- [2011/10/27] WAT-AVR128 모듈 ()
- [2013/10/30] ZEO-S, CDS로 빛 밝기 -> LED ON/OFF (8920)
- [2013/09/02] ZEO-S PWM 펄스를 Pulse Counter로 읽기, C# (6785)
- [2013/08/29] ZEO-S, Pulse Counter, C# (6380)