Taller de Arduino

  • Iniciador del tema Iniciador del tema jmcadsl
  • Fecha de inicio Fecha de inicio
Estado
Cerrado para nuevas respuestas.
Por cierto he entendido que tienes conectado el Arduino al PC y modificas el software a través del Pc???? Si es así explicanos como lo has conseguido!!

SAludos!![/QUOTE]

Buena jmcadsl

Si tengo el arduino conectado al pc.De momento solo lo he puesto para poder cambiar la temperatura maxima y minima, y el desvio de la sonda de ph.

Esto lo he hecho asi de momento para que no tenga que estar cargando el software del arduino cada vez que haga cambios.

Tengo todos los datos guardados en memoria y con el pc tengo un software hecho en visual basic el cual lee los daos del rs232 y los pocesa .Si hago algun cabio en la base de datos del visual basic este se lo trasmite al arduino a traves del puerto rs232.

Ahora estoy de vacaciones y no tengo nada para pasar, cuando vuelva os pongo cosas.

PD: he realizado un arduino para que segun lo que ocurra conectado al movil me envie un mensaje diciendome lo que ocurre, la temperatua o el ph que tiene.

Saludos
 
Pues me tienes que explicar más detalladamente eso del programa visual basic para cambiar parametros de arduino usando Rs232, o sea que en realidad no reprogramas el código de Arduino sino unos valores en una eprrom xterna (o es la del propio arduino?)

Explicanos anda!! jejeje.
 
Se puede usar la propia memoria del arduino pero es minima ya que es en la que cargas el programa.
Para pocos datos es suficiente.
Yo hice pruebas con una eepromm y ya lo deje asi, pero vamos que para guardar cuatro datos es suficiente.

Con respecto a Visual Basic me defiendo y ya habia programado un par de cosas con el puerto rs232 y despues de buscar mucha informacion prové y me funcionó.Asi lo tengo y de momento funciona.

Ya te paseré informacion al respecto.

Saludos
 
Bueno gente acabo de recibir una sonda de PH...a ver que consigo...(CDistri cuando vuelvas de vacas ehcanos una mano!!)

Por otro lado cuando tengais un ratito tranquilamente os leeis este post.

Es un controlador para led's dimeable y con soporte para las meanwell....muy currado!!
 
Bueno gente acabo de recibir una sonda de PH...a ver que consigo...(CDistri cuando vuelvas de vacas ehcanos una mano!!)

Por otro lado cuando tengais un ratito tranquilamente os leeis este post.

Es un controlador para led's dimeable y con soporte para las meanwell....muy currado!!

cual es el post del controlador ???
 
Ostras acabo de llegar a este post, y no veo la hora de pedirme un "arturito" de esos jeje.

Soy ingeniero informático, y hace tiempo toqué cosas de robótica con placas muy parecidas a esta. Pero la verdad es que estoy un poco oxidado porque ahora principalmente programo en entorno WEB con PHP ASP, etc, por lo que de la parte del interfaz WEB podría encargarme. De todas formas los lenguajes de programación no me preocupan (se suele decir que en una semana se programa en otro lenguaje)

Total, que me ofrezco para lo que sea, y me pongo manos a la obra, lo primero, el pedido y me voy a poner a leer las especificaciones de la placa en cuestión.
 
Genial!!! Un informatico más para el proyecto!!!
Bienvenido!!
 
Estupendo este taller. Veo que la gente está muy interesada en esto y yo ya lo tengo entre mis favoritos. No creo que (de momento) pueda ayudaros pero si que me gustan las "xispas". Así que a probar.

Un saludo a todos
 
Bueno pues nada, voy a pedirme un "arturito" de estos, por "compatibilidad" con vuestros desarrollos, me voy a pillar el "normal" también el reloj, pero con respecto a la LCD he visto una con pulsadores, que podría darnos futuras opciones de configuración off-line como pooner el reloj en hora y demás, es esta:



La que tu utilizas debe ser similar a esta otra:



Sonda de PH tengo porque tengo un controlador de PH, con el que podré calibrar el del proyecto.

Por otro lado veo un poco desordenado el proyecto, creo que hay muchos haciendo lo mismo, es decir duplicando trabajo. Deberíamos organizarnos un poco.

Para el tema del entorno WEB, evidentemente hay que conectar el "Arturito" con un PC, tendríamos varias posibilidades, la más barata en principio sería la opcion del shield Ethernet (aunque a mi me tira más la opción del WiFi), y pasar los datos a un PC para alimentar una base de datos, así como posibilitar una lectura en tiempo real de los valores, o interactuar con los relés. Es cuestión de leer las especificaciones del shield en cuestión.

También he visto un shield de GSM, con el que conectar el "arturito" a la telefonía y mandar un SMS o recibir comandos remotos, aunque es bastante cara.

Total, resumiendo, mi proyecto lo organizo de la siguiente forma:

1er hito: LCD donde mostrar los valores Fecha/Hora y Temperatura (vamos un reloj digital con termómetro jejeje)

2º hito: Incluir placa de relés y controlar luces (en base al reloj, evidentemente), y ventilador/calentador (en base a la sonda de temp, también evidentemente)

3er hito: conectar con el PC en modo lectura de datos (ya podría publicarse un entorno web de lectura de esos datos de forma muy sencilla)

4º hito: conectar con el PC en modo bidireccional, Entorno Web de manejo y lectura de datos.

Después... quizás incluir sonda de salinidad o densidad o que me limpie el acuario... :-)

¿Qué os parece?
 
Bueno pues los reles, para los que lo lo sepan, son unos aparatitos que nos van a servir para encender/apagar componentes como bombas ,luces etc etc...son como interruptores.

Lo mejor es hacerse con una placa ya montada, sale un pelín más cara que si la hacemos nosotros mismo, pero el acabado va a ser mejor y nos evitamos soldar etc etc...

Yo he comprado en ebay esta:

Hay que alimentarla a 12v , podemos controlar 8 reles, aun no la he utilizado (ya que yo en mi primera verasion hice yo mismo la placa con 6 reles)

El funcionamiento es sencillo.

...

¿Es suficiente con los 10A que soportan los relés? lo digo por los calentadores, el resto no hay problema (quizás algunas pantallas, pero no lo se)
 
parece que la cosa marcha! cuando tengais algo definido podriais publicar un manual para hacerse el cacharro que bien seguro mucha gente copiaria ;)
 
Hola

Veo que esto va cogiendo cada vez mas interés ( mejor cuantos mas seamso mejor quedará ).

Acabo de llegar de vacaciones y me he puesto a buscar mis apuntes, ya que he visto el codigo de los arduinos que tengo y es bastante lio de entender ya que el que es programador sabrá que cada uno lo hace a su manera ( no es la mejor pero cada uno como sabe ).

He encontrado varios apuntes de codigos que tengo. Luego hay que remodelarlo para cada uno.

JMCADSL ya puso como crear un reloj con arduino.

Ahora os pongo como crear un termostato digital.

Material Utilizado

1-. LCD 16x2 ( aunque tambien puede valer un 20x4 que es el que tengo yo)
2-. 1 Termistor de 10K ( tambien se puede utilizar varios detectores de calor LM35, DS1820 ( cualquiera funciona, unos con mas precision que otros pero funciona ya que luego ese devio se puede regular a traves de software )
3-. Arduino
4-. Cableado

Explico un poco el cableado aunque viene explicado en el codigo ( perdonad por no poner fotos ni esquemas ya que no puedo ahora mismo hacerlo)

El termisor va conectado al arduino a traves e una resistencia de 10K ( tamto el termisor como el ds1820 como el lm35 llevan una resistencia conectada en serie cada uno de una manera )
La conexion del termisor seria GND ( masa ) ---> Resitencia de 10K -----> Termisor 10K -----> + 5V
|
|
Haces una tercera pata entre la resistencia y el termisor
se posiciona en el PIN ANALOGICO 0.

La conexion del lcd es un poco mas complicada voy a ver que tal me explico.

Pines LCD Pines arduino
* pin 1 Vss => Unido a masa
* pin 2 Vdd => Unido a +5 voltios
* pin 4 RS => Unido a pin 8 Arduino
* pin 5 R/W => Unido a masa (no uso la opción de crear carácter)
* pin 6 E => Unido a pin 9 Arduino
* pin 7 DB0 => No conectado (control 4 bits)
* pin 8 DB1 => No conectado (control 4 bits)
* pin 9 DB2 => No conectado (control 4 bits)
* pin 10 DB3 => No conectado (control 4 bits)
* pin 11 DB4 => Unido a pin 10 Arduino
* pin 12 DB5 => Unido a pin 11 Arduino
* pin 13 DB6 => Unido a pin 12 Arduino
* pin 14 DB7 => Unido a pin 13 Arduino

IMPORTANTE, Para el codigo hay que utilizar la libreria LiquidCristal ya que es una libreria que nos permite trabajar en 4 bit "LiquidCristal.h" .

Todo estos pines para el LCD se pueden reducir a tres pines pero para empezar se hace asi.

Este es el codigo que habria que subir al arduino

#include <LiquidCrystal.h>
#include <math.h>

LiquidCrystal lcd(8, 9, 10, 11, 12, 13); //indico los pines a utilizar
int ventilador = 4; //habilito el pin para el led ( Utilizacion de un Ventilador por ejemplo )
byte grado[8] = { //Creo el Caracter de grado centigrado
B00111,
B00101,
B00111,
B00000,
B00000,
B00000,
B00000,
B00000
};

double Termistor(int RawADC) { //Leo el termistor
double Temp;
Temp = log(((10240000/RawADC) - 10000)); //realizo los calculos y ajustes de deviacion
Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp * Temp * Temp));
Temp = Temp - 273.15; // Convierto de kelvin a Celcius
return Temp; //devuelvo el valor a la variable


}

void setup() {
pinMode(ventilador, OUTPUT); //declaro el pin digital 4 como salida ( pin del ventilado )
lcd.createChar(0, grado); //creo el caracter de grado
lcd.write(0);
lcd.begin(16, 2); //indico que es una pantalla de 16x2 ( si usas de 20x4 se tendria que declarar antes con ( 20, 4)
lcd.clear(); //limpio la pantalla
}

void loop() {

lcd.setCursor(2, 0); //posiciono el cursor en la primera linea y en la segunda fila
lcd.print("TEMPERATURA");

lcd.setCursor(4, 1); //leo el termistor y mando la temperatura a la pantalla
lcd.print(Termistor(analogRead(0)), 1);

lcd.setCursor(9, 1); // envio el caracter de grado
lcd.write(0);
lcd.setCursor(10, 1); // envio la C de centigrado
lcd.print("C");
delay(300); // espero 300 milisegundos entre cada lectura

if(Termistor(analogRead(0)) >= 27){ //si el valor de la temperatura es mayor o igual que 27 grados voy a la rutina caliente
caliente();
}
if(Termistor(analogRead(0)) < 25){ //si el valor de la temperatura es menor que 25 grados voy a la rutina frio
frio();
}

}
void caliente(){
digitalWrite(ventilador, HIGH); //enciendo el led "para el ejemplo he utilizado un led" (ventilador)
loop();
}

void frio(){
digitalWrite(ventilador, LOW); //apago el led (ventilador)
loop();
}


Espero que me haya explicado bien sino preguntarme aunque no soy experto en esto solo curioso.

Ya ire poniendo mas cositas como PH, lm35, ds1820, niveles, PC ,EEPROMM, PWM ( regulacion dia noche ), Teclado a ver donde llegamos.

Saludos
 
Última edición:
Bien, bien, esto avanza!!!
Yo ya llevo varios meses funcionando (LCD,BOTONES/MENU,RELLENO AUTOMATICO AGUA,LUCES,TEMPERATURAS) que es lo que os he ido mostrando...
Ahora he pillado una sonda de PH (Que me trae loco jejeje) y una ethernet shield que aun no he tenido tiempo ni a probar...

CDistri, lo de la sonda de PH lo has echo de esta manera? Link--> https://www.66pacific.com/ph/simplest_ph.aspx

Es que a mi no me funciona...y el tema de leer valores analogicos negativos (-2v por ejemplo)...

Bueno pues lo dicho ir comentando los avances....

Oye, quizás no estaría mal repartirse las tareas, claro que deberíamos tener todos el mismo hardware,......bueno lo vamos viendo..
 
Vale jmcadsl, pues yo estoy dispuesto a "copiar" tu hardware exáctamente para poder compartir código, dame descipciones exactas para buscarlas.
 
que no se os olvide a los lumbreras el manual para tontos ehh, que con toda la informacion que se va dando....algunos nos kedamos....a dos velas.
Un saludo compañeros y gracias por compartir vuestra sabiduria.
 
Mi proyecto

A ver, yo ahora mismo lo que tengo es esto:
[TodoMarino.com] Taller de Arduino

Control de luz de luna (leds azules 5mm y blancos, por PWM "varian de intensidad")
Control luces LED's 3W Cree (los he dividido en 2 modulos, (3blancos+3azules)´+ (3blancos+3azules) solo apago y enciendo de una en una no PWM :vaya:
Control temperatura (en acuario y en arduino) (Actuo sobre ventiladores)
Control reposicion agua (sonda de nivel + bomba relleno)
Control desbordamiento (sonda de nivel + bomba retorno OFF)
Control Bomba movimiento (cuando doy de comer o hago mantenimiento)
Display LCD + boton (menu e info)

El arduino y reles lo tengo en el sump y he dejado arriba el display en una cajita, aqui se puede ver (ahora esta amaneciendo)
[TodoMarino.com] Taller de Arduino



Mi próximo proyecto, espero comartirlo con vosotros y entre todos sacar ideas para mejorarlo.
Quiero centralizarlo todo, hacer una caja de unos 30cm largo x 25 ancho x 10 alto, en el frontal irían (LCD, 3 botones menus,led's control, USB para reprogramar arduinos, boton reset)
Por detrás, saldría 1 solo cable con enchufe a 220v, tendría conectores para enchufar sondas, luces, etc.
Por dentro....
Arduino 1 (Control principal, a el se conectan sondas , reloj, LCD)
Arduino 2 + Ethernet shield (Iria conectado al arduino 1 por I2C y actuaría sobre reles y llevará el control ethernet (envio de datos via WEB/PC)
Reloj
Transformador 220v-->12v
Drivers para led's
Placa de reles

Por qué 2 arduinos y no 1 MEGA ??? Pues no se, yo prefiero hacerlo de esta manera, consigo más pines y lo mejor de todo, realmente son 2 cabezas por lo tanto 2 tareas que pueden realizarse independentemente....

Así es en resumen lo que creo que estaría bien....evidentemente esto m vale a mi en mis condiciones (tengo un nano y poco espacio) , y si tuviera un acuario más grande trataría de meter todo esto dentro de la pantalla de luces para como no puedo ampliar....:lloroso:

Yo casi todo lo he comprado en Bricogeek y Diotronic, seguro que hay sitios más baratos o incluso por ebay, pero he preferido no arriesgar....

Arduino USB

Ethernet
https://www.bricogeek.com/shop/17-arduino-ethernet-shield.html
Esto ha salido hace poco y me hubiera venido muuuuuy bien jejeje, os lo aconsejo
https://www.bricogeek.com/shop/287-arduino-screwshield.html
Pantalla LCD

Reloj

Sensor temperatura

Sonda nivel agua


Luego necesitaras una fuente de alimentacion de 12v para alimentar el Arduino/Ventiladores etc etc, todo el tema de resistencias, cableado , botones, etc etc lo compre en Diotronic.
 
Última edición:
Estado
Cerrado para nuevas respuestas.
Atrás
Arriba