아두이노와 74시리즈로 만든 주차시스템 프로젝트

아두이노/프로젝트

4년전에 학교에서 74시리즈(and, or, nor 게이트 등)를 이용한 프로젝트를 하나 설계하라고 해서 진행된 주차시스템 프로젝트입니다.

 

기능은 간단히 이마트나 홈플러스같은곳에서 볼 수 있는 주차장에 몇대 주차가능한지 전광판에 띄어주는 역할입니다. 다만, 과목 특성상 아두이노는 단순히 초음파 센서의 출력을 읽고, *cm 이내에 물건이 감지되면 1을 출력할 뿐 그 이상의 역할은 하지 않습니다. 74LS00 74LS32와 같은 게이트 소자를 이용해 몇대가 남았는지 FND에 띄우는 방식으로 만들었습니다.

 

아두이노에서 초음파 센서의 출력을 읽어들여 *cm 안으로 물건이 감지되면 LED를 켜는 연습

우선 초음파센서와 아두이노가 잘 작동하는지 브레드보드에 연결해 테스트 해보았습니다.

총 4개의 주차공간을 만들 예정이므로 4개의 HC-SR04 초음파센서와 LED4개를 사용해 간단히 테스트한 사진입니다. 손

을 갖다대니 오른쪽 2개 LED가 켜진모습이 보이시죠? ^^ 성공입니다.

 

 

이제 구현할 회로를 생각해 봅니다.

 

우선 주차장은 2동, 각동마다 2대씩 총 4대를 주차가능하게 할 예정입니다.

FND 7segment로 각 동마다 남은 주차공간과 총 남은 주차공간을 표시합니다.

이를 위해서 4비트 병렬 가산기: 74LS83, XOR게이트: 74LS86, BCD to 7 segment decoder: 74LS47, NOT게이트: 74LS04, AND게이트: 74LS32 등의 IC칩이 사용되었습니다.

 

만약, 주차장에 차가 들어왔다면 초음파센서에서 아두이노로 신호를 주어, 아두이노에서 특정 핀에 1을 출력합니다. 이 신호를 가산기1,2비트와 3,4비트에 각각 입력시키고, 1,2비트 출력을 1동, 3,4비트 출력을 2동 XOR게이트(input1에는 미리 1을 입력시켜놓음)에 입력시킨 뒤 이 출력을 다시 가산기에 입력시켜 각 동에 남은 주차대수를 표현합니다. 이를 BCD to 7 segment decoder 에 입력시켜 7 segment에 입력시키면 끝입니다.

(지금와서 생각해 보면 중간에 XOR게이트를 쓸 필요없이 NOT게이트를 써도 무방할듯 합니다)

 

자세한 동작 원리는 밑의 pspice로 구현한 회로를 보시면 이해가 쉽습니다.

 

pspice로 구현한 회로모습

여기서 주의할 점은 7segment 입력 각각에 220옴~330옴의 저항을 연결하여 최대전류를 제한해야합니다. 그렇지 않으면 발열로 인해 7segment의 LED가 나갈수도 있습니다. [물론 74LS47의 최대출력전류가 낮아 바로 고장나진 않습니다]

 

 

pspice 출력 시뮬레이션

위 회로를 시뮬레이션 한 화면입니다.

4s~5s에서 맨 위를 보면 0100으로 1동(A,B)에 1대가 주차되어 있습니다.

1동의 빈 주차공간은 01로 한대가 주차가능하고, 2동의 빈 주차공간은 10으로 두대가 주차가능합니다.

마지막 맨 밑의 총 빈 주차공간은 011으로 총 3대가 주차가능합니다.

 

이로써 위 회로는 정상적으로 작동한다고 볼 수 있습니다.

 

 

 

Fritzing으로 구성한 회로

제작에 앞서, fritzing으로 회로를 나타내 보았습니다. 7세그먼트에 저항을 나타내지 못했는데 아래와같이 연결해야합니다.

 

 

저항을 연결한 모습

 

 

 

실제 구동 모습

 

실제로 완성하여 구동해본 모습입니다.

잘 보이지는 않지만, 1동과 전체로 표시된 7세그먼트가 2, 2동으로 표시된 7세그먼트가 0임을 볼 수 있습니다.

 

 

 

시연 모습

동영상으로 나타내보았습니다. 3주간에 걸친 장기 프로젝트로 이덕분에 A+을 받을 수 있었습니다.

궁금한점이 있으시면 댓글적어주세요.