메뉴 건너뛰기

목록
2022.05.29 11:25

아두이노 공부 fnd 2편

profile
조회 수 66 댓글 1 예스잼 0 노잼 0

74ls48-ic.png

 

오늘의 목표는 이 7448 ic를 이용하여 fnd를 동작시켜 보는것임 

 

요것은 bcd 코드를 fnd에 맞춰서 내보내주는 ic임 

 

그냥 다이렉트로 아두이노로 연결해도 되는데 이 ic를 굳이 사용하는 이유는 bcd 코드를 바꿔준다는 것과 포트수를 절약할수 있다는 것에 있음 

 

a10ea988113bda8184b35e69c89d56cd.png

 

이것은 저번에 올렸던 숑소에 올린 fnd 회로도인데 아두이노에 바로 연결한 회로도임

 

대충보면 fnd에 총 12개의 포트가 연결되어 있는것을 볼수있음 

 

 

47b4fb32952c4fede539499e9f93c45c.png

 

 

abcdefg 단자를 모두 아두이노와 직접 연결시켰기 때문에 포트수가 늘어날 뿐더러 

 

0을 표시하고 싶다고 하면 a,b,c,d,e,f 번 led를 켜겠다는 신호를 주어야하고 

 

1을 표시하고 싶다면 b,c, 번 led를 켜겠다는 신호를 주어야함 이러한 불편함을 없엘수 있는것이 7448ic임 

 

7448 ic를 이용하면 포트를 7개에서 4개로 줄일 뿐더러 bcd 코드를 입력하면 자동으로 a,b,c,d,e,f,g 중 무엇을 켜야하는지 자동으로 출력해줌!!!!! 

 

여기서 아까부터 계속말한 bcd코드가 무엇인지 궁금할텐데 

 

img1.daumcdn.png

 

 

걍 이 표를 보면됨 0~9 의 10진수를 4자리의 2진수로서 표현함. 

 

7448 ic를 보면 대문자 A B C D  단자가 있는것을 볼수있음 

 

74ls48-pinout.png

 

 

그림3.png

 

그리고 이 표의 입력부분에 BCD 코드를 입력하면 fnd를 제어할수있는 7자리인 abcdefg로 변환해줌 

 

대충 설명은 이정도로 하고 아두이노에 직접 배선해보겟으ㅜㅁ 

 

KakaoTalk_20220529_112445043.jpg

 

짜잔 

 

오늘도 띵커캐드로 그릴까 했는데 존나 귀찮아서 못그리겠음 

 

대충 4,5,6,7 번포트가 ic로가고 

 

ic에서는 각 포트에 맞춰 저항통해서 fnd로감 

 

8,9,10,11이 fnd 디지트 단자로 갔음

 

 

#include <Arduino.h>
 
int bcd_pins[4] = {8,9,10,11};
int digit_pins[4] = {4,5,6,7};
 
void display_number(int num){
  switch(num){
    case 0:
    digitalWrite(bcd_pins[0] , 0);
    digitalWrite(bcd_pins[1] , 0);
    digitalWrite(bcd_pins[2] , 0);
    digitalWrite(bcd_pins[3] , 0);
    break;
 
    case 1:
    digitalWrite(bcd_pins[0] , 1);
    digitalWrite(bcd_pins[1] , 0);
    digitalWrite(bcd_pins[2] , 0);
    digitalWrite(bcd_pins[3] , 0);
    break;
 
    case 2:
    digitalWrite(bcd_pins[0] , 0);
    digitalWrite(bcd_pins[1] , 1);
    digitalWrite(bcd_pins[2] , 0);
    digitalWrite(bcd_pins[3] , 0);
    break;
 
    case 3:
    digitalWrite(bcd_pins[0] , 1);
    digitalWrite(bcd_pins[1] , 1);
    digitalWrite(bcd_pins[2] , 0);
    digitalWrite(bcd_pins[3] , 0);
    break;
 
    case 4:
    digitalWrite(bcd_pins[0] , 0);
    digitalWrite(bcd_pins[1] , 0);
    digitalWrite(bcd_pins[2] , 1);
    digitalWrite(bcd_pins[3] , 0);
    break;
 
    case 5:
    digitalWrite(bcd_pins[0] , 1);
    digitalWrite(bcd_pins[1] , 0);
    digitalWrite(bcd_pins[2] , 1);
    digitalWrite(bcd_pins[3] , 0);
    break;
 
    case 6:
    digitalWrite(bcd_pins[0] , 0);
    digitalWrite(bcd_pins[1] , 1);
    digitalWrite(bcd_pins[2] , 1);
    digitalWrite(bcd_pins[3] , 0);
    break;
 
    case 7:
    digitalWrite(bcd_pins[0] , 1);
    digitalWrite(bcd_pins[1] , 1);
    digitalWrite(bcd_pins[2] , 1);
    digitalWrite(bcd_pins[3] , 0);
    break;
 
    case 8:
    digitalWrite(bcd_pins[0] , 0);
    digitalWrite(bcd_pins[1] , 0);
    digitalWrite(bcd_pins[2] , 0);
    digitalWrite(bcd_pins[3] , 1);
    break;
 
    case 9:
    digitalWrite(bcd_pins[0] , 1);
    digitalWrite(bcd_pins[1] , 0);
    digitalWrite(bcd_pins[2] , 0);
    digitalWrite(bcd_pins[3] , 1);
    break;
 
    default:
    digitalWrite(bcd_pins[0] , 0);
    digitalWrite(bcd_pins[1] , 0);
    digitalWrite(bcd_pins[2] , 0);
    digitalWrite(bcd_pins[3] , 0);
    break;
  }
}
 
void display7segments(unsigned int value) {
  for(int i = 0; i < 100; i++) {
    display_number(value);
    delay(10);
  }
}
 
void setup() {
  for(int i = 0; i < 4; i++) {
    pinMode(bcd_pins[i], OUTPUT);
    pinMode(digit_pins[i] , OUTPUT);
  }
}
 
void loop() {
  display7segments(5);
}    

 

코드는 diplay7segments() 함수에 0~9까지의 숫자를 넣게되면 그 숫자를 4칸에 표시해주도록 하였음 

 

 


List of Articles
번호 제목 글쓴이 날짜 조회 수 추천
공지 수용소닷컴 이용약관 file asuka 2020.05.16 1312 1
750 정처기 ㅈ같은거만 나오네 1 그리드 2022.06.06 26 0
749 뷰지스 다 했는데 왜 안됨 2 file 찐득찐득여고생허리돌림야끼도리 2022.06.06 51 0
748 뷰지스를 설치해보고 있음 file 찐득찐득여고생허리돌림야끼도리 2022.06.06 34 0
747 안드로이드 점점 쓸데없는 제한이 많아지는 것 같음 1 file 히마와리 2022.06.06 36 1
746 러스트, 배워볼만함? 2 그리드 2022.06.05 28 0
745 HP, 개발자용 리눅스 노트북 Dev One 판매 (미국) 1 file 히마와리 2022.06.04 43 0
744 삭제된 게시글입니다. 아야나미레이 2022.06.03 12 0
743 MS오피스 워드 파일에서 치명적인 취약점 발견 1 file 히마와리 2022.06.03 35 1
742 윈도우 우분투 듀얼부팅하고 코딩 공부하던건 도커로 올려버림 2 file 히마와리 2022.06.02 30 1
741 리눅스 책 추천좀 해줘라 3 그리드 2022.06.02 17 0
740 코딩하기 좋은 노트북 추천좀 8 그리드 2022.05.30 50 0
739 삭제된 게시글입니다. 머저리 2022.05.30 7 0
» 아두이노 공부 fnd 2편 1 file 캬루단 2022.05.29 66 0
737 우분투 22.04는 아직 불안정한듯 3 히마와리 2022.05.25 34 0
736 프로그래머 수붕이들 3 아야나미레이 2022.05.22 75 0
735 머야 이제 임베디드가아니라 IOT임? 1 머저리 2022.05.22 23 0
734 스윙이랑 awt만들고 아야나미레이 2022.05.22 13 0
733 맥북에어 살까 맥북 프로 살까 4 MDR 2022.05.19 29 0
732 두나무 컨퍼런스 1 그리드 2022.05.18 22 0
731 컴공 머학원 스펙 뭐있어야하냐 2 아야나미레이 2022.05.18 45 0
목록
Board Pagination Prev 1 ... 14 15 16 17 18 19 20 21 22 23 ... 56 Next
/ 56