Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Sensor ultrasónico con alarma, LCD y temperatura

Componentes y suministros

Arduino UNO
× 1
LCD estándar Adafruit - 16x2 blanco sobre azul
× 1
Sensor ultrasónico - HC-SR04 (genérico)
× 1
Termómetro digital de 1 cable de resolución programable DS18B20 de Maxim Integrated
× 1
Resistencia de 4,75 k ohmios
× 1
Interruptor de botón SparkFun de 12 mm
× 1
Potenciómetro de una sola vuelta - 10k ohmios
× 1
Buzzer
1 LED y 1 zumbador en la misma salida, ¡cuidado con mAmp! El timbre que utilizo es 8mAmp.
× 1
LED
1 LED verde, 1 amarillo y 1 rojo.
× 3
Resistencia 221 ohm
× 3
Breadboard (genérico)
× 1
Cables de puente (genéricos)
× 1

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

Este proyecto me brinda la información que necesito sobre el nivel del agua en un tanque de agua. Cuando el nivel es bajo, el LED verde está encendido. Cuando el nivel es medio, el LED amarillo está encendido. Cuando el nivel es ALTO, el LED rojo parpadea al mismo tiempo con un zumbador. La distancia desde el sensor hasta el nivel del agua se mide mediante el sensor ultrasónico y se imprime en la pantalla LCD junto con la temperatura en ese tanque. Este proyecto es parte de un proyecto más grande. La segunda parte constará de 6 LEDS de seguimiento montados en un círculo para indicar que la bomba está bombeando. Ver:https://create.arduino.cc/projecthub/MichDragstar/arduino-uno-or-trinket-pro-5v-6-chasing-leds-with-pot-and-pb-23a1d7 La tercera parte iniciará la bomba cuando el nivel es alto y detener la bomba cuando el nivel es bajo. (en construcción) Para el proyecto real utilizo un sensor ultrasónico impermeable, esto no cambiará el cableado ni el código. No sé qué pasa con las lecturas cuando el sensor está mojado (humedad), por lo que este proyecto es solo para darme información, el tercer proyecto se usa para las actividades de la bomba y se realizará mediante contactos magnéticos.

  #include  // Cargar la biblioteca de cristal líquido oneWire (ONE_WIRE_BUS); // Configure una instancia de oneWire para comunicarse con cualquier dispositivo OneWire // (no solo IC de temperatura Maxim / Dallas) Sensores de temperatura Dallas (&oneWire); // Pase nuestra referencia oneWire a Dallas Temperature.LiquidCrystal LCD (12, 11, 5, 4, 3, 2); // Crea un objeto de cristal líquido llamado LCDint trigPin =9; // Pin de disparo del sensor conectado al pin de Arduino 9int echoPin =7; // Pin Sensor Echo conectado al pin Arduino 7int myCounter =0; // declara tu variable myCounter y ponla a 0float pingTime; // tiempo para que el ping viaje desde el sensor al objetivo y vuelva a flotar targetDistance; // Distancia al objetivo en centímetrosfloat speedOfSound =776.5; // Velocidad del sonido en millas por horavoid setup () {Serial.begin (9600); pinMode (trigPin, SALIDA); pinMode (echoPin, ENTRADA); LCD.begin (16, 2); // Dile a Arduino que inicie tu LCD LCD 16x2.setCursor (0, 0); // Coloca el cursor de la pantalla LCD en la esquina superior izquierda, columna 0, fila 0 LCD.print ("Distancia:"); // Imprimir mensaje en la primera fila sensores.begin (); // Inicie la biblioteca pinMode (8, OUTPUT); // pin 8, 10, 13 pines de salida pinMode (10, SALIDA); pinMode (13, SALIDA);} bucle vacío () {digitalWrite (trigPin, LOW); // Establecer el pin de disparo bajo delayMicroseconds (2000); // Deje que la señal se estabilice digitalWrite (trigPin, HIGH); // Establece trigPin alto delayMicroseconds (15); // Retardo en estado alto digitalWrite (trigPin, LOW); // ping ahora se ha enviado delayMicroseconds (10); // Retraso en estado alto pingTime =pulseIn (echoPin, HIGH); // pingTime en microcegundos pingTime =pingTime / 1000000; // convierte pingTime en segundos dividiendo por 1000000 (microsegundos en un segundo) pingTime =pingTime / 3600; // convierte el tiempo de ping en horas dividiéndolo por 3600 (segundos en una hora) targetDistance =speedOfSound * pingTime; // Esto estará en millas, ya que declaramos la velocidad del sonido como kilómetros por hora; aunque vamos a convertirlo de nuevo a centímetros targetDistance =targetDistance / 2; // Recuerde que el ping viaja al objetivo y regresa desde el objetivo, por lo que debe dividir por 2 para la distancia real del objetivo. targetDistance =targetDistance * 160934.4; // Convierta millas a centímetros multiplicando por 160934,4 sensores.requestTemperatures (); // Envía el comando para obtener lecturas de temperatura LCD.setCursor (10, 0); // Coloca el cursor en la décima columna de la primera fila LCD.print (""); // Imprime espacios en blanco para borrar la fila LCD.setCursor (10, 0); // Establezca el Cursor nuevamente en la décima columna de la primera fila LCD.print ((int) (targetDistance + 0.5)); // Imprime la distancia medida LCD.print ("cm"); // Imprime tus unidades LCD.setCursor (0, 1); // Coloca el cursor en la primera columna de la segunda fila LCD.print (""); // Imprime espacios en blanco para borrar la fila LCD.setCursor (0, 1); // Establezca el Cursor nuevamente en la primera columna de la segunda fila if (targetDistance> 40) {LCD.print ("LEV LOW"); LCD.print (sensores.getTempCByIndex (0)); LCD.print ((carácter) 223); LCD.print ("C"); } else if (targetDistance <40 &&targetDistance> 20) {LCD.print ("LEV MED"); LCD.print (sensores.getTempCByIndex (0)); LCD.print ((carácter) 223); LCD.print ("C"); } else (targetDistance <20); {LCD.print ("LEV HIGH"); LCD.print (sensores.getTempCByIndex (0)); LCD.print ((carácter) 223); LCD.print ("C"); } retraso (2000); if (targetDistance> 40) {digitalWrite (13, HIGH); // LED verde ENCENDIDO} else {digitalWrite (13, LOW); // LED verde APAGADO} if (targetDistance <40 &&targetDistance> 20) {digitalWrite (8, HIGH); // LED amarillo ENCENDIDO} else {digitalWrite (8, LOW); // LED amarillo APAGADO} if (targetDistance <20) {digitalWrite (10, HIGH); // Retardo de encendido del LED rojo (2000); digitalWrite (10, BAJO); // LED rojo APAGADO} else {digitalWrite (10, LOW); // LED rojo APAGADO}}  

Código

  • Archivo sin título
Archivo sin título C / C ++
 #include  // Cargar la biblioteca de cristal líquido ); // Configure una instancia de oneWire para comunicarse con cualquier dispositivo OneWire // (no solo IC de temperatura Maxim / Dallas) Sensores de temperatura Dallas (&oneWire); // Pase nuestra referencia oneWire a Dallas Temperature.LiquidCrystal LCD (12, 11, 5, 4, 3, 2); // Crea un objeto de cristal líquido llamado LCDint trigPin =9; // Pin de disparo del sensor conectado al pin de Arduino 9int echoPin =7; // Pin Sensor Echo conectado al pin Arduino 7int myCounter =0; // declara tu variable myCounter y ponla a 0float pingTime; // tiempo para que el ping viaje desde el sensor al objetivo y vuelva a flotar targetDistance; // Distancia al objetivo en centímetrosfloat speedOfSound =776.5; // Velocidad del sonido en millas por horavoid setup () {Serial.begin (9600); pinMode (trigPin, SALIDA); pinMode (echoPin, ENTRADA); LCD.begin (16, 2); // Dile a Arduino que inicie tu LCD LCD 16x2.setCursor (0, 0); // Coloca el cursor de la pantalla LCD en la esquina superior izquierda, columna 0, fila 0 LCD.print ("Distancia:"); // Imprimir mensaje en la primera fila sensores.begin (); // Inicie la biblioteca pinMode (8, OUTPUT); // pin 8, 10, 13 pines de salida pinMode (10, SALIDA); pinMode (13, SALIDA);} bucle vacío () {digitalWrite (trigPin, LOW); // Establecer el pin de disparo bajo delayMicroseconds (2000); // Deje que la señal se estabilice digitalWrite (trigPin, HIGH); // Establece trigPin alto delayMicroseconds (15); // Retardo en estado alto digitalWrite (trigPin, LOW); // ping ahora se ha enviado delayMicroseconds (10); // Retraso en estado alto pingTime =pulseIn (echoPin, HIGH); // pingTime en microcegundos pingTime =pingTime / 1000000; // convierte pingTime en segundos dividiendo por 1000000 (microsegundos en un segundo) pingTime =pingTime / 3600; // convierte el tiempo de ping en horas dividiéndolo por 3600 (segundos en una hora) targetDistance =speedOfSound * pingTime; // Esto estará en millas, ya que declaramos la velocidad del sonido como kilómetros por hora; aunque vamos a convertirlo de nuevo a centímetros targetDistance =targetDistance / 2; // Recuerde que el ping viaja al objetivo y regresa desde el objetivo, por lo que debe dividir por 2 para la distancia real del objetivo. targetDistance =targetDistance * 160934.4; // Convierta millas a centímetros multiplicando por 160934,4 sensores.requestTemperatures (); // Envía el comando para obtener lecturas de temperatura LCD.setCursor (10, 0); // Coloca el cursor en la décima columna de la primera fila LCD.print (""); // Imprime espacios en blanco para borrar la fila LCD.setCursor (10, 0); // Establezca el Cursor nuevamente en la décima columna de la primera fila LCD.print ((int) (targetDistance + 0.5)); // Imprime la distancia medida LCD.print ("cm"); // Imprime tus unidades LCD.setCursor (0, 1); // Coloca el cursor en la primera columna de la segunda fila LCD.print (""); // Imprime espacios en blanco para borrar la fila LCD.setCursor (0, 1); // Establezca el Cursor nuevamente en la primera columna de la segunda fila if (targetDistance> 40) {LCD.print ("LEV LOW"); LCD.print (sensores.getTempCByIndex (0)); LCD.print ((carácter) 223); LCD.print ("C"); } else if (targetDistance <40 &&targetDistance> 20) {LCD.print ("LEV MED"); LCD.print (sensores.getTempCByIndex (0)); LCD.print ((carácter) 223); LCD.print ("C"); } else (targetDistance <20); {LCD.print ("LEV HIGH"); LCD.print (sensores.getTempCByIndex (0)); LCD.print ((carácter) 223); LCD.print ("C"); } retraso (2000); if (targetDistance> 40) {digitalWrite (13, HIGH); // LED verde ENCENDIDO} else {digitalWrite (13, LOW); // LED verde APAGADO} if (targetDistance <40 &&targetDistance> 20) {digitalWrite (8, HIGH); // LED amarillo ENCENDIDO} else {digitalWrite (8, LOW); // LED amarillo APAGADO} if (targetDistance <20) {digitalWrite (10, HIGH); // Retardo de encendido del LED rojo (2000); digitalWrite (10, BAJO); // LED rojo APAGADO} else {digitalWrite (10, LOW); // LED rojo APAGADO}} 

Esquemas

lcd_pot_led_buzz_pb_distsens_temp_EHVdF6S1L7.fzz

Proceso de manufactura

  1. Control de acceso con QR, RFID y verificación de temperatura
  2. Mide temperaturas con un sensor DS18B20 de 1 cable y Raspberry Pi
  3. Sensor de temperatura Python y Raspberry Pi
  4. Sensor de temperatura y luz Raspberry Pi
  5. Aeroponía con Raspberry Pi y sensor de humedad
  6. Sensor de temperatura Raspberry Pi
  7. Portenta y sensor de termopar (con MAX6675)
  8. Sensor DHT11 con LED y altavoz piezoeléctrico
  9. Sensor de temperatura múltiple
  10. Reloj despertador simple con DS1302 RTC
  11. Sensor de temperatura y flujo de laboratorio en chip