InicioCiencia EducacionPractica Arduino-C# Activacion con Relevdor
Bienvenidos a este post.

De inicio me gustaria aclarar que no soy electronico pero me gusta mucho esta area y comparto esta ultima practica que realizamos en laboratorio.

La tarea es:

Activar relevador si el sensor de temperatura indica que es mayor a un limite establecido solo si el sensor de presencia o proximidad indica que hay algo cerca.

Suena complicado?

El circuito no lo tengo dibujado pero pondre una foto y un video en youtube

Practica realizada con Arduino Uno

Requisitos:

Arduino UNO
Relevador 5v
LM35
QRD1114
LTV4n25
TIP41CG
3 resistencias de menos de 1k
1 resistencia de 4.7k
1 LED
Cables

Circuito



Codigo de Arduino

//Declaraciones de configuracion de pines
int ai_pint=A5,ai_pinp=A0;
//Pin de salida 8, Niveles de salidas digitales
int o_pin=8,h=HIGH,l=LOW;
//Variables de control
int t=0,ta=0,p=0,pa=0,limite=24,sen=750,i=0;
//Variables de lectura de sensores
char lim[3],sens[3],sentence[4],s,j=0;
void setup()
{//Iniciar puerto serie
Serial.begin(9600);
//Configurar PIN de salida
pinMode(o_pin, OUTPUT);
}
void loop(){
//Leer instruccion de pueto serie
while(Serial.available() > 0){
sentence=Serial.read();
++i;
}
//Opcion solicitada
s=sentence[0];
j=1;
//Leer datos despues de opcion
while(j<=i){
if((s=='T')||(s=='t')){
//Limite sensor temp
lim[j-1]=sentence[j];
}
if((s=='S')||(s=='s')){
//Limite Sensor proximidad
sens[j-1]=sentence[j];
}
++j;
}
//Si se detecto algun dato
if(i>0){
if((s=='T')||(s=='t')){
//Serial.println(lim);
//convertir arreglo caracteres a entero
limite=atoi(lim);
//Enviar respuesta de configuracion realizada
Serial.print("T: ";
Serial.println(limite,DEC);
//regresar indice a 0 de sentencias
i=0;
}
//similar al anterior
if((s=='S')||(s=='s')){
//Serial.println(sen);
sen=atoi(sens);
Serial.print("S: ";
Serial.println(sen,DEC);
i=0;
}
}
//leer valor de pin analogico A0
//configurado al inicio
//sensor de proximidad
pa=analogRead(ai_pinp);
//si es diferente de la ultima lectura
if(p!=pa){
//se actualiza
p=pa;
//si es menor que el limite revisa la temperatura
if(p<sen){
ta=analogRead(ai_pint);
ta=ta/2;
//si es diferente de la anterior
if(t!=ta){
t=ta;
Serial.print("T";
Serial.println(t,DEC);
//si temperatura es mayor o igual que el limite
//encendemos el relevador(cualquier cosa que enga conectada)
if(t>=limite){
digitalWrite(o_pin, h);
}else{
digitalWrite(o_pin, l);
}
}
}//enviar ultimo estatus de proximidad
Serial.print("P";
Serial.println(p,DEC);
}
//reiniciar valores
sentence[0]=' '; sentence[1]=' '; sentence[2]=' '; sentence[3]=' ';
lim[0]=' '; lim[1]=' '; lim[2]=' ';
sens[0]=' '; sens[1]=' '; sens[2]=' '; //esperar un segundo para volver a realizar todo
delay(1000);
}

despues de grabado el Circuito espero se vea bien en la imagen, deben probarlo con el monitor serial del arduino y posteriormente con el programa en esta direccion de Dropbox(si no lo conocen registrense http://db.tt/7fi1x6AJ y me hacen un favor)

El programa que elabore yo no es muy sofisticado pero puede funcionarles, al inicio la idea era hacerlo con componentes de National Instruments Measurements Studio 2012 pero se acabo la licencia para cuando estaba realizando este proyecto.

Codigo de C# https://www.dropbox.com/s/i3515skll2e743s/InterfazFinal.zip

Si hay alguna duda con gusto intentare ayudar, si se mueven o borran los archivos me avisan, saludos
Datos archivados del Taringa! original
10puntos
32visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
3visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

j
jaigalbert🇦🇷
Usuario
Puntos0
Posts2
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.