Proyectos

Proyectos hechos por una persona o muy pequeño grupo a modo personal, no proyectos industriales.
Responder
Luis
Mensajes: 1
Registrado: 11 Ago 2016, 11:48
Been thanked: 1 time

Proyectos

Mensaje por Luis » 11 Ago 2016, 11:51

Hola, me gustaría hablaros del proyecto que estoy haciendo,Se Trata de circuito con bluetooth para poder Controlar Una maquina agrícola Que activara Unas electrovalvulas dependiendo de UNOS Sensores de ultrasonido.
Componentes:

Arduino

Módulo Bluetooth

Sensor Ultrasonidos

Codigo Arduino:

Código: Seleccionar todo

#include <SoftwareSerial.h>

/* version 5.0 con solo bluetooth
* variable tipo define si es  -- -- automatico=1 ò manual=0
* 1 automatico
*             tipo,velocidad,metros,fin;
* 0 manual
*             tipo,izdq,dcha,fin;
* retardo en abrir electrovalvula  retardo
* tiempo abierto    electrovalvula  abierto
* controla dos sensores  ... izq  y dcha
* con funcion milis
*/
/* detector de objetos  rango de deteccion  min=100  max=400 */
/* sin boton de paro solo encendido y funcionando */
/*pines*/
//Aquí conectamos los pins RXD,TDX del módulo Bluetooth.
SoftwareSerial BT(4,2); //4= RX, 2= TX.
double dista_vo=2.70; // distancia de sensor a boquillas en metros
int minimo=6; // medida mi,nima detecta en cm
int maximo=160; // medida maxima detecta en cm
// variables dela conexion bluetooth
int tipo,izda,dcha,vel,dt2,dt3,dt4,aut,man,control,control1;
double dist_r,retardo,abierto,mseg,metros;
// resto de var
int emi_iz=8,recep_iz=7;
int emi_dh=9,recep_dh=10;
int rele_iz=5;  /* pin activa rele izquierdo;*/
int rele_dh=6;  /* pin activa rele derecho;*/
/*               variables                   */
// todas double
int re_iz,re_dh,abre_iz,abre_dh;
int dista_iz,dista_dh;
int tiem_iz,tiem_dh;

void setup(){

pinMode(emi_iz, OUTPUT); /*activación del pin 8 como salida: para el pulso ultrasónico el trig*/
pinMode(recep_iz, INPUT); /*activación del pin 7 como entrada: tiempo del rebote del ultrasonidoel echo*/
pinMode(rele_iz,OUTPUT);
pinMode(emi_dh, OUTPUT); /*activación del pin 9 como salida: para el pulso ultrasónico el trig*/
pinMode(recep_dh, INPUT); /*activación del pin 10 como entrada: tiempo del rebote del ultrasonidoel echo*/
pinMode(rele_dh,OUTPUT);
pinMode(4,INPUT);
pinMode(2,OUTPUT);
Serial.begin(9600);/* activacion del serie*/
BT.flush();
BT.begin(9600); // activo bluetooth
digitalWrite(13,LOW);
}

void loop(){

leo();
while (tipo==1){
automatico();
leo();
}
while (tipo==0){
manual();
leo();
}
}
void manual(){// tipo 0 manual  *************************************************
izda=dt2;dcha=dt3;
digitalWrite(rele_iz,izda);
digitalWrite(rele_dh,dcha);
}
void automatico(){  // tipo 1 automatico ***************************************
calcula();

digitalWrite(rele_iz,LOW);
digitalWrite(rele_dh,LOW);
digitalWrite(emi_iz,LOW); /* Por cuestión de estabilización del sensor*/
digitalWrite(emi_dh,LOW); /* Por cuestión de estabilización del sensor*/
delayMicroseconds(5);
digitalWrite(emi_iz, HIGH); /* envío del pulso ultrasónico*/
digitalWrite(emi_dh, HIGH); /* envío del pulso ultrasónico*/
delayMicroseconds(10);/* 10 */
tiem_iz=pulseIn(recep_iz, HIGH); /* Función para medir la longitud del pulso entrante. Mide el tiempo que transcurrido entre el envío*/
dista_iz= int(0.0167*tiem_iz); /*fórmula para calcular la distancia obteniendo un valor entero*/
tiem_dh=pulseIn(recep_dh, HIGH);
dista_dh= int(0.0167*tiem_dh);

Serial.print("dista dh---:");
Serial.println(abre_dh);
Serial.println(millis());
Serial.println(abre_iz);
if ( dista_iz<maximo && dista_iz>minimo){
re_iz=millis()+retardo;
abre_iz=re_iz+abierto;
}
if (millis()<abre_iz && millis()>re_iz){
digitalWrite(rele_iz,HIGH);
}
/*if (millis()>abre_iz && millis()<=re_iz)
{ digitalWrite(rele_iz,LOW);}
*/
if ( dista_dh<maximo && dista_dh>minimo){
re_dh=millis()+retardo;
abre_dh=re_dh+abierto;
}
if (millis()<abre_dh && millis()>re_dh){
digitalWrite(rele_dh,HIGH);
}
/*if (millis()>abre_dh && millis()<=re_dh)
{ digitalWrite(rele_dh,LOW);}*/
}

void calcula(){ // calculo sobre vel y metros los segundos de retardo y de abierto

vel=dt2;metros=dt3;
mseg=vel*0.36;//metros por seg
dist_r=dista_vo-(metros/2);// distancia en metros al inicio del arbol
retardo=dist_r/mseg;
if (retardo<=0){
retardo=0;
}
abierto=metros/mseg;
}
void leo(){   //leo datos del bluetooth
if (BT.available()> 0) {
BT.read ();
delay(25);
// leeo los datos del bluetooth
tipo = BT.parseInt(); // Leemos tipo
dt2 = BT.parseInt();  // Leemos dato2
dt3 = BT.parseInt();  // Leemos dato3
dt4=BT.parseInt();    // leeo fin
}




Si quereis aportar algo.
Yo compro todo en la siguiente tienda online.

Código: Seleccionar todo

http://www.pulsatek.com/es/placas-arduino/27-arduino-nano-v30-compatible-100-atmega-328p-5v-16m-ch340g.html
Última edición por Naguissa el 17 Nov 2016, 18:53, editado 1 vez en total.
Razón: tags

Tags:

Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 200
Registrado: 04 Jul 2016, 11:17
Has thanked: 62 times
Been thanked: 48 times
Contactar:

Re: Proyectos

Mensaje por Naguissa » 11 Ago 2016, 17:55

Gracias por la info.


Te lo muevo a microcontroladores.

Yo ando terminndo un proyecto de riego, a ver si lo pongo aquí prontito....



P.D.: ¡Bienvenido!

Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 200
Registrado: 04 Jul 2016, 11:17
Has thanked: 62 times
Been thanked: 48 times
Contactar:

Re: Proyectos

Mensaje por Naguissa » 12 Ago 2016, 16:03

He preado un nuevo apartado pra proyectos y lo muevo ahí....

Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado