BASIC4MCU | 질문게시판 | 아두이노 도트매트릭스와 적외선리모컨
페이지 정보
작성자 중꺾마 작성일2022-12-04 12:34 조회129회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=22025
본문
현재 도트매트릭스로 모양을 만드는것에는 성공했습니다. 여기서 적외선리모컨을 연결시켜서 리모컨버튼을 누르면 제가 만든 모양을 띄우게 하려면
아래 식에서 어떻게 적외선리모컨식을 추가해야할까요?? 눌러도 왜 안나오는지 모르겠습니다.
#include <IRremote.h>int x_axis[] = {A0, 12, A2, 13, 5, A3, 7, 2};int y_axis[] = {9, 8, 4, A1, 3, 10, 11, 6};int RECV_PIN = A4;IRrecv irrecv(RECV_PIN);decode_results results;byte nemo[8][8] = {{0,0,0,0,0,0,0,0},{0,1,1,1,1,1,1,0},{0,1,0,0,0,0,1,0},{0,1,0,0,0,0,1,0},{0,1,0,0,0,0,1,0},{0,1,0,0,0,0,1,0},{0,1,1,1,1,1,1,0},{0,0,0,0,0,0,0,0},};byte morae[] = {B00000000,B01111110,B00100100,B00011000,B00011000,B00100100,B01111110,B00000000};byte won[] = {B00000000,B00111100,B01000010,B01000010,B01000010,B01000010,B00111100,B00000000};int mode=0;void setup(){Serial.begin(9600);irrecv.enableIRIn();for(int i=0;i<8;++i){pinMode(y_axis[i], OUTPUT);digitalWrite(y_axis[i], HIGH);pinMode(x_axis[i], OUTPUT);}}void loop(){if (irrecv.decode(&results)) {Serial.println (results.value, HEX);}switch (results.value) {case 0xFF30CF:mode=1; break;case 0xFF18E7:mode=2; break;case 0xFF7A85:mode=3; break;}irrecv.resume();if(mode==1){show(nemo[8][8],1000);}if(mode==2){show(morae,1000);}if(mode==3){show(won,1000);}}void show(byte * image, unsigned long duration){unsigned long start = millis();while(start+duration > millis()){for(int x=0;x<8;++x){digitalWrite(x_axis[x], HIGH);for(int y=0;y<8;++y){boolean pixel = bitRead(image[x], y);if(pixel==1){digitalWrite(y_axis[y],LOW);}delayMicroseconds(300);digitalWrite(y_axis[y], HIGH);}digitalWrite(x_axis[x],LOW);}}}
댓글 0
조회수 129등록된 댓글이 없습니다.