6

Neobook y Arduino

arduino-b

Buenas hoy  voy a mostrarles un ejemplo de conexión con arduino pedido por Cheolucho.

Plugins utilizados:

gtComms (G Turner) (Descargar)

Lado Neobook:

Para conectarnos al puerto serie tendremos que utilizar la función

gtCommOpenStd "14,9600"

Como vemos la función recibe 1 parámetro pero separa por “,” y los transforma en 2 lo que seria:

14 > El puerto COM al cual queremos conectarnos

9600 > Velocidad (baudios)

Para cerrar la conexión debemos usar la función gtCommClose pasandole como parámetro solo el puerto que deseamos cerrar.

Para mandar datos:

Usamos gtCommSend con los siguientes parámetros

gtCommSend "14,3"

14 > El puerto COM

3 > Dato a enviar

Tambien podriamos enviar el contenido de una variable con lo que quedaria:

gtCommSend "14,[enviar]"

Para recibir datos de arduino:

Usamos gtCommRxS con los siguientes parámetros

gtCommRxS "14,1,return"

14 > El puerto COM

1 > Numeros de bytes a leer

return > Nombre de la variable donde almacenara la lectura (sin las [])

Si tenemos errores estos aparecerán en las variables [gtOpenCommErr] y [gtCommErr].

Lado Arduino:

Para este ejemplo use 1 Display de 7 segmentos (Common Cathode) siguiendo el siguiente esquema

arduino-7-segment-LED-display-circuit

Por ultimo utilzamos el siguiente sketch

//Creamos el array de numeros
const byte numeros[11] = {
    B11111100, //0
    B01100000, //1
    B11011010, //2
    B11110010, //3
    B01100110, //4
    B10110110, //5
    B00111110, //6
    B11100000, //7
    B11111110, //8
    B11100110, //9
    B00000000, //nada
};
const int pins[8] = {
    5, 8, 9, 7, 6, 4, 3, 2
};
void setup() {
    //iniciamos el puerto serie
    Serial.begin(9600);
    //iniciamos los pines en modo salida
    for (int i = 0; i & lt; 8; i++) {
        pinMode(pins[i], OUTPUT);
    }
}
void loop() {
    //si existe algo en el serie
    if (Serial.available()) {
        //leemos lo que mandamos por serie
        int r = Serial.read() – ’0′;
        //enviamos respuesta lo que leimos (a modo debug)
        Serial.print((int) r);
        //y por ultimo mostramos el numero correspondiente del array
        mostrarDigito((int) r);
        delay(100);
    }
}
void mostrarDigito(int numero) {
    boolean BitSet;
    for (int segmento = 0; segmento & lt; 8; segmento++) {
        BitSet = bitRead(numeros[numero], segmento);
        digitalWrite(pins[segmento], BitSet);
    }
}

Screenshots

sshot-1

sshot-2

Utilizando el mismo ejecutable con otro proyecto

IMG_20130818_151253

Descarga

  ejarduino.rar (1,6 MiB, 2.677 hits)

Espero que sea útil

Saludos