BASIC4MCU | 질문게시판 | 답변 : 마스터님 코딩 도움이 필요합니다.
페이지 정보
작성자 master 작성일2018-10-22 15:39 조회12,958회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=3824
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-10-22 오후 3:44:09// by Ok-Hyun Park//#include <IRremote.h>//int pinLB=2; // L298N IN1int pinLF=3; // L298N IN2int pinRB=4; // L298N IN3int pinRF=5; // L298N IN4int Lled=8;int Rled=9;#define PIEZO 6//#define c4 3822 // 261.63Hz 도#define d4 3405 // 293.67Hz 레#define e4 3034 // 329.63Hz 미#define f4 2863 // 349.23Hz 파#define g4 2551 // 392.11Hz 솔#define g4s 2408 // 415.30Hz 솔##define a4 2273 // 440.11Hz 라#define b4 2025 // 493.88Hz 시#define c5 1910 // 523.25Hz 도#define d5 1703 // 587.33Hz 레#define d5s 1607 // 584.37Hz 레##define e5 1517 // 659.26Hz 미#define f5 1432 // 698.46Hz 파#define g5 1276 // 783.99Hz 솔#define a5 1136 // 880.11Hz 라#define b5 1012 // 987.77Hz 시//long advence =0x00FF18E7;long back =0x00FF4AB5;long stop =0x00FF38C7;long left =0x00FF10EF;long right =0x00FF5AA5;long leftled =0x00FF30CF;long rightled=0x00FF7A85;//int RECV_PIN=A0;IRrecv irrecv(RECV_PIN);decode_results results;//unsigned long last=millis();unsigned long Llast,Rlast;int mode=0;//int song[]={ e5,d5s,e5,d5s,e5,b4,d5,c5,a4,c4,e4,a4,b4,e4,g4s,b4,c5,e4,e5,d5s,e5,d5s,e5,b4,d5,c5,a4,c4,e4,a4,b4,e4,c5,b4,a4 };int song_pivot=0;unsigned long mil=0;//void M_stop() { digitalWrite(pinRB,1); digitalWrite(pinRF,1); digitalWrite(pinLB,1); digitalWrite(pinLF,1); }void M_fwd() { digitalWrite(pinRB,0); digitalWrite(pinRF,1); digitalWrite(pinLB,0); digitalWrite(pinLF,1); }void M_back() { digitalWrite(pinRB,1); digitalWrite(pinRF,0); digitalWrite(pinLB,1); digitalWrite(pinLF,0); }void M_left() { digitalWrite(pinRB,0); digitalWrite(pinRF,1); digitalWrite(pinLB,1); digitalWrite(pinLF,1); }void M_right(){ digitalWrite(pinRB,1); digitalWrite(pinRF,1); digitalWrite(pinLB,0); digitalWrite(pinLF,1); }//void dump(decode_results*results){int count=results->rawlen;//if(results->decode_type==UNKNOWN){ Serial.println("Could not decode message"); }else{if (results->decode_type==NEC ){ Serial.print("Decoded NEC: "); }else if(results->decode_type==SONY){ Serial.print("Decoded SONY: "); }else if(results->decode_type==RC5 ){ Serial.print("Decoded RC5: "); }else if(results->decode_type==RC6 ){ Serial.print("Decoded RC6: "); }//Serial.print(results->value,HEX); Serial.print("(");Serial.print(results->bits,DEC); Serial.println(" bits)");}//Serial.print("Raw("); Serial.print(count,DEC); Serial.print("): ");//for(int i=0; i<count; i++){if(i%2){ Serial.print(results->rawbuf[i]*USECPERTICK,DEC); }else { Serial.print(-(int)results->rawbuf[i]*USECPERTICK,DEC); }Serial.print(" ");}Serial.println("");}//void sing(int eum,int isLong){long lele=125000;if(isLong==3)lele=375000;else if(isLong==6)lele=750000;for(long i=0; i<lele; i+=eum){ digitalWrite(PIEZO,HIGH); delayMicroseconds(eum/2); digitalWrite(PIEZO,LOW); delayMicroseconds(eum/2); }}//void setup(){pinMode(pinLB,OUTPUT); pinMode(pinLF,OUTPUT); pinMode(pinRB,OUTPUT); pinMode(pinRF,OUTPUT);pinMode(13,OUTPUT); pinMode(Lled,OUTPUT); pinMode(Rled,OUTPUT);pinMode(RECV_PIN,INPUT);pinMode(PIEZO,OUTPUT);irrecv.enableIRIn();Serial.begin(9600);}//void loop(){if(irrecv.decode(&results)){if(millis()-last>250){ last=millis(); digitalWrite(13,!digitalRead(13)); dump(&results); }if(results.value==advence){ mode=0; M_fwd(); }if(results.value==back ){ mode=0; M_back();if(millis()-mil>100){int isLong;if (song_pivot==8||song_pivot==12||song_pivot==16||song_pivot==26||song_pivot==30){ isLong=3; }else if(song_pivot==34){ isLong=6; }sing(song[song_pivot++],isLong);if(song_pivot==35)song_pivot=0;mil=millis();}}if(results.value==stop ){ mode=0; M_stop(); digitalWrite(Lled,LOW); digitalWrite(Rled,LOW); }if(results.value==left ){ mode='L'; M_left(); digitalWrite(Lled,1); Llast=millis(); }if(results.value==right ){ mode='R'; M_right(); digitalWrite(Rled,1); Rlast=millis(); }irrecv.resume();}//if(mode=='L'){if(millis()-Llast>250){ Llast=millis(); digitalWrite(Lled,!digitalRead(Lled)); }}if(mode=='R'){if(millis()-Rlast>250){ Rlast=millis(); digitalWrite(Rled,!digitalRead(Rled)); }}}
정상동작한다는 보장은 없지만 이 코드로 돌려보세요
문제 발생 시 디버깅은 직접 해보세요
댓글 0
조회수 12,958등록된 댓글이 없습니다.