|
- #include <Servo.h>
- #include"LedControl.h"
- LedControl lc=LedControl(12,11,13,1);
- double _ABVAR_1_i = 0 ;
- Servo servo_pin_4;
- const int s0 = A3;
- const int s1 = A4;
- const int s2 = A1;
- const int s3 = A5;
- const int out = 8;
- const int led = 7;
- int red = 0;
- int green = 0;
- int blue = 0;
- int _ABVAR_2_a = 0;
- int _ABVAR_3_b = 0;
-
- void trunright();
- void trunleft();
- void stop();
- void duo_ji();
- void forwoard_drop();
- void forwoard_rise();
- void back();
- void forwoard();
- void color();
- void pan_duan_yan_se();
- void led_left();
- void led_right();
- void led_forword();
-
- void setup()
- {
- pinMode(16 , INPUT);
- pinMode(14, INPUT);
- pinMode( 9 , OUTPUT);
- pinMode( 10 , OUTPUT);
- pinMode( 5 , OUTPUT);
- pinMode( 6 , OUTPUT);
- servo_pin_4.attach(4);
- _ABVAR_1_i = 0 ;
- pinMode(s0, OUTPUT);
- pinMode(s1, OUTPUT);
- pinMode(s2, OUTPUT);
- pinMode(s3, OUTPUT);
- pinMode(out, INPUT);
- pinMode(led, OUTPUT);
- digitalWrite(s0, HIGH);
- digitalWrite(s1, HIGH);
- lc.shutdown(0,false);
- lc.setIntensity(0,8);
- lc.clearDisplay(0);
- lc.setRow(0,0,0xff);
- lc.setRow(0,1,0xff);
- lc.setRow(0,2,0xff);
- lc.setRow(0,3,0xff);
- lc.setRow(0,4,0xff);
- lc.setRow(0,5,0xff);
- lc.setRow(0,6,0xff);
- lc.setRow(0,7,0xff);
- }
-
- void loop()
- {
- if (( digitalRead(14) && digitalRead(16) ))
- {
- forwoard();
- }
- else
- {
- if (( !( digitalRead(14) ) && digitalRead(16) ))
- {
-
-
- trunright();
-
- }
- else
- {
- if (( digitalRead(14) && !( digitalRead(16) ) ))
- {
-
- trunleft();
- }
- else
- {
- if (( !( digitalRead(14) ) && !( digitalRead(16) ) ))
- {
- _ABVAR_1_i = ( _ABVAR_1_i + 1 ) ;
- if (( ( _ABVAR_1_i ) == ( 1 ) ))
- {
- forwoard_rise();
- delay( 3000 );
- forwoard();
- delay( 1700 );
- }
- else
- {
- if (( ( _ABVAR_1_i ) == ( 2 ) ))
- {
- forwoard_rise();
- delay(3000);
- forwoard();
- delay( 500 );
- }
- if (( ( _ABVAR_1_i ) == ( 3 ) ))
- {
- stop();
- digitalWrite(led, HIGH);
- delay(500);
- color();
- digitalWrite(led, LOW);
- if (red < blue && red < green)
- {
- _ABVAR_2_a = 1;
- //LcdDisplay(" - (Red Color)");
- }
- else if (blue < red && blue < green)
- {
- _ABVAR_2_a = 2;
- // LcdDisplay(" - (Blue Color)");
- }
- else if (green < red && green < blue)
- {
- _ABVAR_2_a = 3;
- // LcdDisplay(" - (Green Color)");
- }
- while(((_ABVAR_2_a)!= (_ABVAR_3_b)))
- {
- pan_duan_yan_se();
- }
- duo_ji();
- }
- }
- }
- }
- }
- }
- }
-
- void trunright()
- {
- led_right();
- analogWrite(9 , 200);
- analogWrite(10 , 0);
- analogWrite(5 , 0);
- analogWrite(6 , 200);
- }
-
- void stop()
- {
- digitalWrite( 9 , LOW );
- digitalWrite( 10 , LOW );
- digitalWrite( 5 , LOW );
- digitalWrite( 6 , LOW );
- }
-
- void forwoard_drop()
- {
- analogWrite(9 , 100);
- analogWrite(10 , 0);
- analogWrite(5 , 100);
- analogWrite(6 , 0);
- led_forword();
- }
-
- void duo_ji()
- {
- servo_pin_4.write( 90 );
- delay( 300 );
- servo_pin_4.write(360 );
- delay( 600 );
- servo_pin_4.write( 0 );
- delay( 300 );
- }
-
- void trunleft()
- {
- analogWrite(9 , 0);
- analogWrite(10 , 200);
- analogWrite(5 , 200);
- analogWrite(6 , 0);
- led_left();
- }
-
- void forwoard()
- {
- analogWrite(9 , 200);
- analogWrite(10 , 0);
- analogWrite(5 , 200);
- analogWrite(6 , 0);
- led_forword();
- }
-
- void back()
- {
- analogWrite(9 , 0);
- analogWrite(10 , 120);
- analogWrite(5 , 0);
- analogWrite(6 , 120);
- }
-
- void forwoard_rise()
- {
- analogWrite(9 , 255);
- analogWrite(10 , 0);
- analogWrite(5 , 255);
- analogWrite(6 , 0);
- led_forword();
- }
-
- void forwoard_rise1()
- {
- analogWrite(9 , 210);
- analogWrite(10 , 0);
- analogWrite(5 , 255);
- analogWrite(6 , 0);
- led_forword();
- }
-
- void color()
- {
- digitalWrite(s2, LOW);
- digitalWrite(s3, LOW);
- //count OUT, pRed, RED
- red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
- digitalWrite(s3, HIGH);
- //count OUT, pBLUE, BLUE
- blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
- digitalWrite(s2, HIGH);
- //count OUT, pGreen, GREEN
- green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
- }
- void pan_duan_yan_se()
- {
- forwoard();
- delay(600);
- stop();
- digitalWrite(led, HIGH);
- delay(500);
- color();
- digitalWrite(led, LOW);
- if (red < blue && red < green)
- {
- _ABVAR_3_b = 1;
- // LcdDisplay(" - (Red Color)");
- }
-
- else if (blue < red && blue < green)
- {
- _ABVAR_3_b = 2;
- // LcdDisplay(" - (Blue Color)");
- }
-
- else if (green < red && green < blue)
- {
- _ABVAR_3_b = 3;
- // LcdDisplay(" - (Green Color)");
- }
- }
- void led_right()
- {
-
- lc.setRow(0,0,0x00);
- lc.setRow(0,1,0x08);
- lc.setRow(0,2,0x04);
- lc.setRow(0,3,0x02);
- lc.setRow(0,4,0x8f);
- lc.setRow(0,5,0x02);
- lc.setRow(0,6,0x04);
- lc.setRow(0,7,0x08);
-
- }
- void led_left()
- {
-
-
- lc.setRow(0,0,0x00);
- lc.setRow(0,1,0x10);
- lc.setRow(0,2,0x20);
- lc.setRow(0,3,0x40);
- lc.setRow(0,4,0xfe);
- lc.setRow(0,5,0x40);
- lc.setRow(0,6,0x20);
- lc.setRow(0,7,0x10);
- }
- void led_forword()
- {
-
- lc.setRow(0,0,0x08);
- lc.setRow(0,1,0x1c);
- lc.setRow(0,2,0x2a);
- lc.setRow(0,3,0x49);
- lc.setRow(0,4,0x08);
- lc.setRow(0,5,0x08);
- lc.setRow(0,6,0x08);
- lc.setRow(0,7,0x08);
-
- }
-
-
-
|