Practicas con Arduino
Programa
#include <Servo.h> const int abajoIZ=90; //Valores para definir posicion de los servos const int abajoDE=0; //de la barrera const int arribaIZ=0; const int arribaDE=90; Servo servoIZ; // crea un servo barrera Servo servoDE; // crea un servo barrera Servo servoCE; // crea un servo seleccion bola int led=8; //pin led alta luminosidad int ldr=A5; //ldr para detectar el paso de bola int CNY=A0; int color=0; int valLuz=0; boolean blanca=false; void setup() { servoIZ.attach(9); // servo Izq a pin 9(PWM) servoDE.attach(10); // servo De a pin 10(PWM) servoCE.attach(11); // servo cent a pin11(PWM) pinMode(led, OUTPUT); servoIZ.write(abajoIZ); servoDE.write(abajoDE); servoCE.write(90); digitalWrite(led,HIGH); } void loop() { servoCE.write(100); //Gira selector de las bolas valLuz=analogRead(ldr); while(valLuz>200){ //esperando que pase la bola servoCE.write(100); delay(20); valLuz=analogRead(ldr); } servoCE.write(90); //Bola detectada parar selecto delay(2000); //CNY DETECCION DE COLOR //LO HACEMOS CON LA MEDIA de 100 lecturas color=media(); if(color<300) blanca=true; else blanca=false; if (blanca){ //BOLA BLANCA servoDE.write(arribaDE); delay(2000); servoDE.write(abajoDE); } else { //BOLA NEGRA servoIZ.write(arribaIZ); delay(2000); servoIZ.write(abajoIZ); } } //CALCULA LA MEDIA DE 100 LECTURAS(1seg)//// int media(){ int val=0; long suma=0; for (int i=0; i<100; i++) {val=analogRead(CNY); suma=suma+val; delay(10); } val = suma / 100; return (val); }