#include #include #define INIT_TIMER_COUNT 6 #define RESET_TIMER2 TCNT2 = INIT_TIMER_COUNT int int_counter = 0; volatile int second = 0; #include #include SoftwareServo servo1; // SoftwareServo servo2; // SoftwareServo servo3; //Carril //Pines L298N #define input2 13 #define input1 12 #define enable 11 //Finales de carrera #define s1 17 //delante #define s2 16 //detras #define s3 15 #define s4 14 //Dispositivos #define mp3 8 #define ventilador 10 #define lampara 9 #define pir 6 #define stop3 39 int Command_ok=0; unsigned long time=0; ISR(TIMER2_OVF_vect) { RESET_TIMER2; int_counter += 1; if (int_counter == 700) { second+=1; int_counter = 0; } if( second < 2) analogWrite( ventilador, 255); if( second > 2) { analogWrite( ventilador, 128); if( second > 4) second=0; } }; void setup() { //Timer2 Settings: Timer Prescaler /64, TCCR2A |= ((1<=8) { e=e-8; analogWrite(lampara,e); } SoftwareServo::refresh(); delay(50); } servo3.write(stop3); analogWrite(lampara,0); } void avanza() { servo3.write(0); while (digitalRead(s1)) { SoftwareServo::refresh(); } servo3.write(stop3); } void giro_cero() { unsigned long time_servo=0; time_servo=millis(); servo1.write(20); while ((millis()-time_servo)<=300) { SoftwareServo::refresh(); } while (digitalRead(s3)) { servo1.write(20); SoftwareServo::refresh(); } servo1.write(33); } void giro() { unsigned long time_servo=0; time_servo=millis(); servo1.write(20); while ((millis()-time_servo)<=300) { SoftwareServo::refresh(); } while (digitalRead(s4)) { servo1.write(20); SoftwareServo::refresh(); } servo1.write(33); } void servo_ver(int angulo) { unsigned long time_servo2=0; time_servo2=millis(); servo2.write(angulo); while ((millis()-time_servo2)<=1000) { SoftwareServo::refresh(); } } void on_lamp_dif() { for (int i = 5; i <= 255; i=i+5) { analogWrite(lampara,i); if (i<50) delay(200); else if (i<140) delay(100); else if (i<180) delay(50); else if (i<200) delay(25); else delay(10); } } void off_lamp_dif() { for (int i = 255; i >= 0; i=i-5) { analogWrite(lampara,i); if (i<50) delay(200); else if (i<140) delay(100); else if (i<180) delay(50); else if (i<200) delay(25); else delay(10); } } void ini() { retrocede(); mp3_off(); analogWrite(ventilador,0); analogWrite(lampara,0); }