O funcionamento é sinxelo: cando acercamos a man ao dispositivo, o sensor de ultrasóns detecta a nosa man e o microcontrolador manda as instrucións ao 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 repouso.
Un traballo realizado polo alumnado do Ciclo Medio de Instalacións en Telecomunicacións.
Este é o html para insertar o código do programa:
/*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
}
}



Sem comentários:
Enviar um comentário