메뉴 건너뛰기

목록
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 자바스크립트도 별 희한한 문법을 다 지원하네 6 file 으ㅇ유ㅏ」 2021.12.16 90 0
929 자바스크립트가 맘에 드는 점 하나 21 다람쥐 2020.07.09 104 0
928 자바스크립트 타입스크립트 공부하기 시작햇음 2 ump9 2021.06.08 52 0
927 자바스크립트 콜백은 씨팔 3 file MDR 2021.04.07 91 0
926 자바스크립트 promise race에 대해 알아보자 4 file 머스크멜론 2021.06.03 62 2
925 자바스크립트 Promise async await generator 요 4개조합 알면 좋은듯 4 file 머스크멜론 2021.04.09 103 0
924 자바스크립트 1 file 머스크멜론 2021.07.18 35 0
923 자바를 잡아라! 2 다람쥐 2020.06.04 87 0
922 자바.... 시험.. 1 Pawn 2022.10.16 28 0
921 자바... 자바 그리드 2022.03.10 55 0
920 자바, 파이썬 Pawn 2022.10.31 21 0
919 자바 유튜브로 대충 들어봐도 됨 ? 4 그리드 2021.08.26 47 0
918 자바 배우는 내내 getter setter 왜쓰는건가 싶었는데 4 file 히마와리 2022.02.09 68 0
917 자바 공부하는 방법좀 알려주셈 2 그리드 2021.08.22 46 0
916 자바 공부를 하고있긴 함 그리드 2022.04.24 41 0
915 자바 공부를 하고 있기는 한데 2 그리드 2021.09.05 45 0
914 자바 공부 시작한다 선언 4 그라드 2021.08.14 37 0
913 자바 ㅈ같네 5 그리드 2022.04.16 58 0
912 자마린 써본 놈있냐? 1 MDR 2021.05.28 35 0
911 자료구조책 왔음 그리드 2022.12.02 6 0
목록
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 ... 56 Next
/ 56