Control Motores Giro arduino y contador de capsulas
Enviado por PachoDp13 • 22 de Agosto de 2017 • Trabajo • 1.088 Palabras (5 Páginas) • 338 Visitas
// Control Motores Giro Arduino y contador de capsulas
#include <Servo.h>
int valor1;
int valor2;
volatile int contador = 18; // Somos de lo mas obedientes
int n = contador ;
long T0 = 0 ; // Variable global para tiempo
// Declaramos la variable para controlar el servo
Servo servoMotor;
int motor1Pin1 = 2; // pin 2 on L293D IC
int motor1Pin2 = 3; // pin 7 on L293D IC
int motor2Pin1 = 4; // pin 10 on L293D IC
int motor2Pin2 = 5; // pin 15 on L293D IC
int ReceptorMotor1 = A0; // pin 2 on L293D IC
int ReceptorMotor2 = A1; // pin 2 on L293D IC
int motor3Pin1 = 6; // pin 10 on L293D IC
int motor3Pin2 = 7; // pin 15 on L293D IC
int state;
int flag=0; //makes sure that the serial only prints once the state
int stateStop=0;
void setup(){
Serial.println("Aplicación empieza");
pinMode(18, INPUT);
attachInterrupt( 0, ServicioBoton, FALLING);
pinMode(ReceptorMotor1, INPUT);
pinMode(ReceptorMotor2, INPUT);
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
pinMode(motor3Pin1, OUTPUT);
pinMode(motor3Pin2, OUTPUT);
servoMotor.attach(10);
Serial.begin(9600);
}
void loop(){
if (n != contador)
{ Serial.print(contador);
n = contador ;
char comando = Serial.read();
switch(comando){
case 's':
Serial.print(contador);
delay(1000);
int x=contador%40;
int y= (contador+20)%40;
if( y=0){
servoMotor.write(135);
// Esperamos 1 segundo
delay(1000);
}
if( x=0){
servoMotor.write(45);
// Esperamos 1 segundo
delay(1000);
}
break;
}
}
if(Serial.available () > 0)
{
state= Serial.read();
flag=0;
} if (state == 'F') {
digitalWrite(motor3Pin1, LOW);
digitalWrite(motor3Pin2, HIGH);
if(flag == 0){
Serial.println("Control Giro");
flag=1;
}
}
// if the state is 'R' the motor will turn left
else if (state == 'R') {
digitalWrite(motor2Pin1,
...