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

TODAY337 TOTAL270,853
사이트 이용안내
Login▼/회원가입
포럼 동영상강좌 회원가입


▼ BASIC4MCU 후원업체 최신 정보 ▼

▲ BASIC4MCU 후원업체 최신 정보 ▲

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

페이지 정보

작성자 ffnui 작성일2018-06-14 16:24 조회664회 댓글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

조회수 664

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
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 아두이노를 이용한 RGB LED 전등 제어 새글 위우위우 00:17 1
질문 SoftwareSerial을 이용한 버튼 및 LED 작동 댓글[1] 새글 깅깅 18-10-19 6
답변 답변글 답변 : SoftwareSerial을 이용한 버튼 및 LED 작동 새글 master 18-10-19 3
질문 PIR 센서 감도조절 질문 새글 master 18-10-19 2
질문 저번에 초음파와 dc모터 관련 질문했던 사람입니다. 아직 문제가 잘 해결되지 않아서 올립니다. 새글 재갈이 18-10-19 6
답변 답변글 답변 : 저번에 초음파와 dc모터 관련 질문했던 사람입니다. 아직 문제가 잘 해결되지 않아서 올립니다. 댓글[3] 새글 master 18-10-19 8
질문 Nrf24 양방향 송수신 진동모터 작동관련 질문입니다! 댓글[1] 새글 A반장 18-10-19 9
질문 아두이노 조도센서 반응을 반대로 하고 싶어요! 댓글[2] 새글 코코포도 18-10-19 12
질문 아두이노 LED랑 스피커 동시에 작동하는 법 질문 새글 master 18-10-19 11
질문 원래 나와야하는 시리얼 모니터 사진 올립니다. 새글 찰스백작 18-10-19 9
질문 GPS추적기 소스주신거 안되서 문의드립니다. 소스첨부합니다. 댓글[3] 이미지새글첨부파일 찰스백작 18-10-19 16
질문 STM32 공부방법 댓글[2] 새글 DrVoid 18-10-19 15
질문 gps 소스1으로는 안될까해서 문의드립니다.. 댓글[1] 새글 찰스백작 18-10-19 12
질문 아두이노에서 서보모터와 dc모터 두가지를 함께 이용하고 싶습ㄴ다. 댓글[2] 새글 김주리 18-10-19 19
질문 gps 추적기 다시문의드립니다. 다시 소스좀 부탁드립니다..ㅠㅠ 댓글[2] 새글 찰스백작 18-10-18 23
게시물 검색

Privacy Policy
MCU BASIC ⓒ 2017