IT 융합공학특론[13] : 7 세그먼트

NOAH·2021년 6월 11일
0

아두이노

목록 보기
10/13
post-thumbnail

길쭉한 모양의 7개의 LED를 붙여서 숫자, 기호 등을 표시
할 수 있도록 만든 소자로 각 LED는 A~G까지 있음

1을 만들고 싶다면 B,C를 만들어 붙임

양극타입과 음극타입

양극 타입 : Ground & HIGH
음극 타입 : 5V & LOW
   
void setup()
{
 pinMode(2, OUTPUT);
 pinMode(7, OUTPUT);
}

void loop()
{
// 둘 다 HIGH로 두면 음극타입만 ON
 digitalWrite(2, HIGH);
 digitalWrite(7, HIGH);
 delay(1000); 
// 둘 다 LOW로 두면 양급타입만 ON
 digitalWrite(2, LOW);
 digitalWrite(7, LOW);
 delay(1000);

}

음극타입을 이용해서 7세그먼트 구현

전원에 그라운드를 연결하고 HIGH를 연결하면 점등하는 음극타입을 이용해서 7세그먼트를 구현하면


int seg_pin[] = {2, 3, 4, 5, 6, 7, 8, 9}

void setup()
{

    for(int i = 0 ; i < 8 : i++ )
    {
    	pinMode(seg_pin[i], OUTPUT);
    }
}

void loop()
{
 
    for( int i = 0 ; i < 8 ; i ++ )
    {
 	digitalWrite(seg_pin[i], HIGH);
	 delay(1000);
	 digitalWrite(seg_pin[i], LOW);
	 delay(1000);
    }
    
}


int seg_pin[] = {2, 3, 4, 5, 6, 7, 8, 9}
int seg_data[][8] = {

    { 1, 1, 1, 1, 1, 1, 0, 0 }, // 0
    { 0, 1, 1, 0, 0, 0, 0, 0 }, // 1
    { 1, 1, 0, 1, 1, 0, 1, 0 }, // 2
    { 1, 1, 1, 1, 0, 0, 1, 0 }, // 3
    { 0, 1, 1, 0, 0, 1, 1, 0 }, // 4
    { 1, 0, 1, 1, 0, 1, 1, 0 }, // 5
    { 1, 0 ,1, 1, 1, 1, 1, 0 }, // 6
    { 1, 1, 1, 0, 0, 0, 0, 0 }, // 7
    { 1, 1, 1, 1, 1, 1, 1, 0 }, // 8
    { 1, 1, 1, 0, 0, 1, 1, 0 }, // 9
    
    
}

void setup()
{

    for(int i = 0 ; i < 8 ; i++ )
    {
    	pinMode(seg_pin[i], OUTPUT);
    }
}

void loop()
{
 
	for(int i = 0; i < 10; i ++ ){
    	for(int j = 0; j < 8 ; j++ ){
        	digitalWrite(seg_pin[j], seg_data[i][j]);
        }
    delay(1000);
    	
}

AD변환기에 7세그먼트 연결하기 + 영문자 출력

AD변환기와 7세그먼트 연결(anlogRead()와 map()) 이용



int AD_data = 0;
int MAP_data = 0;
int seg_pin[] = {2, 3, 4, 5, 6, 7, 8, 9}
int seg_data[][8] = {

    { 1, 1, 1, 1, 1, 1, 0, 0 }, // 0
    { 0, 1, 1, 0, 0, 0, 0, 0 }, // 1
    { 1, 1, 0, 1, 1, 0, 1, 0 }, // 2
    { 1, 1, 1, 1, 0, 0, 1, 0 }, // 3
    { 0, 1, 1, 0, 0, 1, 1, 0 }, // 4
    { 1, 0, 1, 1, 0, 1, 1, 0 }, // 5
    { 1, 0 ,1, 1, 1, 1, 1, 0 }, // 6
    { 1, 1, 1, 0, 0, 0, 0, 0 }, // 7
    { 1, 1, 1, 1, 1, 1, 1, 0 }, // 8
    { 1, 1, 1, 0, 0, 1, 1, 0 }, // 9
    
    
}

void setup()
{

    for(int i = 0 ; i < 8 ; i++ )
    {
    	pinMode(seg_pin[i], OUTPUT);
    }
}

void loop()
{
 	AD_data = analogRead(A0);
    MAP_data = map(AD_data, 0, 1023, 0, 5);
    

    	for(int j = 0; j < 8 ; j++ ){
        	digitalWrite(seg_pin[j], seg_data[MAP_data][j]);
        }
    delay(1000);
    	
}

영문자 출력하기

# define A 10 
# define a 11
# define b 12



int seg_pin[] = {2, 3, 4, 5, 6, 7, 8, 9}
int seg_data[][8] = {

    { 1, 1, 1, 1, 1, 1, 0, 0 }, // 0
    { 0, 1, 1, 0, 0, 0, 0, 0 }, // 1
    { 1, 1, 0, 1, 1, 0, 1, 0 }, // 2
    { 1, 1, 1, 1, 0, 0, 1, 0 }, // 3
    { 0, 1, 1, 0, 0, 1, 1, 0 }, // 4
    { 1, 0, 1, 1, 0, 1, 1, 0 }, // 5
    { 1, 0 ,1, 1, 1, 1, 1, 0 }, // 6
    { 1, 1, 1, 0, 0, 0, 0, 0 }, // 7
    { 1, 1, 1, 1, 1, 1, 1, 0 }, // 8
    { 1, 1, 1, 0, 0, 1, 1, 0 }, // 9
    { 1, 1, 1, 0, 1, 1, 1, 0 }, // A 10
    { 1, 1, 1, 1, 1, 0, 1, 0 }, // a 11
    { 0, 0, 1, 1, 1, 1, 1, 0 }, // b 12
    
    
}

void setup()
{

    for(int i = 0 ; i < 8 ; i++ )
    {
    	pinMode(seg_pin[i], OUTPUT);
    }
}

void loop()
{
 	AD_data = analogRead(A0);
    MAP_data = map(AD_data, 0, 1023, 0, 5);
    

    	for(int j = 0; j < 8 ; j++ ){
        	digitalWrite(seg_pin[j], seg_data[A][j]);
        }
        
         delay(1000);  
         
            	for(int j = 0; j < 8 ; j++ ){
        	digitalWrite(seg_pin[j], seg_data[a][j]);
        }
    delay(1000);
                	for(int j = 0; j < 8 ; j++ ){
        	digitalWrite(seg_pin[j], seg_data[b][j]);
        }
   	 delay(1000);
    	
}

0개의 댓글