Programar en java??

Hola que tal , soy nuevo en esto del arduino y estoy comenzando en programar un elevador , mi problema es al hacer la funcion para llamar el piso , ya que la llamada puede ocurrir en cualquier parte del programa... y deacuerdo a la estructura de C no veo como hacer posible esto ... , mi opcion es programar en java ya q tengo entendido q se puede hacer esto...

Espero q me puedan ayudar

no entiendo tu hardware tendra comunicacion con el pc y la aplicacion del pc la quieres hacer en JAVA a eso te refieres o el codigo para el hardware lo quieres hacer en JAVA.

Saludos y comentanos mejor el caso.
Atten.
Alexander Santana.
Venezuela-Barcelona.

No , no voy a comunicarme con el arduino , solamente lo que quiero hacer es que mi funcion pueda recibir una señal en cualquier parte del programa (de un pulsador) , se me ocurrio llamar mi funcion en varias partes del programa pero no se me hace correcto

void activarPiso(){

if(digitalRead(botonpbPin) == HIGH) {
botonpb = 1;
digitalWrite(sensorpbPin, HIGH);
}

if(digitalRead(botonunoPin) == HIGH) {
botonuno = 1;
digitalWrite(sensorunoPin, HIGH);
}

if(digitalRead(botondosPin) == HIGH) {
botondos = 1;
digitalWrite(sensordosPin, HIGH);
}

if(digitalRead(botontresPin) == HIGH){
botontres = 1;
digitalWrite(sensortresPin, HIGH);
}
}

Esta es la funcion que quiero que se quede en "stand by" , en este caso quiero que en cualquier parte del programa pueda activar un pulsador y me active un sensor (como lo indica mi funcion). No se si me di a entender... saludos

ok, perfecto prueba de esta manera y me avisas como te fue.

if(digitalRead(botonpbPin) == HIGH) {
botonpb = HIGH;
digitalWrite(sensorpbPin, HIGH);

ó

if(digitalRead(botonpbPin) == HIGH) {
digitalWrite(botonpb, HIGH);
digitalWrite(sensorpbPin, HIGH);

Saludos lo que cambie fue el (botonpb = 1;) por (botonpb = HIGH;)
Atten.
Alexander Santana.
Venezuela-Barcelona.

Nota: Lo que no entiendo es el titulo del post que dice programacion en JAVA nose a que te refieres con eso.

Hola Faint,

Si quieres que se atienda inmediantamente la llamada al pulsar en cualquier parte de tu programa, lo que tienes que utilizar son interrupciones.
http://arduino.cc/es/Reference/AttachInterrupt
Existen mas interrupciones de las que se utilizan en Arduino (externas), pero para ello tendras que leerte el manual directamente del ATMega328.
Trossen Robotics Community Database Error (la parte de Wait, I ran out of interrupts!).

Saludos

Igor R.

Lo que te sugiero es que utilices una unica interrupcion, por ejemplo, la asociada al pin 1. La manera de funcionar (a grandes rasgos) es: asocias una funcion a un evento, que puede ser cambio en la tension del pin, el pin esta en alto, o el pin esta bajo. Cada vez que se dispara el evento, se ejecuta la funcion que has asociado. La idea es que todos los botones dan corriente al pin 1 y a otro pin. En la rutina de interrupcion (ISR) chequeas todos los botones para ver cual es el que ha producido el disparo del evento.
Lo que sugieres de hacer en java, supongo que lo dices porque alguien te ha dicho que java admite programnacion concurrente. Se trataria entonces de lanzar un hilo que chequeara continuamente el estado de los botones de llamada, y el resto del programa en otro hilo distinto.
Sin embargo, quien te dijo esto no te dijo que Java, pese a ser uno de los lenguajes mas portables hoy por hoy, es practicamente imposible de hacer funcionar en un microcontrolador, ya que necesita de una maquina virtual de java que depende del hardware sobre el que va a correr, y está pensado para un PC. Tratar de ejecutar esto en un microcontrolador es una barbaridad.

Pense en java por que tengo entendido no va ejecutando linea por linea y puede recibir datos en cualquier momento... sobre las interrupciones se ve interesante solo que como novato en esta plataforma no se como aplicarlo adecuadamente a lo que quiero hacer, espero y me puedan hechar la mano.

Lei que solo tiene interrupciones en 2 pines , y yo tengo 4 pulsadores :S , practicamente lo que quiero q haga es esto...

Tengo mis 4 inputs (pulsadores botonpnPin , botonunoPin . botondosPin , botontresPin) que cada vez que se presione el boton tiene que poner en high su sensor correspondiente (mis 4 outputs sensorpbPin, etc...) y al mismo tiempo darle un valor de uno a mi variable correspondiente de cada pulsador (botonpb, botonuno, etc..) como empezaria hacerlo?
Gracias