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 |
윈도우 코드(통신 처리 부분)
private void tmrRxData_Tick(object sender, EventArgs e) { btnRxSignal.BackColor = Color.White; if (null == m_serialPort) return; if (!m_serialPort.IsOpen) return; int iRecSize = m_serialPort.BytesToRead; // 수신된 데이터 갯수 // AVR에서 10바이트식 보내는데 10바이트 이상이 들어 왔는지 체크 if (iRecSize >= 10) { byte[] buff = new byte[iRecSize]; // 임시 변수 // 시리얼 포트에서 데이터를 가져오자. m_serialPort.Read(buff, 0, iRecSize); // 맨앞의 값이 0x02 인지 체크 if (buff[0] !=0x02 ) { for(int i=0;i<iRecSize-1;i++) { buff[i] = buff[i+1]; } } if (buff[0] == 0x02 && buff[8] == 0xCC && buff[9] == 0x03) { this.txbRotaryValue.Text = buff[2].ToString(); this.btnDIP1.BackColor = ((buff[1] & 0x01) == 0x01) ? Color.White : Color.Green; this.btnDIP2.BackColor = ((buff[1] & 0x02) == 0x02) ? Color.White : Color.Green; this.btnDIP3.BackColor = ((buff[1] & 0x04) == 0x04) ? Color.White : Color.Green; this.btnDIP4.BackColor = ((buff[1] & 0x08) == 0x08) ? Color.White : Color.Green; this.btnDIP5.BackColor = ((buff[1] & 0x10) == 0x10) ? Color.White : Color.Green; this.btnDIP6.BackColor = ((buff[1] & 0x20) == 0x20) ? Color.White : Color.Green; this.btnDIP7.BackColor = ((buff[1] & 0x40) == 0x40) ? Color.White : Color.Green; this.btnDIP8.BackColor = ((buff[1] & 0x80) == 0x80) ? Color.White : Color.Green; this.trbCDS.Value = (Convert.ToInt32(buff[3]) << 8) + (Convert.ToInt32(buff[4]) << 0); this.trbCDS.BackColor = Color.FromArgb((1024-this.trbCDS.Value) / 4, (1024-this.trbCDS.Value) / 4, (1024-this.trbCDS.Value) / 4); this.trbVR.Value = (Convert.ToInt32(buff[5]) << 8) + (Convert.ToInt32(buff[6]) << 0); btnRxSignal.BackColor = Color.Green; } } // AVR 모드로 명령 전송 this.SendToBoard(); } |
윈도우 프로그램에서 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 예제 (3113)
- [2014/11/28] 간단한 유니폴라 스텝모터 구동 (3147)
- [2014/11/28] 컴퓨터-아두이노 간의 블루투스 통신 (채팅) (3916)
- [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 (8035)
- [2013/09/02] ZEO-S PWM 펄스를 Pulse Counter로 읽기, C# (5973)
- [2013/08/29] ZEO-S, Pulse Counter, C# (5526)