Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos » Arduino y Raspberry Pi
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

25/02/2012 #1


Arduino Serial + Shell linux
Hola!

Tengo una duda al respecto del modo de comunicacion serial de arduino.

Resulta que mediante consola de Linux(Shell) mando el comando: $echo 'e' > /dev/ttyACM0 el lo que hace es mandar por el puerto en que esta montado arduino la letra 'e'. Ahora, el ejemplo de arduino que uso es el que esta en esta pagina: http://arduino.cc/en/Tutorial/SwitchCase2.

Resulta que al mandar el comando, arduino si recibe el comando(Prende el led de Rx), pero no realiza la accion de encender el led correspondiente. Lo que se me ocurrio era ver lo que leia, asi que al ejemplo le agregue el la linea: Serial.print(char(inByte)); quedando el codigo asi:


void setup() {
// initialize serial communication:
Serial.begin(9600);
// initialize the LED pins:
for (int thisPin = 2; thisPin < 7; thisPin++) {
pinMode(thisPin, OUTPUT);
}
}

void loop() {
// read the sensor:
if (Serial.available() > 0) {
int inByte = Serial.read();
// do something different depending on the character received.
// The switch statement expects single number values for each case;
// in this exmaple, though, you're using single quotes to tell
// the controller to get the ASCII value for the character. For
// example 'a' = 97, 'b' = 98, and so forth:

switch (inByte) {
case 'a':
digitalWrite(2, HIGH);
Serial.print(char(inByte));
break;
case 'b':
digitalWrite(3, HIGH);
Serial.print(char(inByte));
break;
case 'c':
digitalWrite(4, HIGH);
Serial.print(char(inByte));
break;
case 'd':
digitalWrite(5, HIGH);
Serial.print(char(inByte));
break;
case 'e':
digitalWrite(6, HIGH);
Serial.print(char(inByte));
break;
default:
// turn all the LEDs off:
for (int thisPin = 2; thisPin < 7; thisPin++) {
digitalWrite(thisPin, LOW);
}
}
}
}

En efecto, en la consola serial me muestra que si recibe la letra 'e', pero esta vez que abri la consola, el led enciende y despues apaga. Lo que me hace suponer una cosa: ¿Cuando se abre la terminal serial de arduino esta mandara una señal a la placa para activar el serial en modo recepcion? si es asi, cual? por que he notado de que cada vez que abro la consola, se envia una señal a la placa, y despues de ellos cualquier cosa que mande se recibe de manera adecuada. De lo contrario si recibe el dato pero no ejecuta lo que se establece en el codigo.

Cualquier comentario es bien recibido, Gracias!
27/02/2012 #2


Hola, como estás?
Disculpa, soy nuevo programando Arduino.
¿Que código ytengo que agregar para poder usar el pin reset que tiene la placa Arduino?
Saludos.
27/02/2012 #3


Hola!

Pues la pregunta seria, como quieres darle reset? me parece que por software hay problemas(Me imagino que hay maneras algo complejas como echar una manita con el WatchDog, pero aun asi es complicado, a no ser que alguien me desmienta), y usando el boton, pues con solo presionarlo debe bastar. Ahora que si es forzoso que se de un reset no "manual" pues yo usaria otro micro, en vez de ponrele el boton, haria que un actuador externo actuara como tal, pero obvio eso requiere mas relajo. Espero y te haya ayudado.

Saludos!

Y... tambien, creo que nadie me puede ayudar a mi T_T.
28/02/2012 #4


Hola, lo solucioné poniendole un pulsador en el pin Reset.
Muchas gracias.
Saludos.
29/03/2012 #5


Hola a todos! Alguno sabe a ciencia cierta como trabaja la funcion Serial.Write(buf,len) ???
Lo que dice la pagina de Arduino es que uno puede enviar un buffer y hay que especificar el tamaño del mismo. Pero intento hacerlo y me sale un error. Estoy en Arduino 1.0

Agradeceria mucho su ayuda

Saludos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Arduino y Raspberry Pi

Cerrar
Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos » Arduino y Raspberry Pi

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.