0% encontró este documento útil (0 votos)
95 vistas5 páginas

Programacion Arduino Sistemas de Control

Este documento presenta el código para un sistema que monitorea el nivel de un tanque de agua usando un sensor ultrasónico y muestra la lectura en un LCD. Cuando el nivel baja a ciertos puntos preestablecidos, enciende LEDs de advertencia. También detecta cuando se presiona un botón y enciende/apaga una bomba. Revisa si se detecta humo y enciende otra luz. Muestra continuamente el nivel en el LCD y envía la lectura por el puerto serie.

Cargado por

Tavo Reyes
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
95 vistas5 páginas

Programacion Arduino Sistemas de Control

Este documento presenta el código para un sistema que monitorea el nivel de un tanque de agua usando un sensor ultrasónico y muestra la lectura en un LCD. Cuando el nivel baja a ciertos puntos preestablecidos, enciende LEDs de advertencia. También detecta cuando se presiona un botón y enciende/apaga una bomba. Revisa si se detecta humo y enciende otra luz. Muestra continuamente el nivel en el LCD y envía la lectura por el puerto serie.

Cargado por

Tavo Reyes
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

#include <Wire.

h>

#include <LiquidCrystal_I2C.h> //Crear el objeto lcd dirección 0x3F y 16 columnas x 2 filas

LiquidCrystal_I2C lcd(0x27, 16, 2); //

const int Trigger = 2; //Pin digital 2 para el Trigger del sensor

const int Echo = 3; //Pin digital 3 para el echo del sensor

const int sensorPin = 8;

int Bomb = 10 ; int boton = 9;

bool estado = false;

bool estado_anterior = true;

int led = 5;

bool on = false;

bool off = true;

int m = 0;

int mm = 0;

bool flag = 0;

void setup() {

Serial.begin(9600); //iniciar puerto serie

pinMode(sensorPin , INPUT); //definir pin como entrada

// Inicializar el LCD

lcd.init();

//Encender la luz de fondo.

lcd.backlight();

// Escribimos el Mensaje en el LCD.

lcd.print("Iniciando...");

Serial.begin(9600);//iniciailzamos la comunicación

pinMode(Trigger, OUTPUT); //pin como salida

pinMode(Echo, INPUT); //pin como entrada


digitalWrite(Trigger, LOW);//Inicializamos el pin con 0

pinMode(13, OUTPUT);

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

pinMode(7, OUTPUT);

pinMode(9, INPUT_PULLUP);

pinMode(10, OUTPUT);

pinMode(5, OUTPUT);

void loop() {

long t; //timepo que demora en llegar el eco

long d; //distancia en centimetros

digitalWrite(Trigger, HIGH);

delayMicroseconds(10); //Enviamos un pulso de 10us

digitalWrite(Trigger, LOW);

t = pulseIn(Echo, HIGH); //obtenemos el ancho del pulso

d = t / 59; //escalamos el tiempo a una distancia en cm

m = d * 10;

mm = 240 - m;

Serial.print("Distancia: ");

Serial.print(d); //Enviamos serialmente el valor de la distancia

Serial.print("cm");

Serial.println();

if (d == 25) {

digitalWrite(11, HIGH);

flag = 1;

if (d > 25) {

digitalWrite(11, LOW);
}

if (d == 15) {

digitalWrite(12, HIGH);

flag = 1;

if (d > 15) {

digitalWrite(12, LOW);

if (d == 5) {

digitalWrite(13, HIGH);

flag = 1;

if (d > 5) {

digitalWrite(13, LOW);

if (flag){

digitalWrite(5, HIGH);

delay(2000);

flag = 0;

digitalWrite(5, LOW);

// Ubicamos el cursor en la primera posición(columna:0) de la segunda línea(fila:1)

lcd.clear();

if ((d <= 5) && (d >= 0) ) {

lcd.setCursor(0, 0);

lcd.print("Tanque al: 75%");

if ((d <= 15) && (d >= 6)) {

lcd.setCursor(0, 0);
lcd.print("Tanque al: 50%");

if ((d <= 25) && (d >= 16)) {

lcd.setCursor(0, 0);

lcd.print("Tanque al: 25%");

lcd.setCursor(0, 0);

lcd.print("Tanque al: ");

lcd.setCursor(0, 1);

lcd.print(mm);

delay(100);

estado = digitalRead(boton);

if (estado != estado_anterior) //hay cambio : Han pulsado o soltado

if (estado == LOW) //Al pulsar botón cambiar LED, pero no al soltar

digitalWrite(Bomb, !digitalRead(Bomb));

estado_anterior = estado ; // Para recordar el ultimo valor

if ((d <= 5) && (d >= 0)) {

digitalWrite(Bomb, LOW);

int value = 0;

value = digitalRead(sensorPin ); //lectura digital de pin

if (value == LOW) {

digitalWrite(7, HIGH);

if (d >= 25) {
digitalWrite(7, LOW);

También podría gustarte