BASIC4MCU | 질문게시판 | 아두이노 시프트레지스터를 이용한 7세그먼트 4digits 질문
페이지 정보
작성자 도리도리밤토리 작성일2019-05-10 20:21 조회5,123회 댓글1건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=8519
본문
7세그먼트 4digits를 이용해서 왼쪽에서 오른쪽으로 0-9까지의 숫자가 흘러가게 하는 문제입니다.
1 12 123 1234 2345 3456 4567 5678 6789 7890 8901 9012 0123 1234 이런식으로 해야한는데 제가 짠 코드는 계속 1 22 333 4444 5555 6666 이런식으로 흘러가네요 수정 부탁드립니다.int first_digit = 0;int second_digit = 0;int third_digit = 0;int fourth_digit = 0;int timer_event = 0;int CA_1 = 12;int CA_2 = 11;int CA_3 = 10;int CA_4 = 9;int clk = 6;int latch = 5;int data = 4;int count = 0;int digits[4] ;int CAS[4] = {12, 11, 10, 9};byte numbers[10] = {0b00000110, 0b01011011, 0b01001111, 0b01100110,0b01101101, 0b01111100, 0b00000111, 0b01111111, 0b01100111, 0b00111111 };//byte combinations for each number 0-9void setup() {Serial.begin(9600); //serial start and pin configpinMode(CA_1, OUTPUT);pinMode(CA_2, OUTPUT);pinMode(CA_3, OUTPUT);pinMode(CA_4, OUTPUT);pinMode(clk, OUTPUT);pinMode(latch, OUTPUT);pinMode(data, OUTPUT);digitalWrite(CA_1, HIGH);digitalWrite(CA_2, HIGH);digitalWrite(CA_3, HIGH);digitalWrite(CA_4, HIGH);}void loop() {for(int i=0;i<10;i++){display_number(i);}}void display_number(int num) { //scanningdigitalWrite(latch,LOW);shiftOut(data,clk,MSBFIRST,numbers[num]);digitalWrite(latch,HIGH);digitalWrite(CAS[count],LOW);count++;if (count == 4) { // keep the count between 0-3count = 0;}delay(1000);}
댓글 1
조회수 5,123master님의 댓글
master 작성일회로도와 동영상 첨부해보세요