Como saber el estado de un pin

Hola a todos:

Me gustaría saber si hay alguna forma de saber el estado (Activado o Desactivado) en que se encuentra un pin digital o analógico, no se si un pin que e definido como de salida le puedo usar un DigitalReal para preguntar su estado nin que pase nada o no.

Ya se que la mayoría de los códigos usan variables para saber su estado pero es que yo estoy usando un Mega con mas de 30 conexiones.

Saludos

lo normal es preguntar por la variable, por ejemplo si un pin es el MOTOR1 por ejemplo, hará una sentencia que ponga DigitalWrite(ledpin,motor1), sabiendo como esta motor1 sabes como esta el pin.

si tiens muchs variables .... amigo... es lo que hay :smiley: haz un array con las variables, hazte un mapa de lo que es cada variable etc ... eso ya es la habilidad de cada uno al hacer los programas y manejar los datos de una manera u otra, por pines, por bloques, por puertos ...

un saludo

Con bitread puedes verlo sin tener que declarar variables.

const int ledPin = 13;
void setup()
{
  Serial.begin(9600);


  DDRD = B11111110;  // Los pines 0 al 7 son entradas
  pinMode(ledPin, OUTPUT);
}

void loop()
{

  Serial.print(bitRead(PIND,7));
  Serial.print(bitRead(PIND,6));
  Serial.print(bitRead(PIND,5));
  Serial.println(bitRead(PIND,4));
  delay(100);

  //si el la entrada 7 esta activada enciendes el led
  if (bitRead(PIND,7)) {
    digitalWrite(ledPin, HIGH);
  } 
  else {
    digitalWrite(ledPin,LOW); 
  }
}

Manejo con puertos

Saludos.

Hola,

Si puedes leer el estado de una salida. El tipico ejemplo es:
digitalWrite(mipin,!digitalRead(mipin));
Con esto consigues poner dicho pin al estado contrario al que estaba.

Resumiendo, puedes leer el estado de un pin configurado como salida.

Salu2

Igor R.

Hola bunas noches, otra manera de saber el estado de un pin es por interrupcion pero es solo aplicable a los pines que soportan interrupcion y eso va segun la placa arduino que estes usando ya que la Arduino Uno tiene solo 2 pines para interrupcion pero Arduino Mega tiene 4 pienes.

Saludo y si quieres ver la sintaxis de la Interrupcion Excterna en la seccion de referencia esta bien explicado y con ejemplo.

Muchas gracias a todos estoy probando las opciones de flico y Igor y funcionan perfectamente solo me queda una duda y es que e mirado la documentación de bitread y esta muy interesante pero el problema es que solo habla de los pines del arduino uno y no comenta nada de los pines extra del arduino mega.

Gracias y Saludos

buenas tardes, soy nuevo en esto, pero me gustaría que me ayudaran un poco si es posible.
quiero programar mi arduino uno, para encender un led con un control infrarrojo y apagarlo con un pulsador.
le s agradezco su colaboración

Para colaborar empieza leyendo las normas del foro y mira cuando respondes un hilo que no tenga mas de 120 dias.

desde 2011 que no responden.
Asi que muy simple. luego de leer las normas, creas un nuevo hilo y reformula la pregunta.
Cualquier cosa con IR se hace usando la librería IRremote, tiene ejemplos de códigos y todos los protocolos mas usados.