Pages: [1]   Go Down
Author Topic: ayuda con envio y recepcion de datos con arduino  (Read 1147 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hola amigos smiley-lol
bueno voy al grano lo que quiero hacer es que cuando presione las teclas I,D,S los led infrarrojos receptor y emisor, el emisor me mande una serie de pulsaciones para que el otro lo lea y me active un motor de 5 hilos pero no se como hacer el envió de y recepción de datos de esta forma e investigado pero ninguna de las formas me ayuda me gustaría que me dieran una ayuda o aunque sea un explicación con un ejemplo les dejo mi código(donde están los   "//_______" es donde debe ir el codigo)por lo que me dijeron tengo primero que convertir el código a binario en el  arduino después igualar pero no se como  hacerlo NOTA no quiero una explicación funciona el código hexadecimal y binario lo único que me gustaría es que me ayuden con el código en arduino

GRACIAS POR SU AYUDA

int motorPin1 = 8;
int motorPin2 = 9;
int motorPin3 = 10;
int motorPin4 = 11;
int ledEmisor = 1;
int ledReceptor = A1;
int delayTime = 1000;   
int contador = 25;
int Time = 1000;
int op, izq, der, RE1, RE2, RE3, res, st;
 
void setup(){
Serial.begin(9600);

Serial.println("Arduino Motor Control");
Serial.println("Girar Izquierda");
Serial.println("Girar Derecha");
Serial.println(res,HEX);} 
 
void loop(){

op = Serial.read();

pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
pinMode(ledEmisor, OUTPUT);
pinMode(ledReceptor, INPUT);
     

digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(Time);
       
if(op == 105){
              digitalWrite(ledEmisor, HIGH);
              delay(Time);
              digitalWrite(ledEmisor, HIGH);
              delay(Time);
              digitalWrite(ledEmisor, LOW);
              delay(Time);
              digitalWrite(ledEmisor, HIGH);
              delay(Time);
                   
           //______________________________________________
             
             
              if(RE1 == izq){
             
                            digitalWrite(motorPin1, HIGH);                 
                            digitalWrite(motorPin2, LOW);
                            digitalWrite(motorPin3, LOW);
                            digitalWrite(motorPin4, LOW);
                            delay(delayTime);
                           
                            digitalWrite(motorPin1, LOW);
                            digitalWrite(motorPin2, HIGH);
                            digitalWrite(motorPin3, LOW);
                            digitalWrite(motorPin4, LOW);
                            delay(delayTime);
                           
                            digitalWrite(motorPin1, LOW);
                            digitalWrite(motorPin2, LOW);
                            digitalWrite(motorPin3, HIGH);
                            digitalWrite(motorPin4, LOW);
                            delay(delayTime);
                           
                            digitalWrite(motorPin1, LOW);
                            digitalWrite(motorPin2, LOW);
                            digitalWrite(motorPin3, LOW);
                            digitalWrite(motorPin4, HIGH);
                            delay(delayTime);
                                                    }
                        }

 
if(op == 100){
              digitalWrite(ledEmisor, HIGH);
              delay(Time);
              digitalWrite(ledEmisor, LOW);
              delay(Time);
              digitalWrite(ledEmisor, HIGH);
              delay(Time);
              digitalWrite(ledEmisor, HIGH);
              delay(Time);
               //______________________________________________

              if(RE2 == der){
                             digitalWrite(motorPin1, LOW);
                             digitalWrite(motorPin2, LOW);
                             digitalWrite(motorPin3, LOW);
                             digitalWrite(motorPin4, HIGH);
                           
                             delay(delayTime);
                             digitalWrite(motorPin1, LOW);
                             digitalWrite(motorPin2, LOW);
                             digitalWrite(motorPin3, HIGH);
                             digitalWrite(motorPin4, LOW);
                           
                             delay(delayTime);
                             digitalWrite(motorPin1, LOW);
                             digitalWrite(motorPin2, HIGH);
                             digitalWrite(motorPin3, LOW);
                             digitalWrite(motorPin4, LOW);
                             delay(delayTime);
                           
                             digitalWrite(motorPin1, HIGH);                 
                             digitalWrite(motorPin2, LOW);
                             digitalWrite(motorPin3, LOW);
                             digitalWrite(motorPin4, LOW);
                             delay(delayTime);

                         }

}

             
if(op == 115){
              digitalWrite(ledEmisor, HIGH);
              delay(Time);
              digitalWrite(ledEmisor, LOW);
              delay(Time);
              digitalWrite(ledEmisor, HIGH);
              delay(Time);
              digitalWrite(ledEmisor, HIGH);
              delay(Time);}
             
 //______________________________________________
 
              if(RE3 == st){
               
              digitalWrite(motorPin1, LOW);
              digitalWrite(motorPin2, LOW);
              digitalWrite(motorPin3, LOW);
              digitalWrite(motorPin4, LOW);
              delay(Time);}
             

              }
 






Logged

Castellon, España
Offline Offline
Sr. Member
****
Karma: 5
Posts: 330
OR ganizando
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Lo primero que tienes que hacer es ir a la referencia y mirarte como funciona el método Serial y sus comandos, por que no puedes hacer un op=Serial.read en cada loop.

Lo segundo es que si no te enseñan como se hace y te dicen que código tienes que poner no aprenderas nunca. Es mejor que alguien preparado te explique como funcionan los números hexadecimales y binarios y como Arduino trabaja con ellos, luego seguro que la solución a tu problema se te ocurre a ti solo.

No pretendo ser borde, pero es como el proverbio chino ese de "si me das un pez comeré hoy, si me enseñas a pescar comeré todos los días".

Un saludo y suerte
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Lo primero que tienes que hacer es ir a la referencia y mirarte como funciona el método Serial y sus comandos, por que no puedes hacer un op=Serial.read en cada loop.

Lo segundo es que si no te enseñan como se hace y te dicen que código tienes que poner no aprenderas nunca. Es mejor que alguien preparado te explique como funcionan los números hexadecimales y binarios y como Arduino trabaja con ellos, luego seguro que la solución a tu problema se te ocurre a ti solo.

No pretendo ser borde, pero es como el proverbio chino ese de "si me das un pez comeré hoy, si me enseñas a pescar comeré todos los días".

Un saludo y suerte

que parte no entendiste me gustaria que me dieran un ejemplo y lo del op es para simplificar codigo perdón por no hacerlo igual que tu smiley
NOTA no quiero una explicación de como funciona el código hexadecimal y binario lo único que me gustaría es que me ayuden con el código en arduino
« Last Edit: November 20, 2012, 11:29:26 pm by lunemesis » Logged

Castellon, España
Offline Offline
Sr. Member
****
Karma: 5
Posts: 330
OR ganizando
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
que parte no entendiste me gustaria que me dieran un ejemplo...

Como ya dije no pretendía ser borde ni maleducado, pero si utilizaras la búsqueda en lugar de ir a lo fácil, que es preguntar, habrías encontrado el ejemplo donde siempre ha estado, en la referencia:

http://arduino.cc/es/Serial/Read
Logged


Madrid
Offline Offline
Sr. Member
****
Karma: 5
Posts: 481
Life isn't about finding yourself, life is about creating yourself!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
que parte no entendiste me gustaria que me dieran un ejemplo...

Como ya dije no pretendía ser borde ni maleducado, pero si utilizaras la búsqueda en lugar de ir a lo fácil, que es preguntar, habrías encontrado el ejemplo donde siempre ha estado, en la referencia:

http://arduino.cc/es/Serial/Read

@lunemesis a parte del Serial.read no te olvides repasar el concepto de "while loop" que es muy importante cuando se trabaja con Serial.
« Last Edit: November 21, 2012, 08:32:52 am by yOPERO » Logged

Engineering is the art of
making what you want from
things you can get.

     

[SOLUCIONADO]

0
Offline Offline
God Member
*****
Karma: 39
Posts: 986
Get Bitlash: http://bitlash.net
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
void loop(){
if (!Serial.available()) return;      // <-- do nothing if there is no serial input
op = Serial.read();


-br
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
que parte no entendiste me gustaria que me dieran un ejemplo...

Como ya dije no pretendía ser borde ni maleducado, pero si utilizaras la búsqueda en lugar de ir a lo fácil, que es preguntar, habrías encontrado el ejemplo donde siempre ha estado, en la referencia:

http://arduino.cc/es/Serial/Read

@lunemesis a parte del Serial.read no te olvides repasar el concepto de "while loop" que es muy importante cuando se trabaja con Serial.

no es que lo haga a la manera fácil pero ya llevo casi un mes buscando pero no me había percado de que estaba en read() de las referencias de arduino de la convercion binaria y hexadecimal lo entiendo y comprendo pero lo que no se es como acomodarlo no llevo mucho tiempo manejando arduino y todavía algunos comandos me fallan ya que estoy aprendiendo el lenguaje C
Logged

Castellon, España
Offline Offline
Sr. Member
****
Karma: 5
Posts: 330
OR ganizando
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Nadie nace sabiendo, todos hemos aprendido de una forma u otra y el foro está para que si tienes alguna duda los que tenemos más experiencia te ayudamos y lo hacemos por amor al arte y a Arduino, de forma totalmente desinteresada. Pero, por favor, cuidad un poco más las formas y los que pedís ayuda hacedlo con un poco más de humildad.

Un pequeño truco: Serial.read() lee de byte en byte por lo que si le vas a  mandar varios seguidos mete un pequeño retardo entre lectura y lectura, como un delay(5). Hay veces que si despues de cada lectura ejecutas algún comando no es necesario, pero tenlo en cuenta por si acaso.

Un saludo.
Logged


Pages: [1]   Go Up
Jump to: