Go Down

Topic: Huerto e Invernadero automatizados con web de control remota (Read 9538 times) previous topic - next topic

soket

Gracias por la info, todavía me lio con esto del los distintos tipos de pin y comunicaciones.

Revisando lo que tengo me encuentro que casi todo es a 5V, tengo una placa de 8 reles con opto acopladores que va a 5V y luego se conecta a 8 pines digitales. Es la que utilizare para abrir las electrovalvulas y activar la bomba de agua.

Se activan cuando pongo los pines a LOW, entiendo que en este caso no me hace falta poner nada y puedo alimentar la placa de reles a 5V y conectar los 8 pines al Arduino Due porque solo son de salida

es asi?

Lo que tengo que probar es si con 3,3v de HIGH es capaz de cerrar el rele

surbyte

Si es capaz pero no por la forma habitual. Va a quedar como oscilando.
Tienes que separar las alimentaciones del rele de la parte OPTOACOPLADOR.
Existe un JUMPER JD-VCC que permite separar las alimentaciones. La parte derecha requiere 5V. Es la que alimenta la bobina del rele y el fototransistor del optoacoplador.
La parte izquierda del OPTO puede alimentarse con lo que gustes 3.3V, 5V, etc. siempre con una R limitadora que esta disponible o la puedes sumar en serie (para tensiones mayores).



o sigue este hilo (¿Puedo energizar 8 relés a la vez con solo el USB?) de Lucario donde le responde lo mismo.

Entonces si miras el lado izquierdo puedes conectar el pin2 del esquema a 3.3V luego pasa por R1 por el diodo del OPTO y el cátodo del OPTO lo conectas al pin del DUE.

soket

Hola,

He pintado un pequeño dibujo con lo que creo que son las conexiones que me indicas. Si he entendido bien debo:




- Conectar a 3,3V el pin VCC AL ARDUINO
- Gnd con el otro Gnd que va al Arduino

En el lado derecho quito él jumper que me indicas y conecto:

- Conectar Gnd al Arduino
- Conectar VCC-JD, (que es el último) lo conecto a los 5V del Arduino

Correcto??

Un saludo y muchas gracias

surbyte


soket


soket

Buenas,

Finalmente termine el diseño de la PCB y las mande a fabricar a china, he creado una especie de escudos que que se irán pinchando encima del Arduino y llevaran los integrados y las conexiones con los sensores. También tengo validados y programado todos los sensores por separado.

Cuando me llegue las placas os pondré unas fotos a ver que tal las veis. Me han surgido unas cuantas dudas mas (como no):

- He leído que si los sensores de humedad los mantengo continuamente con tensión se pueden oxidar y durar menso, la lectura la voy a hacer cada x horas ósea que podría tenerlos sin tensión y darle tensión cuando quiera realizar la lectura.  Supongo que la pieza encargada seria un transistor, pero tengo las siguientes dudas:
    - Que tipo de transistor pongo?
    - Tengo 3 sensores que leeré uno detrás de otro, que pongo 3 transistores?,  1 solo transistor para dar tensión a los 3 sensores?
    - Supongo que para activar el transistor necesito otro pin de Arduino, pero, si pongo 3 transistores, necesito 3 pines de Arduino?, con un mismo pin puedo activar 3 transistores?

- Pantalla lcd, al igual que los sensores de riego solo quiero activar la pantalla si pulso algún botón del teclado, el resto del tiempo me gustaría que no este con tensión, esta funcionalidad la lleva la pantalla?, debo incluir un transistor para cortar yo la tension manualmente?

Por ultimo me da miedo que la tensión que sale por el pin 3,3 del Arduino no sea suficiente para alimentar todo, actualmente le conectare:

- 18 Leds de 5mm
- 3 Integrados SN74HC595N (Para controlar los les y no necesitar 18 pines)
- 9 interruptores triples
- Un buzzer para emitir un sonido cuando algo va mal
- LCD 16x2
- Keypad 4x4
- NRF24l01 (Comunicación via radio)
- 3 Sensores de Humedad de suelo
- Sensor de luz, BH1750
- Sensor DHT22 para la temperatura
- 2 Sensores Hall, uno para el pluviómetro y otro para detectar que el motor gira
- Nema 17 (Alimentado con Driver DRV8825 y tensión directa desde la batería)
- 2 Finales de Carrera
- 2 Sensores de ultrasonidos a 5V JSN-SR04T
- 1 medidor de flujo
- Reloj DS3231
- Placa de 8 reles (Solo tendré un riele activo simultáneamente)
- Modulo Wifi ESP8266
- Potenciometro


Todo eso lo tengo probado de formas más o menos aislada pero no he probado a ponerlo todo junto, me da miedo que al tirar del pin 3,3 y 5V del Arduino Due no sea suficiente.
La otra opción es no usar la alimentación del arduino y poner un conversor DCDC de 12v a 3.3 y a 5 y que desde asir se alimenta el resto de los dispositivos

Creéis que a alguno de los elementos anteriores tendría sentido ponerle un transistor para cortar la tensión, por ejemplo luxometro, dht22, sensores de ultrasonidos, Wifi????, o por el contrario el consumo que tienen es despreciable?

Voy a alimentar todo con una batería de coche de 80 amperios

Un saludo y gracias

surbyte

Iré respondiendo a medida que leo:

Quote
- Supongo que para activar el transistor necesito otro pin de Arduino, pero, si pongo 3 transistores, necesito 3 pines de Arduino?, con un mismo pin puedo activar 3 transistores?
En principio si, pero tambien podrias usar algun integrado como un 74hc595 que expande las salidas a 8 usando 3 inicialmente pero puedes seguir en 595s en cascada a 16, 24 y multiplos de 8.


Quote
Pantalla lcd, al igual que los sensores de riego solo quiero activar la pantalla si pulso algún botón del teclado, el resto del tiempo me gustaría que no este con tensión, esta funcionalidad la lleva la pantalla?, debo incluir un transistor para cortar yo la tension manualmente?
Las pantallas LCD i2c suelen tener control de backlight asi que podrias comandarlas directamente con dicho control y luego no digo que estarán consumiendo 0 pero si poco.
Si eso no es suficiente, podrias de nuevo disponer de algun pin + transistor para su control de POWER.


Quote
Por ultimo me da miedo que la tensión que sale por el pin 3,3 del Arduino no sea suficiente para alimentar todo, actualmente le conectare:
Tengo malas noticias. La tensión que sale por el pin de 3.3V es de apaenas 50 mA mas o menos asi que olvida alimentar cosas con ella. Lo conveniente es una fuente y tampoco conectarla al regulador del Arduino porque si tu placa se va a acoplar como Shield creo que has cometido un error a menos que consideraras alimentar todos los sensores externamiente.
El ultimo recurso que te queda es usar una fuente de 5V y alimentar TODO incluido Arduino desde afuera con 5V no pasando NI por USB ni por conector Externo o VIN.

Es importante que respetes esto. Usa fusible y una fuente muy bien estabilizada.

Leyendo la lista de lo que irá conectado te digo que te olvides de los 3.3V del Arduino e incluso como ya dije de los 5V.

Quote
La otra opción es no usar la alimentación del arduino y poner un conversor DCDC de 12v a 3.3 y a 5 y que desde asir se alimenta el resto de los dispositivos
Es la opción posible o la que ya te he comentado.


Quote
Voy a alimentar todo con una batería de coche de 80 amperios
Mucho cuidado con fuentes tan grandes en Amperes. Usa fusibles para todo el sistema o tendras lindos fogonazos por algun posible error.




soket

Ok, has confirmado todas mis sospechas.

Las shields las tengo realizadas de la siguiente forma:

- Tengo taladrado todos los pines del Arduino, mi idea es poner unas clemas para poder poner ahí la Shield y disponer de todos los puertos en la capa superior.

Creo que me he explicado bien, ok, pues una vez que tengo eso en cada placa toda las alimentaciones de todo van al pin 3.3 y al pin 5v del Arduino.

Lo que se me ha ocurrido es no conectar esos 2 pines al arduino y conectarle la salida de un conversor DCDC, de esta forma la batería de 12v pasaría por el conversor DCDC y de ahí lo enviaría a la Shield al pin 3,3.

Lo mismo haría para los de 5V, tendría un conversor DCDC que conectaría al pin de 5V (Pero el pin de la Shield, no el pin del arduino)

Te pongo unas imagenes de las Shields que he realizado y en rojo he redondeado los pines que no conectaría al arduino.

Son 3 capas o shields que se ponen una encima de otra




La forma de alimentar el arduino he tirado por la forma fácil (o eso creo):

De la bateria tengo 2 cables los cuales he bifurcado y he sacado 2 conectores de alimentaciones (de estos redondos) Uno lo conecto al conector del Arduino Due directamente y otro lo inserto en la Shield 2 (Que he puesto un conector) para alimentar al motor)

es correcto esa aproximación??, donde debería poner el fusible?, y de que valor?

Un saludo y gracias

surbyte

Si lo haces como comentas no vas a tener problemas.


soket

Para los conversores de voltaje había pensado utilizar estos:

Conversor DCDC

son fiables?, o mejor busco otra cosa?



Mil gracias

surbyte


soket

Iré respondiendo a medida que leo:
En principio si, pero también podrías usar algún integrado como un 74hc595 que expande las salidas a 8 usando 3 inicialmente pero puedes seguir en 595s en cascada a 16, 24 y múltiplos de 8.

Qué transistor debo usar para cortar el voltaje a lo sensores???,  al final utilizare 74hc595 para excitar los transistores, estos irán puestos en el polo VCC de los sensores.

He pensado en utilizarlos para:

- DHT22 (Temperatura)
- Luxometro
- 3 sensores de humedad
- 2 sensores de ultrasonidos
- Sensor Hall para controlar si el motor se ha atascado o tiene algún problema

Al final serian 8 transistores que tendría que manejar con 1 74hc595 que contarían el VCC de los sensores

que transistor utilizo??

Un saludo y gracias



soket

Buenas,

Después de mucho leer me he decidido por usar transistores PNP 2N2907.

Mi idea es corta Vcc antes que llegue al sensor.

He usado una resistencia de 1k entre la base y en pin de Arduino y he obtenido lo siguiente:

- si pongo un led, este se paga y se enciende

- si pongo 1 sensor de humedad:
-- 3.13v en saturación y 0,90 - 0,70v en corte
-- si mido los miliamperios poniendo el polimetro en 20m obtengo  5,15 en saturación y 0.01 en corte

Es así como debe funcionar??, no debería leer 0v en corte???, cua do se pone en corte se pone en 0,90 y va bajando hasta 0,70, he puesto un delay de 1000 entre cada fase, lo mismo si lo dejo más tiempo termina bajando a 0v

He probado a poner 3 sensores de
Humedad con el mismo transistor y funciona exactamente igual .

Lo estoy haciendo bien?
Si  leo 5,15, que son milianperios de consumo??

Un saludo y gracias


soket

Buenas de nuevo,

Estoy probando el código para el sensor de flujo y no me esta lanzando las interrupciones, tengo:

- Arduino pro mini de 3,3v
- Ensor de de flujo YF-S201 a 5V.

Para poder leer el sensor de flujo sin quemar el pro mini her puesto un level shifter y he conectado la salida a pin 2 del Arduino mini. En la otra salida he conectado el sensor de flujo. Ademas he conectado el 5v + GND y al otro lado en 3,3 + GND

El código es una tontería, es un mero ejemplo:

Code: [Select]

#define PIN_FLOW_SENSOR 0


//Flow Sensor
volatile int pulseCount = 0;
byte sensorInterrupt = 0;  // 0 = digital pin 2
unsigned int flowMilliLitres = 0;
unsigned long totalMilliLitres = 0;
unsigned long dailyTime = 0;
unsigned long oldTimeIrrigationRead = 0;
float calibrationFactor = 7.5;
const unsigned long oneDay = 24UL * 60UL * 60UL * 1000UL;

void setup() {

 pinMode(PIN_FLOW_SENSOR, INPUT_PULLUP);
 attachInterrupt(PIN_FLOW_SENSOR, pulseCounter, RISING);
}


void loop() {
    Serial.println(pulseCount);
}

void pulseCounter() {
 pulseCount++;
}



El caso es que no se lanza la interrupción, he probado todos lo tipos de interrupciones.
Mirando con el polimetro veo que mientras el sensor no se mueve obtengo 3,3v en el pin 2 y cuando muevo el sensor baja hasta el 1,8v

Es posible usar interrupciones con un leve shifter de por medio?

Gracias y un saludo

soket

Al final se ve que el pin 2 tiene algún tipo de problema, he cambiado la configuración para usar el pin 3 y ahora funciona todo correctamente

Un saludo

Go Up