Control Sistema de calor/frío por Fancoils

Buenas a todos. Primeramente, gracias por estar aquí y por cualquier duda que podáis ofrecerme. Si he de ser sincero, no tengo ni idea de electrónica y casi nada de programación, pero soy de los que le echan pelotas y no tienen miedo a equivocarse. Explico un poco de que va esto e incluyo imagen (seguir enlace para ampliar).

De momento me interesa saber que no he cometido ningún disparate a nivel de conexiones y componentes, luego me meteré en programación.
Se trata de una vivienda de tres plantas con un sistema de calor / frío por bomba de calor que trabaja sobre un depósito de inercia. Cada una de las plantas tiene asignada una bomba de impulsión que mueve el agua por el circuito de emisores (fancoils), los cuales tienen cada uno un mando individual que controla el encendido/apagado del fancoil mediante la apertura/cierre de una válvula de 3 vías y la apertura/cierre de un relé seco para poder indicar que se encuentra encendido/apagado.
La bomba de calor, tiene función paro/marcha para lo cual hay que cerrar o abrir un circuito. Cómo el fabricante es un jodido genio, funcionando en modo frío la orden paro/marcha es abriendo circuito y en modo calor es cerrándolo (o al revés, que para el caso el lo mismo).

Mi idea con este proyecto es controlar el paro/marcha de la bomba de calor por medio del Arduino el cual, a su vez, recibirá órdenes de unos displays AKO (pin 10) que se alternarán según se desee frío o calor en el depósito de inercia. El interruptor basculante on on tiene doble función. Por un lado alimentar un display AKO u otro en función si se desea frío o calor y, por el otro, indicarle al Arduino (pin 9) si estamos en modo frío o en modo calor para condicionar la apertura/cierre del relé (pin 6) que dará la orden de paro/marcha a la bomba de calor según el modo de funcionamiento (cómo he explicado antes). Por otro lado, en el mismo panel donde se colocarán los displays AKO y el interriptor basculante se colocarán también dos leds (uno rojo y otro azul, pines 7 y 8) que permitirán verificar si el Arduino ha entendido el cambio del modo frío / calor.

Además, Arduino recibirá información de los Fancoils, que estarán conectados entre si de tal forma que si cualquier fancoil de una planta tuviese demanda, cerraría circuito para esa planta y daría continuidad (pines 11, 12 y 13). Al recibir esta señal, Arduino debería activar mediante módulo de relé la bomba correspondiente a la planta (pines 3, 4 y 5). A los fancoils se les llevará cable de 1,5mm2 y creo que el punto más alejado será unos 20m. Por cierto, he representado los fancoils con pulsadores para simplificar.

Sólo he usado dos tipos de resistencia, de 330Ω para los leds y señal de relés y 10kΩ para los interruptores (incluyendo los relés secos de los fancoils, que en la imagen represento cómo interruptores).

Mi preguntas es.
¿La resistencia de los pines de los fancoils está bien dimensionada?. No se si la resistencia que ya ejerce cable de 1,5 requeriría que la resistencia sea menor o si, por el contrario, el valor es despreciable.
¿He cometido algún otro disparate?

Gracias por adelantado.

Sólo he usado dos tipos de resistencia, de 330Ω para los leds y señal de relés y 10kΩ para los interruptores (incluyendo los relés secos de los fancoils, que en la imagen represento cómo interruptores).

Si esta bien. Las cosas no son tan estrictas como para que la longitud de un cable te altere el funcionamiento.

Personalmente no se que es un display AKO, lo das por sentado como si todos supíeramos de los 2millones de marcas que existen en el mundo.

NOTA: Si pones un link, imagen o código, antes por favor lee las normas del foro para hacerlo usando etiquetas. MIra/lee otros temas para entender a que me refiero.

Buenas!

Gracias por la respuesta. Disculpa, no he especificado más sobre el display porque creía que en el esquema de la ilustración se entendía.

Es un display que se utiliza normalmente en frio industrial. El modelo más sencillo (el que usaré yo) trae los pines de alimentación a 230V, los de un relé de hasta 15A y los dos de una sonda de temperatura. El display puede configurarse en modo frío o calor y abre o cierra el relé según los criterios de temperatura que le programes.
El motivo de usar dos displays de este tipo, es que el usuario final no tenga que hacer nada más que darle al interruptor basculante y no tenga que meterse a configurar nada.

¿El resto del montaje parece funcional?, es la primera vez que uso algo parecido a Fritzing y me acabo de enterar cómo quien dice de que existen las protoboard, así que decir que estoy muy verde, es quedarse muy corto.

Me permito doblepostear para poner el código que me he "inventado" en base a los tutos que he visto por aquí.

Ahora es cuando los que sabéis os lleváis las manos a la cabeza y me crujís; seguro que he cometido montones de fallos.

int RBOMBA1 = 3 ;
int RBOMBA2 = 4 ;
int RBOMBA3 = 5 ;
int RONOFF = 6 ;
int LEDFRIO = 7 ;
int LEDCALOR = 8 ;
int OFRICALOR = 9 ;
int OONOFF = 10 ;
int OBOMBA3 = 11 ;
int OBOMBA2 = 12 ;
int OBOMBA1 = 13 ;

void setup()

{
  pinMode( RBOMBA1 , OUTPUT);                          // Rele bomba planta 1
  pinMode( RBOMBA2 , OUTPUT);                          // Rele bomba planta 2
  pinMode( RBOMBA3 , OUTPUT);                          // Rele bomba planta 3
  pinMode( RONOFF , OUTPUT);                            // Rele Paro / Marcha
  pinMode( LEDFRIO , OUTPUT);                           // Led modo frio
  pinMode( LEDCALOR , OUTPUT);                        // Led modo calor
  pinMode( OFRICALOR , INPUT);                         // Cambio modo frio / calor
  pinMode( OONOFF , INPUT);                              // Orden Paro / Marcha
  pinMode( OBOMBA3 , INPUT);                           // Orden bomba planta 3
  pinMode( OBOMBA2 , INPUT);                           // Orden bomba planta 2
  pinMode( OBOMBA1 , INPUT);                           // Orden bomba planta 1
}

void loop()

{
  int valor = digitalRead(OBOMBA1) ;                   // Leemos el valor de la primera planta
  digitalWrite( RBOMBA1, valor) ;                 // Escribimos valor en RBOMBA1
}
{
  int valor = digitalRead(OBOMBA2) ;                   // Leemos el valor de la segunda planta
  digitalWrite( RBOMBA2, valor) ;                 // Escribimos valor en RBOMBA3
}
{
  int valor = digitalRead(OBOMBA3) ;                   // Leemos el valor de la tercera planta
  digitalWrite( RBOMBA3, valor) ;                 // Escribimos valor en RBOMBA3
}

{
  int valor = digitalRead(OONOFF) ;                    // Leemos el valor de la orden paro/marcha
  if ( valor == true ) ;                                         // esto es que hay solicitud de marcha
  {
    int valor = digitalRead(OFRICALOR) ;          // Leemos si estamos en modo frio o calor
    if ( valor == true ) ;                                    // Esto es que estamos en modo calor
    {
      digitalWrite( RONOFF, true) ;            // Se enciende el rele RONOFF
      digitalWrite( LEDCALOR, true) ;         // Se enciende el led rojo
    }
    else
    {
      digitalWrite( RONOFF, false) ;           // Se apaga el rele RONOFF
      digitalWrite( LEDFRIO, true) ;           // Se enciende el led azul
    }
  }
  else
  {

    int valor = digitalRead(OFRICALOR) ;        // Leemos si estamos en modo frio o calor
    digitalWrite( LEDCALOR, valor) ;               // Encendemos led rojo si esta en modo calor apagamos en modo frio
    digitalWrite( LEDFRIO, ! valor) ;               // Encendemos led azul si esta en modo frio apagamos en modo calor
    digitalWrite( RONOFF, ! valor) ;               // Apagamos el rele en modo calor y lo encendemos en modo frio
  }
}

Ya me diréis que os parece. ¡Gracias por adelantado!

Ya decía yo que era imposible que esto me saliese bien a la primera. Lo he pasado del documento de texto donde lo tenía al softwere de Arduino y me da estos errores:

Arduino:1.8.5 (Windows 7), Tarjeta:"Arduino/Genuino Uno"

Proyecto_001:36: error: expected unqualified-id before '{' token

 {

 ^

Proyecto_001:40: error: expected unqualified-id before '{' token

 {

 ^

Proyecto_001:45: error: expected unqualified-id before '{' token

 {

 ^

exit status 1
expected unqualified-id before '{' token

He mirado algunas explicaciones por Google, pero no me entero de nada; ¿podríais ayudarme, por favor?, creo que estoy cerca pero se me escapa.

muchas llaves que no cumple función alguna.
Te faltaba en principio una para el loop

int RBOMBA1     = 3 ;
int RBOMBA2     = 4 ;
int RBOMBA3     = 5 ;
int RONOFF      = 6 ;
int LEDFRIO     = 7 ;
int LEDCALOR    = 8 ;
int OFRICALOR   = 9 ;
int OONOFF      = 10 ;
int OBOMBA3     = 11 ;
int OBOMBA2     = 12 ;
int OBOMBA1     = 13 ;

void setup() {
  pinMode( RBOMBA1 , OUTPUT);                          // Rele bomba planta 1
  pinMode( RBOMBA2 , OUTPUT);                          // Rele bomba planta 2
  pinMode( RBOMBA3 , OUTPUT);                          // Rele bomba planta 3
  pinMode( RONOFF , OUTPUT);                            // Rele Paro / Marcha
  pinMode( LEDFRIO , OUTPUT);                           // Led modo frio
  pinMode( LEDCALOR , OUTPUT);                        // Led modo calor
  pinMode( OFRICALOR , INPUT);                         // Cambio modo frio / calor
  pinMode( OONOFF , INPUT);                              // Orden Paro / Marcha
  pinMode( OBOMBA3 , INPUT);                           // Orden bomba planta 3
  pinMode( OBOMBA2 , INPUT);                           // Orden bomba planta 2
  pinMode( OBOMBA1 , INPUT);                           // Orden bomba planta 1
}

void loop() {
  int valor1 = digitalRead(OBOMBA1) ;                   // Leemos el valor de la primera planta
  digitalWrite( RBOMBA1, valor1) ;                 // Escribimos valor en RBOMBA1


  int valor2 = digitalRead(OBOMBA2) ;                   // Leemos el valor de la segunda planta
  digitalWrite( RBOMBA2, valor2) ;                 // Escribimos valor en RBOMBA3


  int valor3 = digitalRead(OBOMBA3) ;                   // Leemos el valor de la tercera planta
  digitalWrite( RBOMBA3, valor3) ;                 // Escribimos valor en RBOMBA3

  int valor4 = digitalRead(OONOFF) ;                    // Leemos el valor de la orden paro/marcha
  if ( valor4 == true ) {                                         // esto es que hay solicitud de marcha
      int valor5 = digitalRead(OFRICALOR) ;          // Leemos si estamos en modo frio o calor
      if (valor5 == true ) {                                    // Esto es que estamos en modo calor
          digitalWrite( RONOFF, true) ;            // Se enciende el rele RONOFF
          digitalWrite( LEDCALOR, true) ;         // Se enciende el led rojo
      }
      else     {
          digitalWrite( RONOFF, false) ;           // Se apaga el rele RONOFF
          digitalWrite( LEDFRIO, true) ;           // Se enciende el led azul
      }
  }
  else  {

        int valor6 = digitalRead(OFRICALOR) ;        // Leemos si estamos en modo frio o calor
        digitalWrite( LEDCALOR, valor6) ;               // Encendemos led rojo si esta en modo calor apagamos en modo frio
        digitalWrite( LEDFRIO, !valor6) ;               // Encendemos led azul si esta en modo frio apagamos en modo calor
        digitalWrite( RONOFF, !valor6) ;               // Apagamos el rele en modo calor y lo encendemos en modo frio
  }
}

Esto compila lo que no quiere decir que hace lo que esperas porque repetiste tantas veces valor que hay que prestar atención a como funciona cada uno.
Si defines una variable con una etiqueta no puedes repetirla.
Por eso a cada int valor lo fue denominando valor1..2.. 6

Muchísimas gracias.
Ya he verificado que ahora compila, ¡es genial!
He releído varias veces el código y, efectivamente, parece todo en orden, no hay razón para pensar que no funcionará cómo estaba previsto. De hecho, ya ves que en realidad este proyecto es algo muy simple pese al lío de esquema que he subido, no veo razón para que no vaya perfecto.

Ahora a esperar que me lleguen todos los componentes y a ver si paso de la teoría a la práctica, gracias a todos por vuestra ayuda, seguiré informando sobre el proyecto.

Buenas!
Poco a poco el material que he comprado se acerca a mis manos; estoy madurando el proyecto, leyendo y viendo reseñas de componentes de que usaré en el, hablando con los fabricantes de los radiadores y la bomba de calor para que todo cuadre, etc.

Por un lado, el proyecto mejora en prestaciones y le añado un relé más, que será el de cambio verano / invierno, ya que el fabricante de la bomba de calor me ha indicado la maniobra para realizar este cambio. Así pues, cuando el interruptor basculante cambie y el pin 9 (OFRICALOR) registre el cambio, además de variar otras cosas, variará el estado del pin 2 que he bautizado cómo RFRICALOR.

Me he dado cuenta de un error muy grave en el esquema que mandé, y es que alimento los leds a 5V y, además, los conecto a un pin digital configurado cómo OUTPUT (el 7 y el 8), lo cual me imagino que acabaría en cortocircuito. Corregidme si me equivoco.

Otra cuestión que me inquieta, es el uso de las resistencias de 330Ω para entrar en IN de los módulos de relé. Yo he comprado concretamente estos módulos de relé, y en los tutoriales de youtube en que los usan no ponen las resistencias. No se de donde saqué que deba usarlas ni que ventajas/inconvenientes habría si no lo hago.

Mi última pregunta es con respecto a la alimentación de todo esto. Ya veis que mi intención es alimentarlo todo con la salida 5v de Arduino, ¿lo veis excesivo?, ¿creéis que debería buscar una alimentación a 5v ajena al Arduino para alimentar los relés (que al final serán 5)? ¿o, por el contrario, no lo veis necesário?

Por último, pongo el código definitivo que me permitirá controlarlo todo, así cómo el nombre de los elementos que usaré en este proyecto:

9 x Fancoils Olimpia Splendid 2 tubos con mando de control y válvula de 3 vías en cada uno. (Información)
3 x Bomba circuladora calefacción DAB electrónica EVOSTA 40-70/130 (Características técnicas)
1 x Bomba de calor aire/agua De Dietrich Alezio Evolution AWHP 16 MR-2 (Manual técnico)
2 x Termostato AKO-DH14123 (Manual)
1 x Depósito de inercia frío/calor Idrogas 200L (Características)

int RFRICALOR   = 2 ;
int RBOMBA1     = 3 ;
int RBOMBA2     = 4 ;
int RBOMBA3     = 5 ;
int RONOFF      = 6 ;
int LEDFRIO     = 7 ;
int LEDCALOR    = 8 ;
int OFRICALOR   = 9 ;
int OONOFF      = 10 ;
int OBOMBA3     = 11 ;
int OBOMBA2     = 12 ;
int OBOMBA1     = 13 ;

void setup() {
  pinMode( RFRICALOR , OUTPUT);                         // Rele cambio de temporada (abieto invierno, cerrado verano), entrada 1 Tarjeta regulación unidad interior
  pinMode( RBOMBA1 , OUTPUT);                           // Rele bomba planta 1
  pinMode( RBOMBA2 , OUTPUT);                           // Rele bomba planta 2
  pinMode( RBOMBA3 , OUTPUT);                           // Rele bomba planta 3
  pinMode( RONOFF , OUTPUT);                            // Rele Paro / Marcha, entrada 6 Tarjeta de regulación unidad interior
  pinMode( LEDFRIO , OUTPUT);                           // Led modo frio
  pinMode( LEDCALOR , OUTPUT);                          // Led modo calor
  pinMode( OFRICALOR , INPUT);                          // Cambio modo frio / calor
  pinMode( OONOFF , INPUT);                             // Orden Paro / Marcha
  pinMode( OBOMBA3 , INPUT);                            // Orden bomba planta 3
  pinMode( OBOMBA2 , INPUT);                            // Orden bomba planta 2
  pinMode( OBOMBA1 , INPUT);                            // Orden bomba planta 1
}

void loop() {
  int valor1 = digitalRead(OBOMBA1) ;                   // Leemos el valor de la primera planta
  digitalWrite( RBOMBA1, valor1) ;                      // Escribimos valor en RBOMBA1


  int valor2 = digitalRead(OBOMBA2) ;                   // Leemos el valor de la segunda planta
  digitalWrite( RBOMBA2, valor2) ;                      // Escribimos valor en RBOMBA3


  int valor3 = digitalRead(OBOMBA3) ;                   // Leemos el valor de la tercera planta
  digitalWrite( RBOMBA3, valor3) ;                      // Escribimos valor en RBOMBA3

  int valor4 = digitalRead(OONOFF) ;                    // Leemos el valor de la orden paro/marcha
  if ( valor4 == true ) {                               // esto es que hay solicitud de marcha
      int valor5 = digitalRead(OFRICALOR) ;             // Leemos si estamos en modo frio o calor
      if (valor5 == true ) {                            // Esto es que estamos en modo calor
          digitalWrite( RONOFF, true) ;                 // Se enciende el rele RONOFF encendiendo la bomba de calor en modo invierno (calor)
          digitalWrite( LEDCALOR, true) ;               // Se enciende el led rojo
      }
      else     { 
          digitalWrite( RONOFF, false) ;                // Se apaga el rele RONOFF encendiendo la bomba de calor en modo verano (frío)
          digitalWrite( LEDFRIO, true) ;                // Se enciende el led azul
      }
  }
  else  {

        int valor6 = digitalRead(OFRICALOR) ;           // Leemos si estamos en modo frio o calor
        digitalWrite( LEDCALOR, valor6) ;               // Encendemos led rojo si esta en modo calor apagamos en modo frio
        digitalWrite( LEDFRIO, !valor6) ;               // Encendemos led azul si esta en modo frio apagamos en modo calor
        digitalWrite( RONOFF, !valor6) ;                // Apagamos el rele en modo calor y lo encendemos en modo frio
        digitalWrite( RFRICALOR, !valor6) ;             // Indicamos al rele de cabio frio(true)/calor(false) de la bomba de calor cómo debe operar 

  }
}

Así está el tema por ahora (la máquina que han entre la unidad interior y la exterior de la bomba de calor es un equipo compacto termodinámico para ACS):

Me he dado cuenta de un error muy grave en el esquema que mandé, y es que alimento los leds a 5V y, además, los conecto a un pin digital configurado cómo OUTPUT (el 7 y el 8), lo cual me imagino que acabaría en cortocircuito. Corregidme si me equivoco.

Si los leds los comandas usando una Resistencia limitadora de 330 a 470 ohms no ocurrirá nada de eso.

Otra cuestión que me inquieta, es el uso de las resistencias de 330Ω para entrar en IN de los módulos de relé. Yo he comprado concretamente estos módulos de relé, y en los tutoriales de youtube en que los usan no ponen las resistencias. No se de donde saqué que deba usarlas ni que ventajas/inconvenientes habría si no lo hago.

No llevan resistencia porque ya la tienen dentro en su circuito electrónico.

Yo he comprado concretamente estos módulos de relé,

Olvida si quieres estabilidad alimentar algo que no sea solo sensores (y no demasiados) con los 5V del Arduino.
Menos que menos RELES.
Considera siempre que uses elementos de AC usar SSR (Solid State Relays) en lugar de reles comunes ya que éstos no generan ruido electrico.

Gracias por las respuestas. Reharé el esquema que tenía montado y mañana lo subiré nuevamente con las modificaciones pertinentes.

Lo que no acabo de entender es el tema de los leds. Yo los tenia puestos con un pin en alimentación a 5v del Arduino y el otro a un pin digital del Arduino configurado cómo OUTPUT (que también alimenta a 5v cuando se activa). Pensaba que si alimentaba por ambos lados del led el desastre estaba asegurado y que lo que debía hacer era poner uno de los pines del diodo a alimentarse del pin OUTPUT del Arduino y el otro a GND para cerrar el circuito. Cuando me dices que con la resistencia no ocurrirá tal desastre, ¿quieres decir que no fundiré ni el led ni el Arduino o que, además, el led funcionará de la forma prevista?; si es el último caso, explícamelo, porque entonces tengo mucho más que aprender aún sobre electrónica de lo que creía.

Nuevamente gracias por todas las respuestas. Este proyecto lo estoy realizando para el curro y, la verdad, me encantaría que me saliese impecable.

Mi amigo, si te tomas 5 minutos y buscas en google, Arduino led dime donde encuentras una conexión como la que estas explicando?
Sin resistencia NADA limita la corriente del led, y el pin termina entregando todo lo que este permitido. Máximo 40mA. o Sea expones el pin del Arduino a que se queme, no el arduino sino la salida.

Bueno, así rápido, este, por ejemplo, y alguna más he visto del estilo:

(Al principio dice que se debe poner la resistencia y la tiene lista pero al final no la usa)

Pero lo de la resistencia no es el punto. Es una protección y va de oficio. Lo que me desconcierta es que me digas que no importa si doy tensión por ambos pines del led en caso de que haya una resistencia. Que yo sepa, el pin positivo del led debe ir un pin digital del Arduino configurado cómo OUTPUT y el negativo a GND (uses o no la resistencia entre el pin digital del Arduino y el led, aunque lo recomendable es que si). Pero me dices que si al pin negativo le pongo 5v, pongo la resistencia al pin positivo y lo llevo a un pin digital del Arduino configurado cómo OUTPUT, cuando ese pin digital de tensión, no ocurrirá nada malo o, incluso, funcione. Si esto es así, me rompe todos los esquemas y no lo entiendo, por eso quería algo más de explicación al respecto.

Al margen del tema de los leds, que aquí creo que lo que ocurre es simplemente que no nos estamos entendiendo, paso el último esquema, a ver si este lo veis más correcto.

Tengo por casa un cargador de 9v 600mA, ¿creéis que es suficiente para el Arduino?. Tengo entendido que transforma automáticamente el voltaje a 5V y los amperios a 500mA, por lo que supongo que con este transformador tendría solucionada la papeleta.

También tengo otro transformador de 5,7V y 500mA (no estoy 100% seguro de los mA ahora mismo, pero la cosa andaba por ahí) que pensaba usar para alimentar los reés, pero tengo entendido que es malo meter tensiones por encima de 5V justos; ¿cómo lo veis?, ¿compro otro?, ¿cual aconsejáis?
Edito. Acabo de ver que un transformador con salida USB para móvil que tengo en la oficina sale a 5V 750mA; ¿creéis que esto estaría bien?.

Nuevamente, gracias por la ayuda.

  1. Yo no he afirmado nada de lo que tu dices respecto a los LEDs, me has mal entendido.

Lo que me desconcierta es que me digas que no importa si doy tensión por ambos pines del led en caso de que haya una resistencia. Que yo sepa, el pin positivo del led debe ir un pin digital del Arduino configurado cómo OUTPUT y el negativo a GND (uses o no la resistencia entre el pin digital del Arduino y el led, aunque lo recomendable es que si). Pero me dices que si al pin negativo le pongo 5v, pongo la resistencia al pin positivo y lo llevo a un pin digital del Arduino configurado cómo OUTPUT, cuando ese pin digital de tensión, no ocurrirá nada malo o, incluso, funcione.

No tenía dudas de la corriente saliente 40mA pero si de la corriente entrante. Resulta que el Pin de Arduino tolera 40mA entrantes y ya lo había leído pero es algo que no recuerdo y me hace ruido cada vez que lo leo. Por eso creo que esta mal hecho cuando no lo esta.

Yo uso SIEMPRE una Resistencia, conecto el Anodo al pin, el cátodo a una R de valor entre 300 a 470 ohms y el otro extremo a GND.
Ahora el video esta bien. El led estará a 40mA entre ambos pines. mas de 5 Leds no puedes conectar de ese modo, porque alcanzas los 200mA máximo que entrega los pienes Arduino.

  1. Fuentes.
    La fuente de 9V 600mA esta bien para el Arduino.
    La fuente de 5.7V no sirve para este proyecto pero dejala pendiente.
    La fuente cargadora USB de 5V sería apropiada para la alimentación de los RELES pero deberías quitar el conector o bien para obtener los terminales positivo y negativo. Usar el negativo para unirlo al GND del arduino y el positivo (5V) para alimentar a los RELES via VCC. No uses Arduino 5V para alimentar ese terminal de los reles. Estos consumen mucha corriente (alrededor de 50 a 60mA) y sumados llevan al límite lo que el regulador de arduino puede suministrarles.

Ok, entiendo, entonces, que la conexión GND de la alimentación de los módulos de relé tiene que ir también al GND del Arduino cómo en esta imagen:

Entonces el esquema quedaría así:


(Sólo cambia la conexión entre las dos líneas GND de la parte superior e inferior de la protoboard grande)

No acabo de entender la necesidad de juntar los GND, pero buscando la primera imagen he visto que siempre que se pone una fuente externa se hace así, así que perfecto.

No acabo de entender la necesidad de juntar los GND,

Supon que tienes una pila o batería y la mides con el tester. Leerás 1.5V

Ahora busca otra batería y la mides, y solo para hacerme caso supongamos lees 1.55V

Bien como haces para que puedas leer las dos? debes tener un punto de referencia. Ese punto de referencia es el negativo de la dos pilas.

Asi que tendrías un borne positivo pila 1, otro positivo pila 2 y los dos negativos comunes.

Lo mismo ocurre con las fuentes de Arduino.

Vale, creo que entiendo. Gracias por la explicación.

Ya, abusando totalmente de vuestra amabilidad, la de la gente de este foro en general y la de surbyte en concreto, os pediría consejo de nuevo.

Antes de que me llegue todo el material, me he cogido una placa de circuito impreso que tenía en el taller del curro y que era para tirar, y la he pretendido usar de práctica de soldadura. Digo lo de "pretendido" porque lo que realmente he conseguido son dos cosas:

  • Frustrarme
  • Quemarme

Tengo dos soldadores de lapiz de 30W sencillos (uno del LDL y otro de calidad análoga) y una bomba de desoldadura de pistón y no tengo soporte. Lo máximo que consigo con ellos es que el estaño se convierta en una pasta densa y, estirando y con sacrificios, logro sacar alguna resistencia; ni soñar sacar nada de 3 pines o más, ya no hablemos de succionar el estaño. Las puntas estaban oxidadas, así que las he lijado, pulido reestañado y hecho todo lo que he visto por internet, pero nada funciona.
Conclusión: Tengo que cambiar de soldador.

Mirando en Amazon he visto estos dos, a ver qué os parecen:

Opción 1 (el kit con el soporte con muelle)
Opción 2
Opción 3
Opción 4 (Mi favorita por el momento, trae tierra y es el que tiene más valoraciones positivas y menos negativas; el diseño es atractivo y el precio ajustado)

La verdad es que con este proyecto por delante y los que me imagino que vendrán en el futuro, no me apetece hacer más el memo y quiero tener algo que sea sencillo (lo estaré todos los días soldando, a lo mejor hago una cosilla cada 3 meses) pero funcional. Obviamente, si aconsejáis algún otro que no esté en la lista, me lo miraré con cariño.
Soy una persona hábil y se que le pillaré el truco rápido a esto de la soldadura electrónica, pero necesito que las herramientas no me pongan palos en las ruedas, si no imposible.

Gracias por adelantado.

Al final me he comprado la Opción 3; el de la Opción 4 tenía un comentario que decía que sólo llegaba hasta 160ºC, mientras que el de la Opción 3 es cómo el de la Opción 2 pero con menos trastos que no necesito y precio menor y, además, parece que las temperaturas están testeadas y te habla en la descripción del margen de error entre lo que le pides por el mando y la temperatura real, además de no tener comentarios negativos sobre este aspecto.
Espero dejar de pasear pasta de estaño de un lado a otro y poder hacer algo útil con esta herramienta.

Madre mía, suerte que todo el material me está llegando con cuentagotas, porqué me estoy dando cuenta poco a poco de la cantidad de fallos que tengo y así no frío el Arduino.

Acabo de percatarme que en la mayoría de tutoriales recomiendan conectar los pulsadores de esta forma:

Si os fijáis en mi último esquema,

yo lo que hacía era alimentar el botón con 5V y, antes de irme al pin digital correspondiente, ponerle una resistencia de 10kΩ. Por lo que veo, lo correcto es "empalmar" la resistencia e ir a GND con ella (vamos, siguiendo el esquema primer esquema). Entiendo que si lo hago de este modo, conseguiré lectura HIGT al pulsar el botón y LOW cuando no está pulsado.

Me tocará retocar el esquema otra vez. No, si al final lo lograré y todo y hasta aprenderé un poco de electrónica por el medio.