martes, 29 de noviembre de 2011

JAVA Y ARDUINO

PASO 1: Ejecuta el programa arduino.
Paso 2: ya con el arduino ejecutándose, ejecuta el programa Main.java
el resultado se imprime en la tela del programa java:



el Programa usado en arduino envia una frase y java lo lee y lo imprime.
java tambien le envia un caracter: 8, arduino lo recibe y se lo vuelve a enviar.
programa Arduino:
////////////////////////////////////////////////////////
///////////////////////////////////////////////////////


int incomingByte = 0;
void setup(){
  Serial.begin(9600);
}

void loop(){
  Serial.println("Is there anybody out there? \n");
  delay(1000);
  if (Serial.available() > 0)

   {
// read the incoming byte:
incomingByte = Serial.read();
     
// say what you got:
Serial.print("arduino recibe: ");
Serial.println(incomingByte, DEC);
}}


/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////

/*Programa en: */ JAVA usado para leer escribir en el arduino


package serialtalk;

import gnu.io.CommPortIdentifier;
import gnu.io.NoSuchPortException;
import gnu.io.SerialPort;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;




public class Main {
    static InputStream serialInt;
    static OutputStream serialOut;
 
 
 
    public static void main(String[] args) throws Exception{
     
 
    try {
CommPortIdentifier portId = null;
try {
portId = CommPortIdentifier.getPortIdentifier("COM3");
} catch (NoSuchPortException npe) {

}
SerialPort port = (SerialPort)portId.open("Título comunicação serial", 9600);
serialOut = port.getOutputStream();
serialInt = port.getInputStream();
port.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);


/*  */

while(true){
   serialOut.write(8);
           while(serialInt.available()>0) {
               System.out.print((char)(serialInt.read()));
           }
       }

/**/
   

} catch (Exception e) {
e.printStackTrace();
}
}

public void close(){
try {
serialOut.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void enviaDados(char opcao){
try {
serialOut.write(opcao);
} catch (IOException e) {
e.printStackTrace();
}
}

   
     
    }


domingo, 27 de noviembre de 2011

Circuito Emisor/ Receptor Infrarrojo y Arduino

Aqui el circuito del transmisor receptor infrarrojo y la entrada al Arduino:
Para el proyecto use los sensores: 

Infrared Emitters and Detectors de sparkfun.

el que tiene un color rosado es el receptor:
El que es incoloro es el emisor:



// Pequeño programa para detectar si hay un obstáculo entre el transmisor y receptor infrarrojo.
// set pin numbers:
const int buttonPin = 12;     // Pin de entrada
const int ledPin =  13;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);    
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);  
}

void loop(){
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {  
    // led se prende cuando hay un obstaculo entre el transmisor   y receptor
    digitalWrite(ledPin, HIGH);
  }
  else {
    // led se apaga cuando no se obstruye el paso entre el transmisor y el receptor
    digitalWrite(ledPin, LOW);
  }
}