Pages: [1]   Go Down
Author Topic: Iniciando proyecto.... pidiendo ayuda  (Read 420 times)
0 Members and 1 Guest are viewing this topic.
Merida Yuc Mexico
Offline Offline
Newbie
*
Karma: 0
Posts: 39
=)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Que tal, estoy iniciando un proyecto para la escuela y quisiera un poco de ayuda, tengo conocimientos de electronica pero algunas cosas me hacen falta.

Aqui mi primera duda

Quiero hacer que arduino lea 10 inputs provenientes de 10 switchs NA

¿seria bueno hacer un arreglo para que arduino lo lea?
intente declarando 10 variables con 10 pines configurandolos como input pero creo q no me funciono.....

al rato subo el codigo

saludos
Logged

Saludos desde México.

0
Offline Offline
Newbie
*
Karma: 0
Posts: 6
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola!, si tienes una arduino diecimila o duemilanove (son las que conozco) probaría utilizando los pines digitales. Primero seteando los pines con pinMode(numeroPin, INPUT) para cada uno de los 10. La conexion es sencilla, cada switch tiene 2 terinales una iria al pin digital correspondiente y el otro a tierra (GND). Por el lado de la programación probaría haciendo un bucle detectando para cada pin el estado HIGH
Code:
if(pin1 == HIGH){ sentencias }
y asi para todos los pines.
Esta sería la forma mas rudimentaria.
Si lo quieres hacer un poco mejor yo utilizaria un array.
Code:
// Defino el array
int pinesDigitales[9];

// Asigno los valores
pinesDigitales[0] =  3;
pinesDigitales[1] =  4;
pinesDigitales[2] =  5;
pinesDigitales[3] =  6;
pinesDigitales[4] =  7;
pinesDigitales[5] =  8;
pinesDigitales[6] =  9;
pinesDigitales[7] =  10;
pinesDigitales[8] =  11;
pinesDigitales[9] =  12;

// bucle de lectura
void detectar_switches()
{
    for (unsigned int i=0;i<sizeof(pinesDigitales) / 2;i++){
        if(pinesDigitales[i] == HIGH){
             // funcion que ejecuta una rutina cualquiera
        }
    }
}

Saludos!
Logged

Merida Yuc Mexico
Offline Offline
Newbie
*
Karma: 0
Posts: 39
=)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

muchas gracias esteban

hasta ahorita asi va el codigo

Code:
#define DEBUG 1
#define PULLUP 1
#define SWITCH_PRESSED (!PULLUP)
#define NUMBER_OF_PINS 10

byte switchPin[NUMBER_OF_PINS]={3,4,5,6,7,8,9,10,11,12};
boolean switchValues[NUMBER_OF_PINS] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 };

void setup (){
  for (byte i=0; i<NUMBER_OF_PINS; i++){
    pinMode (switchPin[i],INPUT);
    if (PULLUP){
      digitalWrite(switchPin[i],HIGH);
    }
  }
  if (DEBUG) {Serial.begin (9600);}
}

void loop(){
  for (byte i=0; i<NUMBER_OF_PINS; i++){
    if (digitalRead(switchPin[i])==SWITCH_PRESSED){
      switchValues[i]=true;
    }
    else{
      switchValues[i]=false;
    }
  }
}

 


estoy posteando tambien en la seccion en ingles

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1238620664

y pues de ahi salio este codigo

lo q no se... si ya con eso puedo enviar los datos a un programa externo como processing o flash (utilizando serproxy)

o me faltara alguna sentencia dentro del ultimo ciclo
Logged

Saludos desde México.

Pages: [1]   Go Up
Jump to: