질문게시판 > 아두이노 멀티태스킹 질문합니다.

TODAY794 TOTAL375,820
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | 아두이노 멀티태스킹 질문합니다.

페이지 정보

작성자 ffnui 작성일2018-06-14 16:24 조회991회 댓글8건

본문

	

올려주신 예제로 해보있는데 잘안돼서 질문드립니다.

아두이노 레오나르도 버전을 사용하고있습니다.

 

#include <TimerOne.h>

const int pin_LED0 = 5;

const int pin_LED1 = 6;

const int pin_LED2 = 8;

const int pin_LED3 = 9;

const int pin_LED4 = 10;

const int pin_LED5 = 11;

const int pin_LED6 = 12;

const int pin_LED7 = 13;     

byte led_pinlist[14]={5,6,8,9,10,11,12,13,12,11,10,9,8,6,}; 

int pin_SW1=3;

 

int dir=0,index=0,cnt=0,flag=0;

 

void setup(){

  pinMode(pin_SW1,INPUT);

  pinMode(pin_LED0, OUTPUT);

  pinMode(pin_LED1, OUTPUT);

  pinMode(pin_LED2, OUTPUT);

  pinMode(pin_LED3, OUTPUT);

  pinMode(pin_LED4, OUTPUT);

  pinMode(pin_LED5, OUTPUT);

  pinMode(pin_LED6, OUTPUT);

  pinMode(pin_LED7, OUTPUT);

  Timer1.initialize(1000000);

  Timer1.attachInterrupt(blinky);

  Serial.begin(9600);

 // pinMode(10,INPUT_PULLUP);

}

 

void loop(){

  uint8_t SW_1_data;

  SW1_data = digitalRead(pin_SW1);// 스위치1번을 눌렀을때 점멸 진행방향이 바뀌고싶습니

 

  if(!digitalRead(10)){ 

    if(flag==0){ flag=1; dir^=1; } 

  }

 

  else flag=0;

 

  delay(100);

}

 

void blinky(){

  if(dir==0){ if(++index>13)index=0; }            

  else      { if(--index<0)index=13; }             

  //

  for(int i=0;i<14;i++)pinMode(led_pin[i],OUTPUT);

  digitalWrite(led_table[index],HIGH);             

}

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 8

조회수 991

ffnui님의 댓글

ffnui 작성일

올려주신 예제에서 pin번호만 바꾸어서 돌려봤는데
 #include <TimerOne.h>

                      ^

compilation terminated.

exit status 1
보드 Arduino Leonardo 컴파일 에러.
라는 에러도 뜹니다.

master님의 댓글

master 댓글의 댓글 작성일

TimerOne 라이브러리 설치하세요

master님의 댓글

master 작성일


#include <TimerOne.h>
const int pin_LED0=5;
const int pin_LED1=6;
const int pin_LED2=8;
const int pin_LED3=9;
const int pin_LED4=10;
const int pin_LED5=11;
const int pin_LED6=12;
const int pin_LED7=13;
byte led_pinlist[14]={ 5,6,8,9,10,11,12,13,12,11,10,9,8,6,};
int pin_SW1=3;
int dir=0,index=0,cnt=0,flag=0;
void setup(){
  pinMode(pin_SW1,INPUT);
  pinMode(pin_LED0,OUTPUT);
  pinMode(pin_LED1,OUTPUT);
  pinMode(pin_LED2,OUTPUT);
  pinMode(pin_LED3,OUTPUT);
  pinMode(pin_LED4,OUTPUT);
  pinMode(pin_LED5,OUTPUT);
  pinMode(pin_LED6,OUTPUT);
  pinMode(pin_LED7,OUTPUT);
  Timer1.initialize(1000000);
  Timer1.attachInterrupt(blinky);
  Serial.begin(9600);
  // pinMode(10,INPUT_PULLUP);
}
//
void loop(){
  if(digitalRead(pin_SW1)){ // 스위치1번을 눌렀을때 점멸 진행방향이 바뀌고싶습니다
    if(flag==0){ flag=1; dir^=1; }
  }
  else flag=0;
  delay(100);
}
//
void blinky(){
  if(dir==0){ if(++index>13)index=0; }
  else{ if(--index<0)index=13; }
  //
  for(int i=0; i<14; i++)pinMode(led_pin[i],OUTPUT);
  digitalWrite(led_table[index],HIGH);
}

ffnui님의 댓글

ffnui 댓글의 댓글 작성일

다운로드해서 라이브러리에 적용후 돌려봤습니다.
sketch_jun14a:42: error: 'led_pin' was not declared in this scope

  for(int i=0; i<14; i++)pinMode(led_pin[i],OUTPUT);

                                  ^

sketch_jun14a:43: error: 'led_table' was not declared in this scope

  digitalWrite(led_table[index],HIGH);

                ^

exit status 1
'led_pin' was not declared in this scope
에러가 납니다.
제가 주석처리한  // pinMode(10,INPUT_PULLUP);  코드부분은 필요없나요?

master님의 댓글

master 작성일

led_table[index]
led_pinlist[14]
배열 이름을 맞춰주세요
 

ffnui님의 댓글

ffnui 작성일

#include <TimerOne.h>
byte led_pin[8]={5,6,8,9,10,11,12,13};
byte led_arr[14]={ 5,6,8,9,10,11,12,13,12,11,10,9,8,6,};
int pin_SW1=3;
int dir=0,index=0,cnt=0,flag=0;
void setup(){
  pinMode(pin_SW1,INPUT);
  for(int i=0;i<8;i++)pinMode(led_pin[i],OUTPUT);
  Timer1.initialize(1000000);
  Timer1.attachInterrupt(blinky);
  Serial.begin(9600);
  // pinMode(10,INPUT_PULLUP);
}
//
void loop(){
  if(digitalRead(pin_SW1)){ // 스위치1번을 눌렀을때 점멸 진행방향이 바뀌고싶습니다
    if(flag==0){ flag=1; dir^=1; }
  }
  else flag=0;
  delay(100);
}
//
void blinky(){
  if(dir==0){ if(++index>13)index=0; }
  else{ if(--index<0)index=13; }
  //
  for(int i=0; i<14; i++)
  pinMode(led_pin[i],OUTPUT);
  digitalWrite(led_arr[index],HIGH);
}

배열이름도 맞춘거같은데 ㅠㅠㅠㅠ
C:sketch_jun14a\sketch_jun14a.ino: In function 'blinky()':

C:\sketch_jun14a\sketch_jun14a.ino:28:28: warning: iteration 8 invokes undefined behavior [-Waggressive-loop-optimizations]

  pinMode(led_pin[i],OUTPUT);

                            ^

C:\\sketch_jun14a\sketch_jun14a.ino:27:3: note: containing loop

  for(int i=0; i<14; i++)

  ^

C:\sketch_jun14a\sketch_jun14a.ino: In function 'blinky':

C:\Users\Documents\sketch_jun14a\sketch_jun14a.ino:28:28: warning: iteration 8 invokes undefined behavior [-Waggressive-loop-optimizations]

  pinMode(led_pin[i],OUTPUT);

                            ^

C:\Users\404\Documents\20141502\sketch_jun14a\sketch_jun14a.ino:27:3: note: containing loop

  for(int i=0; i<14; i++)

master님의 댓글

master 작성일

#include <TimerOne.h>
const int pin_LED0=5;
const int pin_LED1=6;
const int pin_LED2=8;
const int pin_LED3=9;
const int pin_LED4=10;
const int pin_LED5=11;
const int pin_LED6=12;
const int pin_LED7=13;
byte led_pinlist[14]={ 5,6,8,9,10,11,12,13,12,11,10,9,8,6,};
int pin_SW1=3;
int dir=0,index=0,cnt=0,flag=0;
void setup(){
  pinMode(pin_SW1,INPUT);
  pinMode(pin_LED0,OUTPUT);
  pinMode(pin_LED1,OUTPUT);
  pinMode(pin_LED2,OUTPUT);
  pinMode(pin_LED3,OUTPUT);
  pinMode(pin_LED4,OUTPUT);
  pinMode(pin_LED5,OUTPUT);
  pinMode(pin_LED6,OUTPUT);
  pinMode(pin_LED7,OUTPUT);
  Timer1.initialize(1000000);
  Timer1.attachInterrupt(blinky);
  Serial.begin(9600);
  // pinMode(10,INPUT_PULLUP);
}
//
void loop(){
  if(digitalRead(pin_SW1)){ // 스위치1번을 눌렀을때 점멸 진행방향이 바뀌고싶습니다
    if(flag==0){ flag=1; dir^=1; }
  }
  else flag=0;
  delay(100);
}
//
void blinky(){
  if(dir==0){ if(++index>13)index=0; }
  else{ if(--index<0)index=13; }
  //
  for(int i=0; i<14; i++)pinMode(led_pinlist[i],OUTPUT);
  digitalWrite(led_pinlist[index],HIGH);
}

ffnui님의 댓글

ffnui 작성일

감사합니다!!!

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은 질문게시판에서만 작성 가능합니다. 스태프 19-01-15 25
공지 사이트 이용 안내 댓글[4] master 17-10-29 4676
질문 마스터님 봐주세요~ 댓글[2] 이미지새글첨부파일 현이꽃 19-01-22 17
답변 답변글 답변 : 마스터님 봐주세요~ 댓글[6] 새글 master 09:50 14
질문 c언어 조언 해주세요. 댓글[2] 새글 c린이 19-01-22 15
질문 손문일 새글 손문일 19-01-22 18
답변 답변글 답변 : 손문일 새글 master 19-01-22 9
답변 답변글 답변 : 손문일 새글 손문일 19-01-22 6
답변 답변글 답변 : 답변 : 손문일 새글 master 19-01-22 8
질문 블루투스 조이스틱 질문좀요 새글 현이꽃 19-01-22 9
답변 답변글 답변 : 블루투스 조이스틱 질문좀요 댓글[1] 새글 master 19-01-22 12
질문 atmega128 풀업 스위치 댓글[2] 새글 c린이 19-01-22 13
질문 master님 스테핑 모터 3개 제어 관련 문의드립니다. 이미지새글첨부파일 원스타 19-01-22 21
답변 답변글 답변 : master님 스테핑 모터 3개 제어 관련 문의드립니다. 댓글[4] 새글 master 19-01-22 12
답변 답변글 답변 : 답변 : master님 스테핑 모터 3개 제어 관련 문의드립니다. 새글 원스타 19-01-22 8
답변 답변글 답변 : 답변 : 답변 : master님 스테핑 모터 3개 제어 관련 문의드립니다. 댓글[1] 새글 master 19-01-22 11
질문 아두이노 스케치 반복문 질문 master 19-01-20 16
질문 스위치 회로 댓글[2] 이미지 동지 19-01-19 26
질문 LCD 회로가 바뀌었는데 이미지첨부파일 Lami 19-01-19 21
답변 답변글 답변 : LCD 회로가 바뀌었는데 master 19-01-20 14
질문 C언어 댓글[4] c린이 19-01-18 32
질문 아두이노 하나로 2개의 센서 데이터 받기 질문 master 19-01-18 17
질문 ATmega128에서 TWI(I2C)에 대한 코딩 질문입니다!! 댓글[2] 이미지첨부파일 질문Y 19-01-15 36
질문 아두이노 소프트웨어 시리얼 질문 댓글[2] 이미지첨부파일 hktsakura 19-01-15 28
답변 답변글 답변 : 아두이노 소프트웨어 시리얼 질문 댓글[5] 이미지 master 19-01-15 35
답변 답변글 답변 : 답변 : 아두이노 소프트웨어 시리얼 질문 댓글[4] master 19-01-15 32
답변 답변글 답변 : 답변 : 답변 : 아두이노 소프트웨어 시리얼 질문 댓글[3] master 19-01-16 28
질문 아두이노 적외선센서 2개를 이용해서 출입인원 카운팅을 하려고 합니다. 배우러왔습니다 19-01-14 25
답변 답변글 답변 : 아두이노 적외선센서 2개를 이용해서 출입인원 카운팅을 하려고 합니다. 댓글[1] master 19-01-15 19
답변 답변글 답변 : 답변 : 아두이노 적외선센서 2개를 이용해서 출입인원 카운팅을 하려고 합니다. 댓글[1] 배우러왔습니다 19-01-15 12
게시물 검색

2019년 1월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2017
모바일버전으로보기