1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
int buttonState = 0; int Lim_L = 0; int Lim_R = 0; //모드 char mode ='G';
void setup() { pinMode(button, INPUT_PULLUP); pinMode(Limit_L,INPUT); pinMode(Limit_R,INPUT); pinMode(4, OUTPUT); // 방향 HIGH, LOW +,- pinMode(5, OUTPUT); // PWM pinMode(6, OUTPUT); // PWM pinMode(7, OUTPUT); // 방향 HIGH, LOW +,- Serial.begin(9600); }
void loop() { // put your main code here, to run repeatedly buttonState = digitalRead(button); Lim_L = digitalRead(Limit_L);// leftstate값 확인필요!, 흰색 = 750, 검은색 = 0 Lim_R = digitalRead(Limit_R);
mode_selector();
Serial.println(mode); switch(mode){ case 'G': digitalWrite(4,0); //직진 analogWrite(5,255); analogWrite(6,255); digitalWrite(7,0); break; case 'L': digitalWrite(4,1); // 후진 analogWrite(5,255); analogWrite(6,255); digitalWrite(7,1); delay(2000); digitalWrite(4,0); // 좌회전 analogWrite(5,0); analogWrite(6,255); digitalWrite(7,0); delay(2000); break; case 'R':digitalWrite(4,1); // 후진 analogWrite(5,255); analogWrite(6,255); digitalWrite(7,1); delay(2000); digitalWrite(4,0); // 우회전 analogWrite(5,255); analogWrite(6,0); digitalWrite(7,0); delay(2000); break; case 'B': digitalWrite(4,1); // 후진 analogWrite(5,255); analogWrite(6,255); digitalWrite(7,1); break; } delay(10); }
void mode_selector(){ if(Lim_L == 1 && Lim_R == 1){mode ='G';} else if(Lim_L == 0 && Lim_R == 1){mode ='R';} else if(Lim_L == 1 && Lim_R == 0){mode ='L';} else if(Lim_L == 0 && Lim_R == 0){mode ='B';} }
|
Comments
shortname
for Disqus. Please set it in_config.yml
.