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, 836 hits)

Espero que sea útil

Saludos


6 Comments

  1. Como siempre genial explicación.. Muchas gracias porque por fin aprendí a usar los comandos del plugin gtcomms.

  2. Muy buenos proyectos, buenas estimado amigo, me ayudarías con un pequeño ejemplo por favor. Me estoy volviendo loco gracias Te comento:
    Sería lo siguiente.
    Como puedo controlar desde neobook y arduino rv3 un motor bipolar pasó a paso. De 1,8 grados,Poder controlar desde neobook número de vueltas que quisiera que dará, y poder variarle su velocidad y tambiem poder pararlo cuando quisiera. Muchisimas gracias por todo.

  3. Buenas gente, primero que nada muchas gracias por los ejemplos!!! Realize un contador en arduino pero no me actualiza la variable para mostrar “return” como tendria que hacer. Muchas gracias y saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.