메뉴 건너뛰기

목록
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
930 코린이 PyQt5 공부하고있어요 7 file 바보 2021.10.09 84 0
929 어플 하나 제작 4 MDR 2021.10.03 84 0
928 (더러움)케이스구멍존나뚫고싶었음 file 名取さな 2021.05.15 84 0
927 삭제된 게시글입니다. 우지챠 2021.05.02 84 0
926 그간 SSD를 너무 병신같이 쓰고있었음 1 하야한아이 2020.09.20 84 0
925 혹시 인텔리제이 써본애들 있누 7 阿米娅 2020.08.10 84 0
924 정처기 필기 접수함 3 그라드 2020.07.28 84 0
923 코딩 안한지 존나 오래됨 다람쥐 2020.07.26 84 0
922 워드프레스 배울까? 8 file 노무현참하다 2020.07.09 84 0
921 삭제된 게시글입니다. 스마일 2020.06.27 84 0
920 컴퓨터 전공 어디로 가야함? 10 그리드 2021.10.28 83 0
919 B하고 V발음 1 지잡졸업수붕이 2023.07.09 82 0
918 그래프QL 너무 딱좋음 2 file 히마와리 2022.02.03 82 1
917 프론트엔드 인강은 1년만 지나도 휴지조각이노 5 히마와리 2021.12.28 82 0
916 부트캠프 입대하실 수붕이 있음? 7 그리드 2021.11.28 82 0
915 파이썬 기본 문법은 떼고 만들기 시작해야될거 같음 3 file 노동자 2021.10.21 82 0
914 돈 앞에선 정의가 없어요 7 그라드 2021.03.29 82 0
913 삭제된 게시글입니다. 6 히마와리 2021.02.25 82 0
912 코딩하기 존나귀찮다 진짜 마루쉐 2021.01.11 82 0
911 컴퓨터개론부터 다시 공부한다 나무터칭수필맨 2023.06.21 81 0
목록
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 ... 56 Next
/ 56