Page 134 - MDP2020-2
P. 134
| 인천전자마이스터고등학교 ·············································································································
128
제 2 장 소프트웨어 설계
1. 개요
Arduino에서 led의 색을 설정되고 출력을 시작합니다. 동시에 60Hz의 주파수로 스피커가 동
작하여 고무호스를 진동시킵니다. 만약 첫번째 스위치가 on 되었다면 led는 59Hz의 주파수로
동작됩니다. 그렇지 않고 두번째 스위치가 on 되었다면 led는 61Hz의 주파수로 동작됩니다. 어
떠한 스위치도 눌리지 않는다면 60Hz의 주파수로 동작됩니다. 그리고 ATmega128이 동작이
시작되고 플로트 스위치가 on 되었다면 펌프를 동작시켜 물을 끌어 올립니다. 물이 다 채워지
면 솔레노이드 밸브를 동작시켜 32bit 10가지의 도형과 출력합니다. 그 후, 32bit의 저희 조원
들의 이름이 차례대로 출력됩니다.
2. 소프트웨어
가)ATMEGA128
#include <mega128.h>
#include <delay.h>
void print(unsigned long shape[32]);
void shift_water();
unsigned long shapes[10][32]={
//heart
{0x7E007E0, 0x1FF00FF8, 0x3FF81FFC, 0x7FFC3FFE, 0x7FFE7FFE,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0x7FFFFFFE, 0x7FFFFFFE, 0x3FFFFFFC, 0x3FFFFFFC, 0x1FFFFFF8,
0xFFFFFF0, 0x7FFFFE0, 0x3FFFFC0, 0x1FFFF80, 0xFFFF00,
0x7FFE00, 0x3FFC00, 0x1FF800, 0xFF000, 0x7E000, 0x3C000, 0x18000},
//arrow
{0x10000, 0x30000, 0x70000, 0xF0000, 0x1F0000, 0x3F0000,
0x7F0000, 0xFF0000, 0x1FF0000, 0x3FF0000, 0x7FFFFFF, 0xFFFFFFF,
0x1FFFFFFF, 0x3FFFFFFF, 0x7FFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0x7FFFFFFF, 0x3FFFFFFF, 0x1FFFFFFF, 0xFFFFFFF, 0x7FFFFFF,
0x3FF0000, 0x1FF0000, 0xFF0000, 0x7F0000, 0x3F0000, 0x1F0000,
0xF0000, 0x70000, 0x30000, 0x10000},
//diamond
{0x18000, 0x3C000, 0x7E000, 0xFF000, 0x1FF800, 0x3FFC00,
0x7FFE00, 0xFFFF00, 0x1FFFF80, 0x3FFFFC0, 0x7FFFFE0, 0xFFFFFF0,
0x1FFFFFF8, 0x3FFFFFFC, 0x7FFFFFFE, 0xFFFFFFFF,
0xFFFFFFFF, 0x7FFFFFFE, 0x3FFFFFFC, 0x1FFFFFF8, 0xFFFFFF0, 0x7FFFFE0,
0x3FFFFC0, 0x1FFFF80, 0xFFFF00, 0x7FFE00, 0x3FFC00,
0x1FF800, 0xFF000, 0x7E000, 0x3C000, 0x18000},