Hola, tengo un pequeño problema para configurar los pines del Mega como salidas.
Tengo definidas las salidas con un arrays y en teoría activo la resistencia interna del micro pull up con un bucle for, pero cuando conecto un relé a la salida la tensión cae y no me activa el relé. Si lo hago individual mente, es decir, con el pinMode y digitalWrite pin a pin, si funciona.
Me podéis ayudar, que estoy haciendo mal.
Un saludo.
// Block array
//
#include <Servo.h>
//
//---------------------------- crear el control del servo
Servo myservo207;
Servo myservo206;
Servo myservo205;
Servo myservo204;
Servo myservoprueba;
//
//---------------------------- Posicion de inico de los servos
//
int pos206 = 90;
int pos207 = 85;
int pos205 = 71; // final 90 gira izq a derec. el espadi al contrario
int pos204 = 52; // final 70
int posprueba = 90;
//------------------------------ Posicion del espadin
int posicion206 = 0; // posicion del desvio
int posicion207 = 0; // 0 = desvio, 1= recto
int posicion205 = 0;
int posicion204 = 0;
int posicionprueba = 0;
int CTRSERVO = 0;
int x = 0;
//
//-------------------------------- Arrays
int Block[] = {22,24,26,28,30,32,34,36,48}; // Salidas
int SEN[] = {23,25,27,29,31,33,35,49,50,51,52,53,37.39}; // Entradas
int buttonsen[14];
int ctrsen[14];
int isen; // indice sensores
int iblock;
int item;
int imillis;
long time [4];
long velocidad [] = {150,150,150,150,150}; /* Ajustamos la velocidad del servo 150
NO puede ser menor de 100 es una constante
de la sentencia del retardo */
//---------------------------------------------
int CTRBLOCK8 = 1;
int prueba = 47;
int inicio =0;
int tiempo=2000;
void setup() {
//--------------------------------------------- ENTRADA SEÑAL SERVOS y POSCIONAMIENTO
myservoprueba.attach(2);
myservo207.attach(8);
myservo206.attach(9 );
myservo205.attach(10);
myservo204.attach(11);
myservoprueba.attach(posprueba);
myservo204.write(pos204);
myservo205.write(pos205);
myservo206.write(pos206);
myservo207.write(pos207);
//--------------------------------------------------------------------------------------
pinMode(prueba, OUTPUT);
for (isen = 0; isen < 14; isen++) // inicializar las arrays
{
buttonsen[isen] = 0;
ctrsen[isen] = 0;
pinMode(SEN[isen], INPUT);
digitalWrite(SEN[isen],HIGH); //Activar resistencia Pullup
}
for (iblock = 0; iblock < 9; iblock++) // inicializar los block, se activan con cero
{
Block[iblock] = 1;
pinMode (Block[iblock], OUTPUT);
digitalWrite(Block[iblock],HIGH); //Activar resistencia Pullup
}
for (item = 0; item < 5; item++) // inicializar el temporizador
{
time [item] = 0;
velocidad [item] = 150;
}
}
void loop(){
//----------------------------------- // INICIO
if (inicio ==0 ){
delay (tiempo);
digitalWrite(Block[8],HIGH); // Activamos el rele de alimentacion de los servos
inicio = 1;
}
//----------------------------------- // lectura de sensores