IT 융합공학특론[13] : 7 세그먼트
길쭉한 모양의 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);
}
Author And Source
이 문제에 관하여(IT 융합공학특론[13] : 7 세그먼트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@marintelli/IT-융합공학특론13-7-세그먼트저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)