Show Posts
Pages: [1]
1  International / Español / Re: AYUDA ENMASCARAMIENTO DE PROTOCOLO CON ARDUINO on: June 30, 2012, 06:47:38 am
Muchísimas gracias por vuestra ayuda,

Me he montado el circuito en una placa prototipo y parece que funciona, en cuanto depure programa lo publicaré.
Ya contaré cuando lo pruebe con los equipos.

Mucas gracias y un saludo.
2  International / Español / Re: AYUDA ENMASCARAMIENTO DE PROTOCOLO CON ARDUINO on: June 29, 2012, 06:18:58 am
Quote
Por lo que he visto el arduino uno solo cuenta con un pin TX y RX no? o se pueden configurar los pines digitales como estos?? en cualquier caso voy a hacer la prueba con mi arduino mega.

Como bien dice @jorgepl usando la libreria SoftwareSerial puedes configurar mas pines digitales como puertos seriales. Recuerda que si quieres conectarlo algun puerto RS232 necesitas adaptar los niveles usando un MAX232 por ejemplo.

http://arduino.cc/es/Reference/SoftwareSerial

Eso lo tendria que hacer tambien con arduino MEGA??? Esque es el que tengo ahora mismo y me gustaria hacer las pruebas este fin de semana, y no comprendo bien lo del MAX232

Muchisimas gracias por vuestra ayuda
3  International / Español / Re: AYUDA ENMASCARAMIENTO DE PROTOCOLO CON ARDUINO on: June 29, 2012, 01:33:41 am
Muchísimas gracias Jorgepl.

Este fin de semana me pondré a ver que consigo hacer smiley.

Por lo que he visto el arduino uno solo cuenta con un pin TX y RX no? o se pueden configurar los pines digitales como estos?? en cualquier caso voy a hacer la prueba con mi arduino mega.

Ya contaré que tal ha ido la cosa, y si funciona publicaré el código.
4  International / Español / AYUDA ENMASCARAMIENTO DE PROTOCOLO CON ARDUINO on: June 28, 2012, 09:24:05 am
Muy buenas, llevo poco jugueteando con ARDUINO, y me apasiona.

Trabajo progamando sistemas de control basados en PLC y resulta que hace unos dias me surgió un problema.
Resulta que tengo que controlar dos bombas de dosificación y un motor paso a paso servoposicionado desde el puerto de comunicacion RS-232 del PLC.
Me debo comunicacar con los 3 escribiendo la trama correspondiente en ASCII para cada uno de ellos, y tengo el problema de que por motivos de similitud entre los protocolos, al enviar la trama en la que especifico la posicion al motor, paro las bombas involuntariamente.

Disculpad si no me expreso con mucha claridad.


El tema es que me gustaria saber si por medio de un ARDUINO MEGA (consta de varios pines TX y RX), cabria la posibilidad de realizar un enmascaramiento de estos protocolos en el PLC, de forma que al recibirlos el ARDUINO, este se encargue de transmitirlos por dos puertos independientes.

Me gustaria saber si esto es posible y si alguien fuese tan amable y supiera algo al respecto, me pudiese enviar algun tipo de documentación.

Muchísimas gracias
5  International / Proyectos / posicionamiento de un servo por puerto serie on: May 06, 2012, 07:20:14 am
Hola a todos:

soy nuevo en todo esto, he adquirido recientemente una ARDUINO MEGA porque me apetecía juguetear con ella, aprender un poco en cuanto la programación ya que mis conocimientos son básicos y me gustaría publicar mis primeros avances porque a alguien igual le puede servir de ayuda.

Bien, he conseguido manejar un servo, al que enviamos el set point de la posición a través del puerto serie.

                                            
#include <Servo.h>
#include <Servo.h>

Servo myservo;

int pos = 0;
int a;


void setup() {
  Serial.begin(9600);
  myservo.attach(9);

}

char cadena[24];
byte contador=0;
int valor = 0;
void loop(){






  for(a; a<1; a++){
    Serial.print("Introduzca posicion de servo :");
  }  


  if(Serial.available()){
    memset(cadena, 0, sizeof(cadena));




    while (Serial.available()>0){
      delay(5);
      cadena[contador]=Serial.read();
      contador++;

    }
    valor=atoi(cadena);
    valor = min(valor, 180);       //establece valor maximo
    valor = max(valor, 0);          //establece valor minimo
    Serial.print(valor);               //imprime en pantalla el valor introducido
    Serial.println(" grados");
    myservo.write(valor);           //establece el valor como posicion myservo
    a=0;                                    //reiniciamos a para volver a mostrar aviso para introduccion de datos
    contador=0;


    delay(100);    
  }
}
Pages: [1]