Realizado por Cristian Gómez Mesa
Este é un prototipo de dispensador de xel que permite a dosificación sen contacto co dispensador.
O funcionamento é sinxelo, cando acercamos a man o dispositivo, o sensor de ultrasóns detecta a nosa man e o microcontrolador manda as instruccións o servomotor para que faga un xiro. O brazo de saída do servo entón tira dun cable de forma que se presiona o dosificador e despois retorna á posición de reposo.
Aquí o programa para o Arduino Nano
/*Programa de control do dispensador de xel hidroalcohólico para a Aula 216-1ºCM Instalacións de Telecomunicacións IES Perdouro*/ int servo = 9; // Acoplar o servo no pin 9 int trigPin = 10; //conecioṕns do sensor de ulltrasóns int echoPin = 11; long duracion; int distancia; #include <Servo.h> Servo myservo; int pos = 0; // Variable para almacenar a posición do servo void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); myservo.attach(servo); myservo.write(0); // iniciar o servo a 0 grados Serial.begin(9600); } void loop() { //sensor de distancia digitalWrite(trigPin, LOW); delayMicroseconds(2); // Establece a 'trigPin' en alto (HIGH) durante 10 microsegundos digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Lectura do 'echoPin' duracion = pulseIn(echoPin, HIGH); // Calculando a distancia distancia= duracion*0.034/2; // Imprime a distancia no monitor serie Serial.print("Distancia "); Serial.println(distancia); //se queremos ver a distancia no porto serie //Servo if(distancia<10)//Revisar que a distancia sexa menor que 10cm en caso afirmativo executar seguinte acción { myservo.write(45); // Establecer 0 Servo en etapas de 0 a 180 grados para deixar de presionar o émbolo delay(100); myservo.write(90); delay(100); myservo.write(135); delay(100); myservo.write(120); //axustar o recorrido do dispensador delay(1000); myservo.write(00); // Reiniciar o servo delay(1500); //esperar 1,5s entre cada lectura } }
Ningún comentario:
Publicar un comentario