// Arduino Nano mini (El que lleva conector USB) // Fotometro electrónico con arduino // Servo en Pin 9 // Célula fotoeléctrica en pin A0 // Botón para leer Pin 7 // Pines 12 y 13 para leds informativos dial
#include <Servo.h>
Servo aguja; const int pinFot =0;
#define MEDIDA 7 //Boton para subir el retraso int valor; int angulo; int veces; int pos1; int pos2; int pos3;
void setup() { pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT);
aguja.attach(9,600,2400); pinMode(MEDIDA, INPUT_PULLUP); Serial.begin(9600); }
void loop() { // Botón para hacer la lectura de luz if(digitalRead(MEDIDA) == LOW) { valor = analogRead(pinFot); // Lectura de luz de la célula // angulo = map(valor, 0, 1023, 0, 180); pos1=0; pos2=0; pos3=0;
if (valor>0 && valor<25){angulo=130; pos3=6;}; // velocidad 1/5,6 if (valor>25 && valor<50){angulo=120; pos3=5;}; // velocidad 2/5,6 if (valor>50 && valor<150){angulo=110; pos3=4;}; // velocidad 4/5,6 if (valor>150 && valor<250){angulo=100; pos3=3;}; // velocidad 8/5,6 if (valor>250 && valor<350){angulo=90; pos3=2;}; // velocidad 16/5,6 if (valor>350 && valor<450){angulo=80; pos3=1;}; // velocidad 30/5,6 if (valor>450 && valor<550){angulo=70; pos2=4;}; // velocidad 60/5,6 if (valor>550 && valor<650){angulo=60; pos2=3;}; // velocidad 125/5,6 if (valor>650 && valor<700){angulo=50; pos2=2;}; // velocidad 250/5,6 if (valor>700 && valor<760){angulo=40; pos2=1;}; // velocidad 250/8 if (valor>760 && valor<830){angulo=30; pos1=4;}; // velocidad 250/11 if (valor>830 && valor<890){angulo=20; pos1=3;}; // velocidad 500/11 if (valor>890 && valor<950){angulo=10; pos1=2;}; // velocidad 1000/11 if (valor>950 && valor<1000){angulo=0; pos1=1;}; //velocidad 1000/16
aguja.write(angulo); Serial.println(valor); delay(100); if (pos1>0){destello1(pos1);}; if (pos2>0){destello2(pos2);}; if (pos3>0){destello3(pos3);}; } }
// SUBRUTINAS // Cambia destellos para led 1 pin 13 void destello1(int veces){ for (int i = 0; i<veces; i++) { digitalWrite(13, HIGH); delay(100); digitalWrite(13, LOW); delay (100); }
}
// Cambia destellos para led 2 pin 12 void destello2(int veces){ for (int i = 0; i<veces; i++) { digitalWrite(12, HIGH); delay(100); digitalWrite(12, LOW); delay (100); }
}
// Cambia destellos para led 1 y 2 pin 12 y 13 void destello3(int veces){ for (int i = 0; i<veces; i++) { digitalWrite(12, HIGH); digitalWrite(13, HIGH); delay(100); digitalWrite(12, LOW); digitalWrite(13, LOW); delay (100); }
}
|