Dudas con pines 0,1 y 13 de Arduino Uno.

Buenas, he estado mirando pero no lo acabo de encontrar con certeza.

Los pines digitales 0 y 1 (Tx y Rx) los puedo configurar como salida normal como otro cualquiera o estan reservados?
Y por otro lado el pin 13 entrega solo 1.7V podria de alguna forma excitar la bobina de un rele de 5v solo con esa señal, para los otros 12 ya he visto esquemas pero no se si para ese podria adaptarlo

los pines 0 y 1 no están reservados, los puedes usar como pines normales.

en teoría el pin 13 debería darte 5 voltios también, esta salida tiene conectado un led a través de una resistencia pero no debe bajarte tanto la tensión.

un saludo

1 Like

Si puedes no uses esos pines, simplemente por comodidad.

Los pines 0 y 1 los puedes usar como te comenta el SrDonGato pero para programar el Arduino como se usan esos pines debes de desconectar el circuito que tengas puesto en esos dos pines. Trans acabar de programar se ejecutará el programa en ese momento conecta tu circuito a los pines 0 y 1, tras lo cual lo reseteas y listo. Por eso te he dicho que si puedes no los uses, por comodidad.

El pin13 no lo suelo usar pero como salida no deberías de tener problemas salvo que el pin no podrá dar los 40mA ya que parte de la corriente se usa para el diodo. Como entrada hay que tener más cuidado al programar el pin, en el tutorial de arduino dice:

NOTA: El pin Digital 13 es más difícil de usar que otros pines digitales porque tiene un LED y una resistencia asociada soldados a la placa en la mayoría de las placas. Si activa la resistencia pull-up 20k del interior, se pondra en alrededor de 1,7 V en lugar de los 5V que se esperan debido a que el LED integrado y la resistencia en serie bajan el nivel del voltaje, lo que se traduce en que siempre retornará bajo (LOW). Si estás obligado a usar el pin 13 como entrada digital, utiliza una resistencia pulldown externa.

Es que es para controlar justamente 13 reles para encendido ciclico de grupos de leds, asi que hare las pruebas con los pines del 2 al 12 y luego añadire los otros tres una vez que este todo probado.

¿Para activar el rele mediante un BC548 tendre intensidad suficiente en el pin 13?

Puedes usar los pines analogicos como digitales, nombrandolos del 14 al 19 respectivamente.

¿Los pines analogicos no son solo de entrada ?

las entradas analógicas al igual que los pines 0 y 1 son multipropósito, el bootloader lo preconfigura a entrada analógica pero lo podemos redefinir en el programa como entrada/salida digital.

los pines 4 y 5 analógicos se pueden definir ademas como puerto I2C

¿Seria algo asi para el inicio del codigo?

int rpin=14: //Define pin analogico A1 como 15 para salida
int rpin=15; //Define pin analogico A2 como 16 para salida
//A0 es el pulsador para cambio de secuencia
void setup() {
for(int i=2;i<=15;i++){ //indicamos los pines de salida. Del 2 al 13 digital y los dos analogicos.
pinMode(i, OUTPUT);
}
}

pinMode(A5, OUTPUT); pone patilla A5 como salida digital
cada patilla la llamas por su nombre en la placa, de esta forma con las que necesites
hazlo uno a uno

He probado cambiando simplemente el ejemplo del led 13 y no hace nada...

/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain.
*/

void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
pinMode(A5, OUTPUT);
}

void loop() {
digitalWrite(A5, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(A5, LOW); // set the LED off
delay(1000); // wait for a second
}

mmsouto:
He probado cambiando simplemente el ejemplo del led 13 y no hace nada...

/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain.
*/

void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
pinMode(A5, OUTPUT);
}

void loop() {
digitalWrite(A5, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(A5, LOW); // set the LED off
delay(1000); // wait for a second
}

Pues a mi si que me funciona, tanto con ese codigo como sustituyendo A5 por 19.

Por la observacion de controlar justo 13 reles. Mi sugerencia es que lo uses con un multiplexor como el CD4514 que es barato y de facil adquision. Y con solo cuatro pines del arduino controlaras hasta 15 salidas. Y te dejara mas olgado la operatividad del arduino para aprovecharla en otras funciones.-

1 Like