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
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
Utilizando el mismo ejecutable con otro proyecto
Descarga
ejarduino.rar (1,6 MiB, 2.678 hits)
Espero que sea útil
Saludos